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>
