1325ca45471862654a70948e09415277d8646c68bRajeev Sharma/* 2325ca45471862654a70948e09415277d8646c68bRajeev Sharma * Copyright (C) 2012 The Android Open Source Project 3325ca45471862654a70948e09415277d8646c68bRajeev Sharma * 4325ca45471862654a70948e09415277d8646c68bRajeev Sharma * Licensed under the Apache License, Version 2.0 (the "License"); 5325ca45471862654a70948e09415277d8646c68bRajeev Sharma * you may not use this file except in compliance with the License. 6325ca45471862654a70948e09415277d8646c68bRajeev Sharma * You may obtain a copy of the License at 7325ca45471862654a70948e09415277d8646c68bRajeev Sharma * 8325ca45471862654a70948e09415277d8646c68bRajeev Sharma * http://www.apache.org/licenses/LICENSE-2.0 9325ca45471862654a70948e09415277d8646c68bRajeev Sharma * 10325ca45471862654a70948e09415277d8646c68bRajeev Sharma * Unless required by applicable law or agreed to in writing, software 11325ca45471862654a70948e09415277d8646c68bRajeev Sharma * distributed under the License is distributed on an "AS IS" BASIS, 12325ca45471862654a70948e09415277d8646c68bRajeev Sharma * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13325ca45471862654a70948e09415277d8646c68bRajeev Sharma * See the License for the specific language governing permissions and 14325ca45471862654a70948e09415277d8646c68bRajeev Sharma * limitations under the License. 15325ca45471862654a70948e09415277d8646c68bRajeev Sharma */ 16325ca45471862654a70948e09415277d8646c68bRajeev Sharma 17325ca45471862654a70948e09415277d8646c68bRajeev Sharmapackage com.android.rs.test; 18325ca45471862654a70948e09415277d8646c68bRajeev Sharma 19325ca45471862654a70948e09415277d8646c68bRajeev Sharmaimport android.content.Context; 20325ca45471862654a70948e09415277d8646c68bRajeev Sharmaimport android.content.res.Resources; 21325ca45471862654a70948e09415277d8646c68bRajeev Sharmaimport android.renderscript.*; 225666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharmaimport android.util.Log; 235666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharmaimport java.util.Arrays; 24325ca45471862654a70948e09415277d8646c68bRajeev Sharmaimport java.util.Random; 25325ca45471862654a70948e09415277d8646c68bRajeev Sharma 26325ca45471862654a70948e09415277d8646c68bRajeev Sharmapublic class UT_math_agree extends UnitTest { 27325ca45471862654a70948e09415277d8646c68bRajeev Sharma private Resources mRes; 285666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Random rand; 29325ca45471862654a70948e09415277d8646c68bRajeev Sharma 30325ca45471862654a70948e09415277d8646c68bRajeev Sharma protected UT_math_agree(RSTestCore rstc, Resources res, Context ctx) { 31325ca45471862654a70948e09415277d8646c68bRajeev Sharma super(rstc, "Math Agreement", ctx); 32325ca45471862654a70948e09415277d8646c68bRajeev Sharma mRes = res; 335666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rand = new Random(); 34325ca45471862654a70948e09415277d8646c68bRajeev Sharma } 35325ca45471862654a70948e09415277d8646c68bRajeev Sharma 365666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // packing functions 375666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Float2 pack_f2(float[] val) { 385666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 2; 395666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Float2(val[0], val[1]); 405666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 415666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Float3 pack_f3(float[] val) { 425666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 3; 435666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Float3(val[0], val[1], val[2]); 445666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 455666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Float4 pack_f4(float[] val) { 465666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 4; 475666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Float4(val[0], val[1], val[2], val[3]); 485666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 495666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Byte2 pack_b2(byte[] val) { 505666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 2; 515666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Byte2(val[0], val[1]); 525666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 535666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Byte3 pack_b3(byte[] val) { 545666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 3; 555666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Byte3(val[0], val[1], val[2]); 565666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 575666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Byte4 pack_b4(byte[] val) { 585666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 4; 595666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Byte4(val[0], val[1], val[2], val[3]); 605666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 615666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Short2 pack_s2(short[] val) { 625666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 2; 635666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Short2(val[0], val[1]); 645666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 655666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Short3 pack_s3(short[] val) { 665666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 3; 675666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Short3(val[0], val[1], val[2]); 685666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 695666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Short4 pack_s4(short[] val) { 705666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 4; 715666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Short4(val[0], val[1], val[2], val[3]); 725666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 735666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Int2 pack_i2(int[] val) { 745666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 2; 755666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Int2(val[0], val[1]); 765666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 775666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Int3 pack_i3(int[] val) { 785666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 3; 795666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Int3(val[0], val[1], val[2]); 805666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 815666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Int4 pack_i4(int[] val) { 825666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 4; 835666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Int4(val[0], val[1], val[2], val[3]); 845666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 855666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Long2 pack_l2(long[] val) { 865666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 2; 875666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Long2(val[0], val[1]); 885666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 895666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Long3 pack_l3(long[] val) { 905666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 3; 915666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Long3(val[0], val[1], val[2]); 925666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 935666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private Long4 pack_l4(long[] val) { 945666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert val.length == 4; 955666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return new Long4(val[0], val[1], val[2], val[3]); 965666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 975666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 985666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // random vector generation functions 995666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] randvec_float(int dim) { 1005666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] fv = new float[dim]; 1015666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1025666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma fv[i] = rand.nextFloat(); 1035666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return fv; 1045666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1055666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private byte[] randvec_char(int dim) { 1065666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma byte[] cv = new byte[dim]; 1075666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rand.nextBytes(cv); 1085666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return cv; 1095666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1105666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short[] randvec_uchar(int dim) { 1115666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] ucv = new short[dim]; 1125666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1135666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma ucv[i] = (short)rand.nextInt(0x1 << 8); 1145666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return ucv; 1155666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1165666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short[] randvec_short(int dim) { 1175666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] sv = new short[dim]; 1185666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1195666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma sv[i] = (short)rand.nextInt(0x1 << 16); 1205666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return sv; 1215666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1225666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int[] randvec_ushort(int dim) { 1235666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] usv = new int[dim]; 1245666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1255666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma usv[i] = rand.nextInt(0x1 << 16); 1265666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return usv; 1275666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1285666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int[] randvec_int(int dim) { 1295666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] iv = new int[dim]; 1305666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1315666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma iv[i] = rand.nextInt(); 1325666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return iv; 1335666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1345666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long[] randvec_uint(int dim) { 1355666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] uiv = new long[dim]; 1365666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1375666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma uiv[i] = (long)rand.nextInt() - (long)Integer.MIN_VALUE; 1385666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return uiv; 1395666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1405666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long[] randvec_long(int dim) { 1415666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] lv = new long[dim]; 1425666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < dim; ++i) 1435666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma lv[i] = rand.nextLong(); 1445666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return lv; 1455666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1465666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: unsigned long generator 1475666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 1485666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // min reference functions 1495666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float min(float v1, float v2) { 1505666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 < v2 ? v1 : v2; 1515666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1525666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] min(float[] v1, float[] v2) { 1535666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 1545666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rv = new float[v1.length]; 1555666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 1565666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2[i]); 1575666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 1585666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1595666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private byte min(byte v1, byte v2) { 1605666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 < v2 ? v1 : v2; 1615666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1625666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private byte[] min(byte[] v1, byte[] v2) { 1635666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 1645666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma byte[] rv = new byte[v1.length]; 1655666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 1665666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2[i]); 1675666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 1685666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1695666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short min(short v1, short v2) { 1705666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 < v2 ? v1 : v2; 1715666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1725666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short[] min(short[] v1, short[] v2) { 1735666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 1745666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rv = new short[v1.length]; 1755666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 1765666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2[i]); 1775666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 1785666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1795666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int min(int v1, int v2) { 1805666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 < v2 ? v1 : v2; 1815666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1825666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int[] min(int[] v1, int[] v2) { 1835666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 1845666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rv = new int[v1.length]; 1855666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 1865666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2[i]); 1875666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 1885666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1895666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long min(long v1, long v2) { 1905666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 < v2 ? v1 : v2; 1915666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1925666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long[] min(long[] v1, long[] v2) { 1935666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 1945666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rv = new long[v1.length]; 1955666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 1965666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2[i]); 1975666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 1985666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 1995666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: unsigned long version of min 2005666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 2015666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // max reference functions 2025666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float max(float v1, float v2) { 2035666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 > v2 ? v1 : v2; 2045666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2055666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] max(float[] v1, float[] v2) { 2065666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 2075666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rv = new float[v1.length]; 2085666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2095666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2[i]); 2105666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2115666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2125666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private byte max(byte v1, byte v2) { 2135666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 > v2 ? v1 : v2; 2145666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2155666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private byte[] max(byte[] v1, byte[] v2) { 2165666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 2175666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma byte[] rv = new byte[v1.length]; 2185666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2195666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2[i]); 2205666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2215666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2225666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short max(short v1, short v2) { 2235666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 > v2 ? v1 : v2; 2245666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2255666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private short[] max(short[] v1, short[] v2) { 2265666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 2275666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rv = new short[v1.length]; 2285666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2295666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2[i]); 2305666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2315666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2325666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int max(int v1, int v2) { 2335666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 > v2 ? v1 : v2; 2345666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2355666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private int[] max(int[] v1, int[] v2) { 2365666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 2375666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rv = new int[v1.length]; 2385666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2395666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2[i]); 2405666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2415666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2425666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long max(long v1, long v2) { 2435666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return v1 > v2 ? v1 : v2; 2445666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2455666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private long[] max(long[] v1, long[] v2) { 2465666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma assert v1.length == v2.length; 2475666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rv = new long[v1.length]; 2485666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2495666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2[i]); 2505666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2515666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2525666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: unsigned long version of max 253325ca45471862654a70948e09415277d8646c68bRajeev Sharma 2545666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // fmin reference functions 2555666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float fmin(float v1, float v2) { 2565666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return min(v1, v2); 2575666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2585666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] fmin(float[] v1, float[] v2) { 2595666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return min(v1, v2); 2605666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2615666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] fmin(float[] v1, float v2) { 2625666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rv = new float[v1.length]; 2635666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2645666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = min(v1[i], v2); 2655666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2665666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2675666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 2685666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // fmax reference functions 2695666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float fmax(float v1, float v2) { 2705666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return max(v1, v2); 2715666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2725666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] fmax(float[] v1, float[] v2) { 2735666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return max(v1, v2); 2745666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2755666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private float[] fmax(float[] v1, float v2) { 2765666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rv = new float[v1.length]; 2775666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma for (int i = 0; i < v1.length; ++i) 2785666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma rv[i] = max(v1[i], v2); 2795666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma return rv; 2805666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma } 2815666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 2825666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma private void initializeValues(ScriptC_math_agree s) { 283325ca45471862654a70948e09415277d8646c68bRajeev Sharma float x = rand.nextFloat(); 284325ca45471862654a70948e09415277d8646c68bRajeev Sharma float y = rand.nextFloat(); 285325ca45471862654a70948e09415277d8646c68bRajeev Sharma 286325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_x(x); 287325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_y(y); 288325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_result_add(x + y); 289325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_result_sub(x - y); 290325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_result_mul(x * y); 291325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.set_result_div(x / y); 2925666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 2935666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Generate random vectors of all types 2945666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float rand_f1_0 = rand.nextFloat(); 2955666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f2_0 = randvec_float(2); 2965666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f3_0 = randvec_float(3); 2975666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f4_0 = randvec_float(4); 2985666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float rand_f1_1 = rand.nextFloat(); 2995666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f2_1 = randvec_float(2); 3005666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f3_1 = randvec_float(3); 3015666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma float[] rand_f4_1 = randvec_float(4); 302a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short rand_uc1_0 = (short)rand.nextInt(0x1 << 8); 303a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc2_0 = randvec_uchar(2); 304a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc3_0 = randvec_uchar(3); 305a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc4_0 = randvec_uchar(4); 306a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short rand_uc1_1 = (short)rand.nextInt(0x1 << 8); 307a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc2_1 = randvec_uchar(2); 308a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc3_1 = randvec_uchar(3); 309a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma short[] rand_uc4_1 = randvec_uchar(4); 3105666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short rand_ss1_0 = (short)rand.nextInt(0x1 << 16); 3115666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss2_0 = randvec_short(2); 3125666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss3_0 = randvec_short(3); 3135666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss4_0 = randvec_short(4); 3145666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short rand_ss1_1 = (short)rand.nextInt(0x1 << 16); 3155666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss2_1 = randvec_short(2); 3165666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss3_1 = randvec_short(3); 3175666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma short[] rand_ss4_1 = randvec_short(4); 318a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int rand_us1_0 = rand.nextInt(0x1 << 16); 319a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us2_0 = randvec_ushort(2); 320a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us3_0 = randvec_ushort(3); 321a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us4_0 = randvec_ushort(4); 322a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int rand_us1_1 = rand.nextInt(0x1 << 16); 323a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us2_1 = randvec_ushort(2); 324a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us3_1 = randvec_ushort(3); 325a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma int[] rand_us4_1 = randvec_ushort(4); 3265666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int rand_si1_0 = rand.nextInt(); 3275666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si2_0 = randvec_int(2); 3285666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si3_0 = randvec_int(3); 3295666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si4_0 = randvec_int(4); 3305666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int rand_si1_1 = rand.nextInt(); 3315666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si2_1 = randvec_int(2); 3325666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si3_1 = randvec_int(3); 3335666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma int[] rand_si4_1 = randvec_int(4); 334a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long rand_ui1_0 = (long)rand.nextInt() - (long)Integer.MIN_VALUE; 335a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui2_0 = randvec_uint(2); 336a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui3_0 = randvec_uint(3); 337a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui4_0 = randvec_uint(4); 338a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long rand_ui1_1 = (long)rand.nextInt() - (long)Integer.MIN_VALUE; 339a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui2_1 = randvec_uint(2); 340a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui3_1 = randvec_uint(3); 341a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma long[] rand_ui4_1 = randvec_uint(4); 3425666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long rand_sl1_0 = rand.nextLong(); 3435666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl2_0 = randvec_long(2); 3445666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl3_0 = randvec_long(3); 3455666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl4_0 = randvec_long(4); 3465666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long rand_sl1_1 = rand.nextLong(); 3475666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl2_1 = randvec_long(2); 3485666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl3_1 = randvec_long(3); 3495666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma long[] rand_sl4_1 = randvec_long(4); 350a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte rand_sc1_0 = (byte)rand.nextInt(0x1 << 8); 351a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc2_0 = randvec_char(2); 352a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc3_0 = randvec_char(3); 353a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc4_0 = randvec_char(4); 354a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte rand_sc1_1 = (byte)rand.nextInt(0x1 << 8); 355a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc2_1 = randvec_char(2); 356a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc3_1 = randvec_char(3); 357a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma byte[] rand_sc4_1 = randvec_char(4); 3585666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: generate unsigned long vectors 3595666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 3605666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Set random vectors in renderscript code 3615666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f1_0(rand_f1_0); 3625666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f2_0(pack_f2(rand_f2_0)); 3635666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f3_0(pack_f3(rand_f3_0)); 3645666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f4_0(pack_f4(rand_f4_0)); 3655666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f1_1(rand_f1_1); 3665666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f2_1(pack_f2(rand_f2_1)); 3675666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f3_1(pack_f3(rand_f3_1)); 3685666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_f4_1(pack_f4(rand_f4_1)); 369a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc1_1(rand_uc1_1); 370a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc2_1(pack_s2(rand_uc2_1)); 371a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc3_1(pack_s3(rand_uc3_1)); 372a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc4_1(pack_s4(rand_uc4_1)); 3735666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss1_0(rand_ss1_0); 3745666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss2_0(pack_s2(rand_ss2_0)); 3755666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss3_0(pack_s3(rand_ss3_0)); 3765666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss4_0(pack_s4(rand_ss4_0)); 3775666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss1_1(rand_ss1_1); 3785666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss2_1(pack_s2(rand_ss2_1)); 3795666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss3_1(pack_s3(rand_ss3_1)); 3805666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_ss4_1(pack_s4(rand_ss4_1)); 381a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us1_0(rand_us1_0); 382a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us2_0(pack_i2(rand_us2_0)); 383a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us3_0(pack_i3(rand_us3_0)); 384a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us4_0(pack_i4(rand_us4_0)); 385a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us1_1(rand_us1_1); 386a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us2_1(pack_i2(rand_us2_1)); 387a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us3_1(pack_i3(rand_us3_1)); 388a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_us4_1(pack_i4(rand_us4_1)); 3895666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si1_0(rand_si1_0); 3905666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si2_0(pack_i2(rand_si2_0)); 3915666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si3_0(pack_i3(rand_si3_0)); 3925666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si4_0(pack_i4(rand_si4_0)); 3935666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si1_1(rand_si1_1); 3945666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si2_1(pack_i2(rand_si2_1)); 3955666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si3_1(pack_i3(rand_si3_1)); 3965666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_si4_1(pack_i4(rand_si4_1)); 397a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui1_0(rand_ui1_0); 398a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui2_0(pack_l2(rand_ui2_0)); 399a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui3_0(pack_l3(rand_ui3_0)); 400a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui4_0(pack_l4(rand_ui4_0)); 401a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui1_1(rand_ui1_1); 402a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui2_1(pack_l2(rand_ui2_1)); 403a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui3_1(pack_l3(rand_ui3_1)); 404a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_ui4_1(pack_l4(rand_ui4_1)); 4055666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl1_0(rand_sl1_0); 4065666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl2_0(pack_l2(rand_sl2_0)); 4075666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl3_0(pack_l3(rand_sl3_0)); 4085666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl4_0(pack_l4(rand_sl4_0)); 4095666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl1_1(rand_sl1_1); 4105666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl2_1(pack_l2(rand_sl2_1)); 4115666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl3_1(pack_l3(rand_sl3_1)); 4125666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sl4_1(pack_l4(rand_sl4_1)); 413a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc1_0(rand_uc1_0); 414a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc2_0(pack_s2(rand_uc2_0)); 415a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc3_0(pack_s3(rand_uc3_0)); 416a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_uc4_0(pack_s4(rand_uc4_0)); 4175666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sc1_0(rand_sc1_0); 4185666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sc2_0(pack_b2(rand_sc2_0)); 4195666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sc3_0(pack_b3(rand_sc3_0)); 4205666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_rand_sc4_0(pack_b4(rand_sc4_0)); 421a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_sc1_1(rand_sc1_1); 422a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_sc2_1(pack_b2(rand_sc2_1)); 423a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_sc3_1(pack_b3(rand_sc3_1)); 424a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_rand_sc4_1(pack_b4(rand_sc4_1)); 4255666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: set unsigned long vectors 4265666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 4275666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Set results for min 4285666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_f1_f1(min(rand_f1_0, rand_f1_1)); 4295666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_f2_f2(pack_f2(min(rand_f2_0, rand_f2_1))); 4305666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_f3_f3(pack_f3(min(rand_f3_0, rand_f3_1))); 4315666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_f4_f4(pack_f4(min(rand_f4_0, rand_f4_1))); 432a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_uc1_uc1(min(rand_uc1_0, rand_uc1_1)); 433a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_uc2_uc2(pack_s2(min(rand_uc2_0, rand_uc2_1))); 434a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_uc3_uc3(pack_s3(min(rand_uc3_0, rand_uc3_1))); 435a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_uc4_uc4(pack_s4(min(rand_uc4_0, rand_uc4_1))); 4365666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_ss1_ss1(min(rand_ss1_0, rand_ss1_1)); 4375666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_ss2_ss2(pack_s2(min(rand_ss2_0, rand_ss2_1))); 4385666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_ss3_ss3(pack_s3(min(rand_ss3_0, rand_ss3_1))); 4395666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_ss4_ss4(pack_s4(min(rand_ss4_0, rand_ss4_1))); 440a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_us1_us1(min(rand_us1_0, rand_us1_1)); 441a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_us2_us2(pack_i2(min(rand_us2_0, rand_us2_1))); 442a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_us3_us3(pack_i3(min(rand_us3_0, rand_us3_1))); 443a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_us4_us4(pack_i4(min(rand_us4_0, rand_us4_1))); 4445666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_si1_si1(min(rand_si1_0, rand_si1_1)); 4455666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_si2_si2(pack_i2(min(rand_si2_0, rand_si2_1))); 4465666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_si3_si3(pack_i3(min(rand_si3_0, rand_si3_1))); 4475666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_si4_si4(pack_i4(min(rand_si4_0, rand_si4_1))); 448a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_ui1_ui1(min(rand_ui1_0, rand_ui1_1)); 449a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_ui2_ui2(pack_l2(min(rand_ui2_0, rand_ui2_1))); 450a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_ui3_ui3(pack_l3(min(rand_ui3_0, rand_ui3_1))); 451a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_min_rand_ui4_ui4(pack_l4(min(rand_ui4_0, rand_ui4_1))); 4525666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sl1_sl1(min(rand_sl1_0, rand_sl1_1)); 4535666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sl2_sl2(pack_l2(min(rand_sl2_0, rand_sl2_1))); 4545666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sl3_sl3(pack_l3(min(rand_sl3_0, rand_sl3_1))); 4555666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sl4_sl4(pack_l4(min(rand_sl4_0, rand_sl4_1))); 4565666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sc1_sc1(min(rand_sc1_0, rand_sc1_1)); 4575666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sc2_sc2(pack_b2(min(rand_sc2_0, rand_sc2_1))); 4585666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sc3_sc3(pack_b3(min(rand_sc3_0, rand_sc3_1))); 4595666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_min_rand_sc4_sc4(pack_b4(min(rand_sc4_0, rand_sc4_1))); 4605666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: set results for unsigned long min 4615666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 4625666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Set results for max 4635666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_f1_f1(max(rand_f1_0, rand_f1_1)); 4645666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_f2_f2(pack_f2(max(rand_f2_0, rand_f2_1))); 4655666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_f3_f3(pack_f3(max(rand_f3_0, rand_f3_1))); 4665666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_f4_f4(pack_f4(max(rand_f4_0, rand_f4_1))); 467a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_uc1_uc1(max(rand_uc1_0, rand_uc1_1)); 468a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_uc2_uc2(pack_s2(max(rand_uc2_0, rand_uc2_1))); 469a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_uc3_uc3(pack_s3(max(rand_uc3_0, rand_uc3_1))); 470a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_uc4_uc4(pack_s4(max(rand_uc4_0, rand_uc4_1))); 4715666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_ss1_ss1(max(rand_ss1_0, rand_ss1_1)); 4725666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_ss2_ss2(pack_s2(max(rand_ss2_0, rand_ss2_1))); 4735666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_ss3_ss3(pack_s3(max(rand_ss3_0, rand_ss3_1))); 4745666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_ss4_ss4(pack_s4(max(rand_ss4_0, rand_ss4_1))); 475a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_us1_us1(max(rand_us1_0, rand_us1_1)); 476a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_us2_us2(pack_i2(max(rand_us2_0, rand_us2_1))); 477a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_us3_us3(pack_i3(max(rand_us3_0, rand_us3_1))); 478a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_us4_us4(pack_i4(max(rand_us4_0, rand_us4_1))); 4795666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_si1_si1(max(rand_si1_0, rand_si1_1)); 4805666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_si2_si2(pack_i2(max(rand_si2_0, rand_si2_1))); 4815666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_si3_si3(pack_i3(max(rand_si3_0, rand_si3_1))); 4825666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_si4_si4(pack_i4(max(rand_si4_0, rand_si4_1))); 483a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_ui1_ui1(max(rand_ui1_0, rand_ui1_1)); 484a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_ui2_ui2(pack_l2(max(rand_ui2_0, rand_ui2_1))); 485a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_ui3_ui3(pack_l3(max(rand_ui3_0, rand_ui3_1))); 486a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma s.set_max_rand_ui4_ui4(pack_l4(max(rand_ui4_0, rand_ui4_1))); 4875666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sl1_sl1(max(rand_sl1_0, rand_sl1_1)); 4885666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sl2_sl2(pack_l2(max(rand_sl2_0, rand_sl2_1))); 4895666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sl3_sl3(pack_l3(max(rand_sl3_0, rand_sl3_1))); 4905666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sl4_sl4(pack_l4(max(rand_sl4_0, rand_sl4_1))); 4915666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sc1_sc1(max(rand_sc1_0, rand_sc1_1)); 4925666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sc2_sc2(pack_b2(max(rand_sc2_0, rand_sc2_1))); 4935666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sc3_sc3(pack_b3(max(rand_sc3_0, rand_sc3_1))); 4945666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_max_rand_sc4_sc4(pack_b4(max(rand_sc4_0, rand_sc4_1))); 495a807a50cf2c4cec3cb13421043c05a29458b1120Rajeev Sharma 4965666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // TODO: set results for unsigned long max 4975666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 4985666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Set results for fmin 4995666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f1_f1(fmin(rand_f1_0, rand_f1_1)); 5005666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f2_f2(pack_f2(fmin(rand_f2_0, rand_f2_1))); 5015666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f3_f3(pack_f3(fmin(rand_f3_0, rand_f3_1))); 5025666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f4_f4(pack_f4(fmin(rand_f4_0, rand_f4_1))); 5035666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f2_f1(pack_f2(fmin(rand_f2_0, rand_f1_1))); 5045666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f3_f1(pack_f3(fmin(rand_f3_0, rand_f1_1))); 5055666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmin_rand_f4_f1(pack_f4(fmin(rand_f4_0, rand_f1_1))); 5065666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma 5075666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma // Set results for fmax 5085666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f1_f1(fmax(rand_f1_0, rand_f1_1)); 5095666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f2_f2(pack_f2(fmax(rand_f2_0, rand_f2_1))); 5105666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f3_f3(pack_f3(fmax(rand_f3_0, rand_f3_1))); 5115666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f4_f4(pack_f4(fmax(rand_f4_0, rand_f4_1))); 5125666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f2_f1(pack_f2(fmax(rand_f2_0, rand_f1_1))); 5135666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f3_f1(pack_f3(fmax(rand_f3_0, rand_f1_1))); 5145666d8f4fb6ddb33394d40f0d35a778a3b7cdbc7Rajeev Sharma s.set_fmax_rand_f4_f1(pack_f4(fmax(rand_f4_0, rand_f1_1))); 515325ca45471862654a70948e09415277d8646c68bRajeev Sharma } 516325ca45471862654a70948e09415277d8646c68bRajeev Sharma 517325ca45471862654a70948e09415277d8646c68bRajeev Sharma public void run() { 518325ca45471862654a70948e09415277d8646c68bRajeev Sharma RenderScript pRS = RenderScript.create(mCtx); 51958b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines ScriptC_math_agree s = new ScriptC_math_agree(pRS); 520325ca45471862654a70948e09415277d8646c68bRajeev Sharma pRS.setMessageHandler(mRsMessage); 521325ca45471862654a70948e09415277d8646c68bRajeev Sharma initializeValues(s); 522325ca45471862654a70948e09415277d8646c68bRajeev Sharma s.invoke_math_agree_test(); 523325ca45471862654a70948e09415277d8646c68bRajeev Sharma pRS.finish(); 524325ca45471862654a70948e09415277d8646c68bRajeev Sharma waitForMessage(); 525325ca45471862654a70948e09415277d8646c68bRajeev Sharma pRS.destroy(); 526325ca45471862654a70948e09415277d8646c68bRajeev Sharma } 527325ca45471862654a70948e09415277d8646c68bRajeev Sharma} 528