| // This file is automatically generated from |
| // frameworks/rs/tests/java_api/RSUnitTests/RSUnitTests.py |
| /* |
| * Copyright (C) 2017 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.rs.unittest; |
| |
| import android.content.Context; |
| import android.support.v8.renderscript.Byte2; |
| import android.support.v8.renderscript.Byte3; |
| import android.support.v8.renderscript.Byte4; |
| import android.support.v8.renderscript.Float2; |
| import android.support.v8.renderscript.Float3; |
| import android.support.v8.renderscript.Float4; |
| import android.support.v8.renderscript.Int2; |
| import android.support.v8.renderscript.Int3; |
| import android.support.v8.renderscript.Int4; |
| import android.support.v8.renderscript.Long2; |
| import android.support.v8.renderscript.Long3; |
| import android.support.v8.renderscript.Long4; |
| import android.support.v8.renderscript.RenderScript; |
| import android.support.v8.renderscript.Short2; |
| import android.support.v8.renderscript.Short3; |
| import android.support.v8.renderscript.Short4; |
| |
| import java.util.Random; |
| |
| public class UT_math_agree extends UnitTest { |
| private Random rand; |
| |
| public UT_math_agree(Context ctx) { |
| super("Math Agreement", ctx); |
| rand = new Random(); |
| } |
| |
| // packing functions |
| private Float2 pack_f2(float[] val) { |
| assert val.length == 2; |
| return new Float2(val[0], val[1]); |
| } |
| |
| private Float3 pack_f3(float[] val) { |
| assert val.length == 3; |
| return new Float3(val[0], val[1], val[2]); |
| } |
| |
| private Float4 pack_f4(float[] val) { |
| assert val.length == 4; |
| return new Float4(val[0], val[1], val[2], val[3]); |
| } |
| |
| private Byte2 pack_b2(byte[] val) { |
| assert val.length == 2; |
| return new Byte2(val[0], val[1]); |
| } |
| |
| private Byte3 pack_b3(byte[] val) { |
| assert val.length == 3; |
| return new Byte3(val[0], val[1], val[2]); |
| } |
| |
| private Byte4 pack_b4(byte[] val) { |
| assert val.length == 4; |
| return new Byte4(val[0], val[1], val[2], val[3]); |
| } |
| |
| private Short2 pack_s2(short[] val) { |
| assert val.length == 2; |
| return new Short2(val[0], val[1]); |
| } |
| |
| private Short3 pack_s3(short[] val) { |
| assert val.length == 3; |
| return new Short3(val[0], val[1], val[2]); |
| } |
| |
| private Short4 pack_s4(short[] val) { |
| assert val.length == 4; |
| return new Short4(val[0], val[1], val[2], val[3]); |
| } |
| |
| private Int2 pack_i2(int[] val) { |
| assert val.length == 2; |
| return new Int2(val[0], val[1]); |
| } |
| |
| private Int3 pack_i3(int[] val) { |
| assert val.length == 3; |
| return new Int3(val[0], val[1], val[2]); |
| } |
| |
| private Int4 pack_i4(int[] val) { |
| assert val.length == 4; |
| return new Int4(val[0], val[1], val[2], val[3]); |
| } |
| |
| private Long2 pack_l2(long[] val) { |
| assert val.length == 2; |
| return new Long2(val[0], val[1]); |
| } |
| |
| private Long3 pack_l3(long[] val) { |
| assert val.length == 3; |
| return new Long3(val[0], val[1], val[2]); |
| } |
| |
| private Long4 pack_l4(long[] val) { |
| assert val.length == 4; |
| return new Long4(val[0], val[1], val[2], val[3]); |
| } |
| |
| // random vector generation functions |
| private float[] randvec_float(int dim) { |
| float[] fv = new float[dim]; |
| for (int i = 0; i < dim; ++i) |
| fv[i] = rand.nextFloat(); |
| return fv; |
| } |
| |
| private byte[] randvec_char(int dim) { |
| byte[] cv = new byte[dim]; |
| rand.nextBytes(cv); |
| return cv; |
| } |
| |
| private short[] randvec_uchar(int dim) { |
| short[] ucv = new short[dim]; |
| for (int i = 0; i < dim; ++i) |
| ucv[i] = (short) rand.nextInt(0x1 << 8); |
| return ucv; |
| } |
| |
| private short[] randvec_short(int dim) { |
| short[] sv = new short[dim]; |
| for (int i = 0; i < dim; ++i) |
| sv[i] = (short) rand.nextInt(0x1 << 16); |
| return sv; |
| } |
| |
| private int[] randvec_ushort(int dim) { |
| int[] usv = new int[dim]; |
| for (int i = 0; i < dim; ++i) |
| usv[i] = rand.nextInt(0x1 << 16); |
| return usv; |
| } |
| |
| private int[] randvec_int(int dim) { |
| int[] iv = new int[dim]; |
| for (int i = 0; i < dim; ++i) |
| iv[i] = rand.nextInt(); |
| return iv; |
| } |
| |
| private long[] randvec_uint(int dim) { |
| long[] uiv = new long[dim]; |
| for (int i = 0; i < dim; ++i) |
| uiv[i] = (long) rand.nextInt() - (long) Integer.MIN_VALUE; |
| return uiv; |
| } |
| |
| private long[] randvec_long(int dim) { |
| long[] lv = new long[dim]; |
| for (int i = 0; i < dim; ++i) |
| lv[i] = rand.nextLong(); |
| return lv; |
| } |
| // TODO: unsigned long generator |
| |
| // min reference functions |
| private float min(float v1, float v2) { |
| return v1 < v2 ? v1 : v2; |
| } |
| |
| private float[] min(float[] v1, float[] v2) { |
| assert v1.length == v2.length; |
| float[] rv = new float[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private byte min(byte v1, byte v2) { |
| return v1 < v2 ? v1 : v2; |
| } |
| |
| private byte[] min(byte[] v1, byte[] v2) { |
| assert v1.length == v2.length; |
| byte[] rv = new byte[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private short min(short v1, short v2) { |
| return v1 < v2 ? v1 : v2; |
| } |
| |
| private short[] min(short[] v1, short[] v2) { |
| assert v1.length == v2.length; |
| short[] rv = new short[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private int min(int v1, int v2) { |
| return v1 < v2 ? v1 : v2; |
| } |
| |
| private int[] min(int[] v1, int[] v2) { |
| assert v1.length == v2.length; |
| int[] rv = new int[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private long min(long v1, long v2) { |
| return v1 < v2 ? v1 : v2; |
| } |
| |
| private long[] min(long[] v1, long[] v2) { |
| assert v1.length == v2.length; |
| long[] rv = new long[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2[i]); |
| return rv; |
| } |
| // TODO: unsigned long version of min |
| |
| // max reference functions |
| private float max(float v1, float v2) { |
| return v1 > v2 ? v1 : v2; |
| } |
| |
| private float[] max(float[] v1, float[] v2) { |
| assert v1.length == v2.length; |
| float[] rv = new float[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private byte max(byte v1, byte v2) { |
| return v1 > v2 ? v1 : v2; |
| } |
| |
| private byte[] max(byte[] v1, byte[] v2) { |
| assert v1.length == v2.length; |
| byte[] rv = new byte[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private short max(short v1, short v2) { |
| return v1 > v2 ? v1 : v2; |
| } |
| |
| private short[] max(short[] v1, short[] v2) { |
| assert v1.length == v2.length; |
| short[] rv = new short[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private int max(int v1, int v2) { |
| return v1 > v2 ? v1 : v2; |
| } |
| |
| private int[] max(int[] v1, int[] v2) { |
| assert v1.length == v2.length; |
| int[] rv = new int[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2[i]); |
| return rv; |
| } |
| |
| private long max(long v1, long v2) { |
| return v1 > v2 ? v1 : v2; |
| } |
| |
| private long[] max(long[] v1, long[] v2) { |
| assert v1.length == v2.length; |
| long[] rv = new long[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2[i]); |
| return rv; |
| } |
| // TODO: unsigned long version of max |
| |
| // fmin reference functions |
| private float fmin(float v1, float v2) { |
| return min(v1, v2); |
| } |
| |
| private float[] fmin(float[] v1, float[] v2) { |
| return min(v1, v2); |
| } |
| |
| private float[] fmin(float[] v1, float v2) { |
| float[] rv = new float[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = min(v1[i], v2); |
| return rv; |
| } |
| |
| // fmax reference functions |
| private float fmax(float v1, float v2) { |
| return max(v1, v2); |
| } |
| |
| private float[] fmax(float[] v1, float[] v2) { |
| return max(v1, v2); |
| } |
| |
| private float[] fmax(float[] v1, float v2) { |
| float[] rv = new float[v1.length]; |
| for (int i = 0; i < v1.length; ++i) |
| rv[i] = max(v1[i], v2); |
| return rv; |
| } |
| |
| private void initializeValues(ScriptC_math_agree s) { |
| float x = rand.nextFloat(); |
| float y = rand.nextFloat(); |
| |
| s.set_x(x); |
| s.set_y(y); |
| s.set_result_add(x + y); |
| s.set_result_sub(x - y); |
| s.set_result_mul(x * y); |
| s.set_result_div(x / y); |
| |
| // Generate random vectors of all types |
| float rand_f1_0 = rand.nextFloat(); |
| float[] rand_f2_0 = randvec_float(2); |
| float[] rand_f3_0 = randvec_float(3); |
| float[] rand_f4_0 = randvec_float(4); |
| float rand_f1_1 = rand.nextFloat(); |
| float[] rand_f2_1 = randvec_float(2); |
| float[] rand_f3_1 = randvec_float(3); |
| float[] rand_f4_1 = randvec_float(4); |
| short rand_uc1_0 = (short) rand.nextInt(0x1 << 8); |
| short[] rand_uc2_0 = randvec_uchar(2); |
| short[] rand_uc3_0 = randvec_uchar(3); |
| short[] rand_uc4_0 = randvec_uchar(4); |
| short rand_uc1_1 = (short) rand.nextInt(0x1 << 8); |
| short[] rand_uc2_1 = randvec_uchar(2); |
| short[] rand_uc3_1 = randvec_uchar(3); |
| short[] rand_uc4_1 = randvec_uchar(4); |
| short rand_ss1_0 = (short) rand.nextInt(0x1 << 16); |
| short[] rand_ss2_0 = randvec_short(2); |
| short[] rand_ss3_0 = randvec_short(3); |
| short[] rand_ss4_0 = randvec_short(4); |
| short rand_ss1_1 = (short) rand.nextInt(0x1 << 16); |
| short[] rand_ss2_1 = randvec_short(2); |
| short[] rand_ss3_1 = randvec_short(3); |
| short[] rand_ss4_1 = randvec_short(4); |
| int rand_us1_0 = rand.nextInt(0x1 << 16); |
| int[] rand_us2_0 = randvec_ushort(2); |
| int[] rand_us3_0 = randvec_ushort(3); |
| int[] rand_us4_0 = randvec_ushort(4); |
| int rand_us1_1 = rand.nextInt(0x1 << 16); |
| int[] rand_us2_1 = randvec_ushort(2); |
| int[] rand_us3_1 = randvec_ushort(3); |
| int[] rand_us4_1 = randvec_ushort(4); |
| int rand_si1_0 = rand.nextInt(); |
| int[] rand_si2_0 = randvec_int(2); |
| int[] rand_si3_0 = randvec_int(3); |
| int[] rand_si4_0 = randvec_int(4); |
| int rand_si1_1 = rand.nextInt(); |
| int[] rand_si2_1 = randvec_int(2); |
| int[] rand_si3_1 = randvec_int(3); |
| int[] rand_si4_1 = randvec_int(4); |
| long rand_ui1_0 = (long) rand.nextInt() - (long) Integer.MIN_VALUE; |
| long[] rand_ui2_0 = randvec_uint(2); |
| long[] rand_ui3_0 = randvec_uint(3); |
| long[] rand_ui4_0 = randvec_uint(4); |
| long rand_ui1_1 = (long) rand.nextInt() - (long) Integer.MIN_VALUE; |
| long[] rand_ui2_1 = randvec_uint(2); |
| long[] rand_ui3_1 = randvec_uint(3); |
| long[] rand_ui4_1 = randvec_uint(4); |
| long rand_sl1_0 = rand.nextLong(); |
| long[] rand_sl2_0 = randvec_long(2); |
| long[] rand_sl3_0 = randvec_long(3); |
| long[] rand_sl4_0 = randvec_long(4); |
| long rand_sl1_1 = rand.nextLong(); |
| long[] rand_sl2_1 = randvec_long(2); |
| long[] rand_sl3_1 = randvec_long(3); |
| long[] rand_sl4_1 = randvec_long(4); |
| byte rand_sc1_0 = (byte) rand.nextInt(0x1 << 8); |
| byte[] rand_sc2_0 = randvec_char(2); |
| byte[] rand_sc3_0 = randvec_char(3); |
| byte[] rand_sc4_0 = randvec_char(4); |
| byte rand_sc1_1 = (byte) rand.nextInt(0x1 << 8); |
| byte[] rand_sc2_1 = randvec_char(2); |
| byte[] rand_sc3_1 = randvec_char(3); |
| byte[] rand_sc4_1 = randvec_char(4); |
| // TODO: generate unsigned long vectors |
| |
| // Set random vectors in renderscript code |
| s.set_rand_f1_0(rand_f1_0); |
| s.set_rand_f2_0(pack_f2(rand_f2_0)); |
| s.set_rand_f3_0(pack_f3(rand_f3_0)); |
| s.set_rand_f4_0(pack_f4(rand_f4_0)); |
| s.set_rand_f1_1(rand_f1_1); |
| s.set_rand_f2_1(pack_f2(rand_f2_1)); |
| s.set_rand_f3_1(pack_f3(rand_f3_1)); |
| s.set_rand_f4_1(pack_f4(rand_f4_1)); |
| s.set_rand_uc1_1(rand_uc1_1); |
| s.set_rand_uc2_1(pack_s2(rand_uc2_1)); |
| s.set_rand_uc3_1(pack_s3(rand_uc3_1)); |
| s.set_rand_uc4_1(pack_s4(rand_uc4_1)); |
| s.set_rand_ss1_0(rand_ss1_0); |
| s.set_rand_ss2_0(pack_s2(rand_ss2_0)); |
| s.set_rand_ss3_0(pack_s3(rand_ss3_0)); |
| s.set_rand_ss4_0(pack_s4(rand_ss4_0)); |
| s.set_rand_ss1_1(rand_ss1_1); |
| s.set_rand_ss2_1(pack_s2(rand_ss2_1)); |
| s.set_rand_ss3_1(pack_s3(rand_ss3_1)); |
| s.set_rand_ss4_1(pack_s4(rand_ss4_1)); |
| s.set_rand_us1_0(rand_us1_0); |
| s.set_rand_us2_0(pack_i2(rand_us2_0)); |
| s.set_rand_us3_0(pack_i3(rand_us3_0)); |
| s.set_rand_us4_0(pack_i4(rand_us4_0)); |
| s.set_rand_us1_1(rand_us1_1); |
| s.set_rand_us2_1(pack_i2(rand_us2_1)); |
| s.set_rand_us3_1(pack_i3(rand_us3_1)); |
| s.set_rand_us4_1(pack_i4(rand_us4_1)); |
| s.set_rand_si1_0(rand_si1_0); |
| s.set_rand_si2_0(pack_i2(rand_si2_0)); |
| s.set_rand_si3_0(pack_i3(rand_si3_0)); |
| s.set_rand_si4_0(pack_i4(rand_si4_0)); |
| s.set_rand_si1_1(rand_si1_1); |
| s.set_rand_si2_1(pack_i2(rand_si2_1)); |
| s.set_rand_si3_1(pack_i3(rand_si3_1)); |
| s.set_rand_si4_1(pack_i4(rand_si4_1)); |
| s.set_rand_ui1_0(rand_ui1_0); |
| s.set_rand_ui2_0(pack_l2(rand_ui2_0)); |
| s.set_rand_ui3_0(pack_l3(rand_ui3_0)); |
| s.set_rand_ui4_0(pack_l4(rand_ui4_0)); |
| s.set_rand_ui1_1(rand_ui1_1); |
| s.set_rand_ui2_1(pack_l2(rand_ui2_1)); |
| s.set_rand_ui3_1(pack_l3(rand_ui3_1)); |
| s.set_rand_ui4_1(pack_l4(rand_ui4_1)); |
| s.set_rand_sl1_0(rand_sl1_0); |
| s.set_rand_sl2_0(pack_l2(rand_sl2_0)); |
| s.set_rand_sl3_0(pack_l3(rand_sl3_0)); |
| s.set_rand_sl4_0(pack_l4(rand_sl4_0)); |
| s.set_rand_sl1_1(rand_sl1_1); |
| s.set_rand_sl2_1(pack_l2(rand_sl2_1)); |
| s.set_rand_sl3_1(pack_l3(rand_sl3_1)); |
| s.set_rand_sl4_1(pack_l4(rand_sl4_1)); |
| s.set_rand_uc1_0(rand_uc1_0); |
| s.set_rand_uc2_0(pack_s2(rand_uc2_0)); |
| s.set_rand_uc3_0(pack_s3(rand_uc3_0)); |
| s.set_rand_uc4_0(pack_s4(rand_uc4_0)); |
| s.set_rand_sc1_0(rand_sc1_0); |
| s.set_rand_sc2_0(pack_b2(rand_sc2_0)); |
| s.set_rand_sc3_0(pack_b3(rand_sc3_0)); |
| s.set_rand_sc4_0(pack_b4(rand_sc4_0)); |
| s.set_rand_sc1_1(rand_sc1_1); |
| s.set_rand_sc2_1(pack_b2(rand_sc2_1)); |
| s.set_rand_sc3_1(pack_b3(rand_sc3_1)); |
| s.set_rand_sc4_1(pack_b4(rand_sc4_1)); |
| // TODO: set unsigned long vectors |
| |
| // Set results for min |
| s.set_min_rand_f1_f1(min(rand_f1_0, rand_f1_1)); |
| s.set_min_rand_f2_f2(pack_f2(min(rand_f2_0, rand_f2_1))); |
| s.set_min_rand_f3_f3(pack_f3(min(rand_f3_0, rand_f3_1))); |
| s.set_min_rand_f4_f4(pack_f4(min(rand_f4_0, rand_f4_1))); |
| s.set_min_rand_uc1_uc1(min(rand_uc1_0, rand_uc1_1)); |
| s.set_min_rand_uc2_uc2(pack_s2(min(rand_uc2_0, rand_uc2_1))); |
| s.set_min_rand_uc3_uc3(pack_s3(min(rand_uc3_0, rand_uc3_1))); |
| s.set_min_rand_uc4_uc4(pack_s4(min(rand_uc4_0, rand_uc4_1))); |
| s.set_min_rand_ss1_ss1(min(rand_ss1_0, rand_ss1_1)); |
| s.set_min_rand_ss2_ss2(pack_s2(min(rand_ss2_0, rand_ss2_1))); |
| s.set_min_rand_ss3_ss3(pack_s3(min(rand_ss3_0, rand_ss3_1))); |
| s.set_min_rand_ss4_ss4(pack_s4(min(rand_ss4_0, rand_ss4_1))); |
| s.set_min_rand_us1_us1(min(rand_us1_0, rand_us1_1)); |
| s.set_min_rand_us2_us2(pack_i2(min(rand_us2_0, rand_us2_1))); |
| s.set_min_rand_us3_us3(pack_i3(min(rand_us3_0, rand_us3_1))); |
| s.set_min_rand_us4_us4(pack_i4(min(rand_us4_0, rand_us4_1))); |
| s.set_min_rand_si1_si1(min(rand_si1_0, rand_si1_1)); |
| s.set_min_rand_si2_si2(pack_i2(min(rand_si2_0, rand_si2_1))); |
| s.set_min_rand_si3_si3(pack_i3(min(rand_si3_0, rand_si3_1))); |
| s.set_min_rand_si4_si4(pack_i4(min(rand_si4_0, rand_si4_1))); |
| s.set_min_rand_ui1_ui1(min(rand_ui1_0, rand_ui1_1)); |
| s.set_min_rand_ui2_ui2(pack_l2(min(rand_ui2_0, rand_ui2_1))); |
| s.set_min_rand_ui3_ui3(pack_l3(min(rand_ui3_0, rand_ui3_1))); |
| s.set_min_rand_ui4_ui4(pack_l4(min(rand_ui4_0, rand_ui4_1))); |
| s.set_min_rand_sl1_sl1(min(rand_sl1_0, rand_sl1_1)); |
| s.set_min_rand_sl2_sl2(pack_l2(min(rand_sl2_0, rand_sl2_1))); |
| s.set_min_rand_sl3_sl3(pack_l3(min(rand_sl3_0, rand_sl3_1))); |
| s.set_min_rand_sl4_sl4(pack_l4(min(rand_sl4_0, rand_sl4_1))); |
| s.set_min_rand_sc1_sc1(min(rand_sc1_0, rand_sc1_1)); |
| s.set_min_rand_sc2_sc2(pack_b2(min(rand_sc2_0, rand_sc2_1))); |
| s.set_min_rand_sc3_sc3(pack_b3(min(rand_sc3_0, rand_sc3_1))); |
| s.set_min_rand_sc4_sc4(pack_b4(min(rand_sc4_0, rand_sc4_1))); |
| // TODO: set results for unsigned long min |
| |
| // Set results for max |
| s.set_max_rand_f1_f1(max(rand_f1_0, rand_f1_1)); |
| s.set_max_rand_f2_f2(pack_f2(max(rand_f2_0, rand_f2_1))); |
| s.set_max_rand_f3_f3(pack_f3(max(rand_f3_0, rand_f3_1))); |
| s.set_max_rand_f4_f4(pack_f4(max(rand_f4_0, rand_f4_1))); |
| s.set_max_rand_uc1_uc1(max(rand_uc1_0, rand_uc1_1)); |
| s.set_max_rand_uc2_uc2(pack_s2(max(rand_uc2_0, rand_uc2_1))); |
| s.set_max_rand_uc3_uc3(pack_s3(max(rand_uc3_0, rand_uc3_1))); |
| s.set_max_rand_uc4_uc4(pack_s4(max(rand_uc4_0, rand_uc4_1))); |
| s.set_max_rand_ss1_ss1(max(rand_ss1_0, rand_ss1_1)); |
| s.set_max_rand_ss2_ss2(pack_s2(max(rand_ss2_0, rand_ss2_1))); |
| s.set_max_rand_ss3_ss3(pack_s3(max(rand_ss3_0, rand_ss3_1))); |
| s.set_max_rand_ss4_ss4(pack_s4(max(rand_ss4_0, rand_ss4_1))); |
| s.set_max_rand_us1_us1(max(rand_us1_0, rand_us1_1)); |
| s.set_max_rand_us2_us2(pack_i2(max(rand_us2_0, rand_us2_1))); |
| s.set_max_rand_us3_us3(pack_i3(max(rand_us3_0, rand_us3_1))); |
| s.set_max_rand_us4_us4(pack_i4(max(rand_us4_0, rand_us4_1))); |
| s.set_max_rand_si1_si1(max(rand_si1_0, rand_si1_1)); |
| s.set_max_rand_si2_si2(pack_i2(max(rand_si2_0, rand_si2_1))); |
| s.set_max_rand_si3_si3(pack_i3(max(rand_si3_0, rand_si3_1))); |
| s.set_max_rand_si4_si4(pack_i4(max(rand_si4_0, rand_si4_1))); |
| s.set_max_rand_ui1_ui1(max(rand_ui1_0, rand_ui1_1)); |
| s.set_max_rand_ui2_ui2(pack_l2(max(rand_ui2_0, rand_ui2_1))); |
| s.set_max_rand_ui3_ui3(pack_l3(max(rand_ui3_0, rand_ui3_1))); |
| s.set_max_rand_ui4_ui4(pack_l4(max(rand_ui4_0, rand_ui4_1))); |
| s.set_max_rand_sl1_sl1(max(rand_sl1_0, rand_sl1_1)); |
| s.set_max_rand_sl2_sl2(pack_l2(max(rand_sl2_0, rand_sl2_1))); |
| s.set_max_rand_sl3_sl3(pack_l3(max(rand_sl3_0, rand_sl3_1))); |
| s.set_max_rand_sl4_sl4(pack_l4(max(rand_sl4_0, rand_sl4_1))); |
| s.set_max_rand_sc1_sc1(max(rand_sc1_0, rand_sc1_1)); |
| s.set_max_rand_sc2_sc2(pack_b2(max(rand_sc2_0, rand_sc2_1))); |
| s.set_max_rand_sc3_sc3(pack_b3(max(rand_sc3_0, rand_sc3_1))); |
| s.set_max_rand_sc4_sc4(pack_b4(max(rand_sc4_0, rand_sc4_1))); |
| |
| // TODO: set results for unsigned long max |
| |
| // Set results for fmin |
| s.set_fmin_rand_f1_f1(fmin(rand_f1_0, rand_f1_1)); |
| s.set_fmin_rand_f2_f2(pack_f2(fmin(rand_f2_0, rand_f2_1))); |
| s.set_fmin_rand_f3_f3(pack_f3(fmin(rand_f3_0, rand_f3_1))); |
| s.set_fmin_rand_f4_f4(pack_f4(fmin(rand_f4_0, rand_f4_1))); |
| s.set_fmin_rand_f2_f1(pack_f2(fmin(rand_f2_0, rand_f1_1))); |
| s.set_fmin_rand_f3_f1(pack_f3(fmin(rand_f3_0, rand_f1_1))); |
| s.set_fmin_rand_f4_f1(pack_f4(fmin(rand_f4_0, rand_f1_1))); |
| |
| // Set results for fmax |
| s.set_fmax_rand_f1_f1(fmax(rand_f1_0, rand_f1_1)); |
| s.set_fmax_rand_f2_f2(pack_f2(fmax(rand_f2_0, rand_f2_1))); |
| s.set_fmax_rand_f3_f3(pack_f3(fmax(rand_f3_0, rand_f3_1))); |
| s.set_fmax_rand_f4_f4(pack_f4(fmax(rand_f4_0, rand_f4_1))); |
| s.set_fmax_rand_f2_f1(pack_f2(fmax(rand_f2_0, rand_f1_1))); |
| s.set_fmax_rand_f3_f1(pack_f3(fmax(rand_f3_0, rand_f1_1))); |
| s.set_fmax_rand_f4_f1(pack_f4(fmax(rand_f4_0, rand_f1_1))); |
| } |
| |
| public void run() { |
| RenderScript pRS = createRenderScript(true); |
| ScriptC_math_agree s = new ScriptC_math_agree(pRS); |
| initializeValues(s); |
| s.invoke_math_agree_test(); |
| pRS.finish(); |
| s.destroy(); |
| pRS.destroy(); |
| } |
| } |