<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*-<a name="line.1"></a>
<span class="sourceLineNo">002</span> *******************************************************************************<a name="line.2"></a>
<span class="sourceLineNo">003</span> * Copyright (c) 2011, 2016 Diamond Light Source Ltd.<a name="line.3"></a>
<span class="sourceLineNo">004</span> * All rights reserved. This program and the accompanying materials<a name="line.4"></a>
<span class="sourceLineNo">005</span> * are made available under the terms of the Eclipse Public License v1.0<a name="line.5"></a>
<span class="sourceLineNo">006</span> * which accompanies this distribution, and is available at<a name="line.6"></a>
<span class="sourceLineNo">007</span> * http://www.eclipse.org/legal/epl-v10.html<a name="line.7"></a>
<span class="sourceLineNo">008</span> *<a name="line.8"></a>
<span class="sourceLineNo">009</span> * Contributors:<a name="line.9"></a>
<span class="sourceLineNo">010</span> *    Peter Chang - initial API and implementation and/or initial documentation<a name="line.10"></a>
<span class="sourceLineNo">011</span> *******************************************************************************/<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>
