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