| /* |
| * Copyright (C) 2011-2014 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. |
| */ |
| |
| /* |
| * This file is auto-generated. DO NOT MODIFY! |
| * The source Renderscript file: reduce_general_examples_backward.rs |
| */ |
| |
| package examples; |
| |
| import android.os.Build; |
| import android.os.Process; |
| import java.lang.reflect.Field; |
| import android.renderscript.*; |
| import examples.reduce_general_examples_backwardBitCode; |
| |
| /** |
| * @hide |
| */ |
| public class ScriptC_reduce_general_examples_backward extends ScriptC { |
| private static final String __rs_resource_name = "reduce_general_examples_backward"; |
| // Constructor |
| public ScriptC_reduce_general_examples_backward(RenderScript rs) { |
| super(rs, |
| __rs_resource_name, |
| reduce_general_examples_backwardBitCode.getBitCode32(), |
| reduce_general_examples_backwardBitCode.getBitCode64()); |
| mRSLocal = rs; |
| __I32 = Element.I32(rs); |
| __F32 = Element.F32(rs); |
| __I32_2 = Element.I32_2(rs); |
| __U32 = Element.U32(rs); |
| __U8 = Element.U8(rs); |
| } |
| |
| private Element __F32; |
| private Element __I32; |
| private Element __I32_2; |
| private Element __U32; |
| private Element __U8; |
| private RenderScript mRSLocal; |
| // To obtain the result, invoke get(), which blocks |
| // until the asynchronously-launched operation has completed. |
| public static class resultArray256_uint { |
| public long[] get() { |
| if (!mGotResult) { |
| int[] outArray = new int[256]; |
| mOut.copyTo(outArray); |
| long[] result = new long[256]; |
| for (int Idx = 0; Idx < 256; ++Idx) { |
| result[Idx] = ((long) ((outArray[Idx]) & 0xffffffffL)); |
| } |
| |
| mResult = result; |
| mOut.destroy(); |
| mOut = null; // make Java object eligible for garbage collection |
| if (mTempIns != null) { |
| for (Allocation tempIn : mTempIns) { |
| tempIn.destroy(); |
| } |
| |
| mTempIns = null; // make Java objects eligible for garbage collection |
| } |
| |
| mGotResult = true; |
| } |
| |
| return mResult; |
| } |
| |
| private resultArray256_uint(Allocation out) { |
| mTempIns = null; |
| mOut = out; |
| mGotResult = false; |
| } |
| |
| private Allocation[] mTempIns; |
| private Allocation mOut; |
| private boolean mGotResult; |
| private long[] mResult; |
| } |
| |
| // To obtain the result, invoke get(), which blocks |
| // until the asynchronously-launched operation has completed. |
| public static class result_float { |
| public float get() { |
| if (!mGotResult) { |
| float[] outArray = new float[1]; |
| mOut.copyTo(outArray); |
| mResult = outArray[0]; |
| mOut.destroy(); |
| mOut = null; // make Java object eligible for garbage collection |
| if (mTempIns != null) { |
| for (Allocation tempIn : mTempIns) { |
| tempIn.destroy(); |
| } |
| |
| mTempIns = null; // make Java objects eligible for garbage collection |
| } |
| |
| mGotResult = true; |
| } |
| |
| return mResult; |
| } |
| |
| private result_float(Allocation out) { |
| mTempIns = null; |
| mOut = out; |
| mGotResult = false; |
| } |
| |
| private Allocation[] mTempIns; |
| private Allocation mOut; |
| private boolean mGotResult; |
| private float mResult; |
| } |
| |
| // To obtain the result, invoke get(), which blocks |
| // until the asynchronously-launched operation has completed. |
| public static class result_int { |
| public int get() { |
| if (!mGotResult) { |
| int[] outArray = new int[1]; |
| mOut.copyTo(outArray); |
| mResult = outArray[0]; |
| mOut.destroy(); |
| mOut = null; // make Java object eligible for garbage collection |
| if (mTempIns != null) { |
| for (Allocation tempIn : mTempIns) { |
| tempIn.destroy(); |
| } |
| |
| mTempIns = null; // make Java objects eligible for garbage collection |
| } |
| |
| mGotResult = true; |
| } |
| |
| return mResult; |
| } |
| |
| private result_int(Allocation out) { |
| mTempIns = null; |
| mOut = out; |
| mGotResult = false; |
| } |
| |
| private Allocation[] mTempIns; |
| private Allocation mOut; |
| private boolean mGotResult; |
| private int mResult; |
| } |
| |
| // To obtain the result, invoke get(), which blocks |
| // until the asynchronously-launched operation has completed. |
| public static class result_int2 { |
| public Int2 get() { |
| if (!mGotResult) { |
| int[] outArray = new int[2]; |
| mOut.copyTo(outArray); |
| mResult = new Int2(outArray[0], outArray[1]); |
| mOut.destroy(); |
| mOut = null; // make Java object eligible for garbage collection |
| if (mTempIns != null) { |
| for (Allocation tempIn : mTempIns) { |
| tempIn.destroy(); |
| } |
| |
| mTempIns = null; // make Java objects eligible for garbage collection |
| } |
| |
| mGotResult = true; |
| } |
| |
| return mResult; |
| } |
| |
| private result_int2(Allocation out) { |
| mTempIns = null; |
| mOut = out; |
| mGotResult = false; |
| } |
| |
| private Allocation[] mTempIns; |
| private Allocation mOut; |
| private boolean mGotResult; |
| private Int2 mResult; |
| } |
| |
| private final static int mExportReduceIdx_addint = 0; |
| // in1 = "val" |
| public result_int reduce_addint(int[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __I32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int result = reduce_addint(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "int val" |
| public result_int reduce_addint(Allocation ain1) { |
| return reduce_addint(ain1, null); |
| } |
| |
| // ain1 = "int val" |
| public result_int reduce_addint(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__I32)) { |
| throw new RSRuntimeException("Type mismatch with I32!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_addint, new Allocation[]{ain1}, aout, sc); |
| return new result_int(aout); |
| } |
| |
| private final static int mExportReduceIdx_mpyint = 1; |
| // in1 = "val" |
| public result_int reduce_mpyint(int[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __I32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int result = reduce_mpyint(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "int val" |
| public result_int reduce_mpyint(Allocation ain1) { |
| return reduce_mpyint(ain1, null); |
| } |
| |
| // ain1 = "int val" |
| public result_int reduce_mpyint(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__I32)) { |
| throw new RSRuntimeException("Type mismatch with I32!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_mpyint, new Allocation[]{ain1}, aout, sc); |
| return new result_int(aout); |
| } |
| |
| private final static int mExportReduceIdx_dp = 2; |
| // in1 = "in1" |
| // in2 = "in2" |
| public result_float reduce_dp(float[] in1, float[] in2) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __F32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| // Verify that "in2" is non-null. |
| if (in2 == null) { |
| throw new RSIllegalArgumentException("Array \"in2\" is null!"); |
| } |
| // Verify that input array lengths are the same. |
| if (in1.length != in2.length) { |
| throw new RSRuntimeException("Array length mismatch between parameters \"in1\" and \"in2\"!"); |
| } |
| Allocation ain2 = Allocation.createSized(mRSLocal, __F32, in2.length); |
| ain2.setAutoPadding(true); |
| ain2.copyFrom(in2); |
| |
| result_float result = reduce_dp(ain1, ain2, null); |
| result.mTempIns = new Allocation[]{ain1, ain2}; |
| return result; |
| } |
| |
| // ain1 = "float in1" |
| // ain2 = "float in2" |
| public result_float reduce_dp(Allocation ain1, Allocation ain2) { |
| return reduce_dp(ain1, ain2, null); |
| } |
| |
| // ain1 = "float in1" |
| // ain2 = "float in2" |
| public result_float reduce_dp(Allocation ain1, Allocation ain2, Script.LaunchOptions sc) { |
| Type t0, t1; |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__F32)) { |
| throw new RSRuntimeException("Type mismatch with F32!"); |
| } |
| // check ain2 |
| if (!ain2.getType().getElement().isCompatible(__F32)) { |
| throw new RSRuntimeException("Type mismatch with F32!"); |
| } |
| // Verify dimensions |
| t0 = ain1.getType(); |
| t1 = ain2.getType(); |
| if ((t0.getCount() != t1.getCount()) || |
| (t0.getX() != t1.getX()) || |
| (t0.getY() != t1.getY()) || |
| (t0.getZ() != t1.getZ()) || |
| (t0.hasFaces() != t1.hasFaces()) || |
| (t0.hasMipmaps() != t1.hasMipmaps())) { |
| throw new RSRuntimeException("Dimension mismatch between parameters ain1 and ain2!"); |
| } |
| |
| Allocation aout = Allocation.createSized(mRSLocal, __F32, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_dp, new Allocation[]{ain1, ain2}, aout, sc); |
| return new result_float(aout); |
| } |
| |
| private final static int mExportReduceIdx_findMinAndMax = 3; |
| // in1 = "in" |
| public result_int2 reduce_findMinAndMax(float[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __F32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int2 result = reduce_findMinAndMax(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "float in" |
| public result_int2 reduce_findMinAndMax(Allocation ain1) { |
| return reduce_findMinAndMax(ain1, null); |
| } |
| |
| // ain1 = "float in" |
| public result_int2 reduce_findMinAndMax(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__F32)) { |
| throw new RSRuntimeException("Type mismatch with F32!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32_2, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_findMinAndMax, new Allocation[]{ain1}, aout, sc); |
| return new result_int2(aout); |
| } |
| |
| private final static int mExportReduceIdx_fz = 4; |
| // in1 = "inVal" |
| public result_int reduce_fz(int[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __I32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int result = reduce_fz(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "int inVal" |
| public result_int reduce_fz(Allocation ain1) { |
| return reduce_fz(ain1, null); |
| } |
| |
| // ain1 = "int inVal" |
| public result_int reduce_fz(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__I32)) { |
| throw new RSRuntimeException("Type mismatch with I32!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_fz, new Allocation[]{ain1}, aout, sc); |
| return new result_int(aout); |
| } |
| |
| private final static int mExportReduceIdx_fz2 = 5; |
| // in1 = "inVal" |
| public result_int2 reduce_fz2(int[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __I32, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int2 result = reduce_fz2(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "int inVal" |
| public result_int2 reduce_fz2(Allocation ain1) { |
| return reduce_fz2(ain1, null); |
| } |
| |
| // ain1 = "int inVal" |
| public result_int2 reduce_fz2(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__I32)) { |
| throw new RSRuntimeException("Type mismatch with I32!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32_2, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_fz2, new Allocation[]{ain1}, aout, sc); |
| return new result_int2(aout); |
| } |
| |
| private final static int mExportReduceIdx_histogram = 6; |
| // in1 = "in" |
| public resultArray256_uint reduce_histogram(byte[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __U8, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| resultArray256_uint result = reduce_histogram(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "uchar in" |
| public resultArray256_uint reduce_histogram(Allocation ain1) { |
| return reduce_histogram(ain1, null); |
| } |
| |
| // ain1 = "uchar in" |
| public resultArray256_uint reduce_histogram(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__U8)) { |
| throw new RSRuntimeException("Type mismatch with U8!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __U32, 256); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_histogram, new Allocation[]{ain1}, aout, sc); |
| return new resultArray256_uint(aout); |
| } |
| |
| private final static int mExportReduceIdx_mode = 7; |
| // in1 = "in" |
| public result_int2 reduce_mode(byte[] in1) { |
| // Verify that "in1" is non-null. |
| if (in1 == null) { |
| throw new RSIllegalArgumentException("Array \"in1\" is null!"); |
| } |
| Allocation ain1 = Allocation.createSized(mRSLocal, __U8, in1.length); |
| ain1.setAutoPadding(true); |
| ain1.copyFrom(in1); |
| |
| result_int2 result = reduce_mode(ain1, null); |
| result.mTempIns = new Allocation[]{ain1}; |
| return result; |
| } |
| |
| // ain1 = "uchar in" |
| public result_int2 reduce_mode(Allocation ain1) { |
| return reduce_mode(ain1, null); |
| } |
| |
| // ain1 = "uchar in" |
| public result_int2 reduce_mode(Allocation ain1, Script.LaunchOptions sc) { |
| // check ain1 |
| if (!ain1.getType().getElement().isCompatible(__U8)) { |
| throw new RSRuntimeException("Type mismatch with U8!"); |
| } |
| Allocation aout = Allocation.createSized(mRSLocal, __I32_2, 1); |
| aout.setAutoPadding(true); |
| reduce(mExportReduceIdx_mode, new Allocation[]{ain1}, aout, sc); |
| return new result_int2(aout); |
| } |
| |
| } |
| |