# # Copyright (C) 2015 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. # header: summary: Vector Math Functions description: These functions interpret the input arguments as representation of vectors in n-dimensional space. The precision of the mathematical operations on 32 bit floats is affected by the pragmas # TODO Create an anchor for the section of http://developer.android.com/guide/topics/renderscript/compute.html that details rs_fp_* and link them here. rs_fp_relaxed and rs_fp_full. See <a href='rs_math.html'>Mathematical Constants and Functions</a> for details. Different precision/speed tradeoffs can be achieved by using variants of the common math functions. Functions with a name starting with<ul> <li>native_: May have custom hardware implementations with weaker precision. Additionally, subnormal values may be flushed to zero, rounding towards zero may be used, and NaN and infinity input may not be handled correctly.</li> <li>fast_: May perform internal computations using 16 bit floats. Additionally, subnormal values may be flushed to zero, and rounding towards zero may be used.</li> </ul> end: function: cross version: 9 attrib: const w: 3, 4 t: f32 ret: #2#1 arg: #2#1 left_vector arg: #2#1 right_vector summary: Cross product of two vectors description: Computes the cross product of two vectors. test: vector end: function: cross version: 24 attrib: const w: 3, 4 t: f16 ret: #2#1 arg: #2#1 left_vector arg: #2#1 right_vector test: vector end: function: distance version: 9 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector summary: Distance between two points description: Compute the distance between two points. See also @fast_distance(), @native_distance(). test: vector end: function: distance version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector test: vector end: function: dot version: 9 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector summary: Dot product of two vectors description: Computes the dot product of two vectors. test: vector end: function: dot version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector test: vector end: function: fast_distance version: 17 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector summary: Approximate distance between two points description: Computes the approximate distance between two points. The precision is what would be expected from doing the computation using 16 bit floating point values. See also @distance(), @native_distance(). test: vector end: function: fast_length version: 17 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 v summary: Approximate length of a vector description: Computes the approximate length of a vector. The precision is what would be expected from doing the computation using 16 bit floating point values. See also @length(), @native_length(). test: vector end: function: fast_normalize version: 17 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2#1 arg: #2#1 v summary: Approximate normalized vector description: Approximately normalizes a vector. For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values. The precision is what would be expected from doing the computation using 16 bit floating point values. See also @normalize(), @native_normalize(). test: vector end: function: length version: 9 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 v summary: Length of a vector description: Computes the length of a vector. See also @fast_length(), @native_length(). test: vector end: function: length version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2 arg: #2#1 v test: vector end: function: native_distance version: 21 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector summary: Approximate distance between two points description: Computes the approximate distance between two points. See also @distance(), @fast_distance(). test: vector end: function: native_distance version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2 arg: #2#1 left_vector arg: #2#1 right_vector test: vector end: function: native_length version: 21 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2 arg: #2#1 v summary: Approximate length of a vector description: Compute the approximate length of a vector. See also @length(), @fast_length(). test: vector end: function: native_length version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2 arg: #2#1 v test: vector end: function: native_normalize version: 21 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2#1 arg: #2#1 v summary: Approximately normalize a vector description: Approximately normalizes a vector. See also @normalize(), @fast_normalize(). test: vector end: function: native_normalize version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2#1 arg: #2#1 v test: vector end: function: normalize version: 9 attrib: const w: 1, 2, 3, 4 t: f32 ret: #2#1 arg: #2#1 v summary: Normalize a vector description: Normalize a vector. For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values. See also @fast_normalize(), @native_normalize(). test: vector end: function: normalize version: 24 attrib: const w: 1, 2, 3, 4 t: f16 ret: #2#1 arg: #2#1 v test: vector end: