Add RS math functions for F16.
Bug: 23536224
Bug: 26099914
Change-Id: I8606cb7433b344817970ca7d7995a1b76a88e7af
diff --git a/api/rs_math.spec b/api/rs_math.spec
index abf08f9..070bb4f 100644
--- a/api/rs_math.spec
+++ b/api/rs_math.spec
@@ -48,6 +48,7 @@
</ul>
end:
+# TODO Add f16 versions of these constants.
constant: M_1_PI
value: 0.318309886183790671537767526745028724f
summary: 1 / pi, as a 32 bit float
@@ -176,6 +177,16 @@
See also @native_acos().
end:
+function: acos
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: acosh
version: 9
attrib: const
@@ -190,6 +201,16 @@
See also @native_acosh().
end:
+function: acosh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: acospi
version: 9
attrib: const
@@ -206,6 +227,16 @@
See also @native_acospi().
end:
+function: acospi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: asin
version: 9
attrib: const
@@ -220,6 +251,16 @@
See also @native_asin().
end:
+function: asin
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: asinh
version: 9
attrib: const
@@ -234,6 +275,16 @@
See also @native_asinh().
end:
+function: asinh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: asinpi
version: 9
attrib: const
@@ -250,6 +301,16 @@
See also @native_asinpi().
end:
+function: asinpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: atan
version: 9
attrib: const
@@ -264,6 +325,16 @@
See also @native_atan().
end:
+function: atan
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: atan2
version: 9
attrib: const
@@ -279,6 +350,17 @@
See also @native_atan2().
end:
+function: atan2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
function: atan2pi
version: 9
attrib: const
@@ -296,6 +378,17 @@
See also @native_atan2pi().
end:
+function: atan2pi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
function: atanh
version: 9
attrib: const
@@ -310,6 +403,16 @@
See also @native_atanh().
end:
+function: atanh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: atanpi
version: 9
attrib: const
@@ -326,6 +429,16 @@
See also @native_atanpi().
end:
+function: atanpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: cbrt
version: 9
attrib: const
@@ -340,6 +453,16 @@
See also @native_cbrt().
end:
+function: cbrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: ceil
version: 9
attrib: const
@@ -356,6 +479,16 @@
See also @floor().
end:
+function: ceil
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: clamp
version: 9
attrib: const
@@ -409,6 +542,30 @@
arg: #2 max_value, above(min_value)
end:
+function: clamp
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 value
+arg: #2#1 min_value
+arg: #2#1 max_value, above(min_value)
+test: none
+end:
+
+function: clamp
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 value
+arg: #2 min_value
+arg: #2 max_value, above(min_value)
+test: none
+end:
+
function: clz
version: 9
attrib: const
@@ -423,6 +580,7 @@
For example, <code>clz((char)0x03)</code> returns 6.
end:
+# TODO add f16 copysign
function: copysign
version: 9
attrib: const
@@ -454,6 +612,16 @@
See also @native_cos().
end:
+function: cos
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: cosh
version: 9
attrib: const
@@ -468,6 +636,16 @@
See also @native_cosh().
end:
+function: cosh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: cospi
version: 9
attrib: const
@@ -484,6 +662,16 @@
See also @native_cospi().
end:
+function: cospi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: degrees
version: 9
attrib: const
@@ -496,6 +684,16 @@
Converts from radians to degrees.
end:
+function: degrees
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: erf
version: 9
attrib: const
@@ -508,6 +706,16 @@
Returns the error function.
end:
+function: erf
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: erfc
version: 9
attrib: const
@@ -520,6 +728,16 @@
Returns the complementary error function.
end:
+function: erfc
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: exp
version: 9
attrib: const
@@ -534,6 +752,16 @@
See also @native_exp().
end:
+function: exp
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: exp10
version: 9
attrib: const
@@ -548,6 +776,16 @@
See also @native_exp10().
end:
+function: exp10
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: exp2
version: 9
attrib: const
@@ -562,6 +800,16 @@
See also @native_exp2().
end:
+function: exp2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: expm1
version: 9
attrib: const
@@ -576,6 +824,16 @@
See also @native_expm1().
end:
+function: expm1
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: fabs
version: 9
attrib: const
@@ -590,6 +848,16 @@
For integers, use @abs().
end:
+function: fabs
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: fdim
version: 9
attrib: const
@@ -605,6 +873,17 @@
If a > b, returns (a - b) otherwise returns 0f.
end:
+function: fdim
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
function: floor
version: 9
attrib: const
@@ -621,6 +900,16 @@
See also @ceil().
end:
+function: floor
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: fma
version: 9
attrib: const
@@ -639,6 +928,18 @@
This extra precision is not guaranteed in rs_fp_relaxed mode.
end:
+function: fma
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 multiplicand1
+arg: #2#1 multiplicand2
+arg: #2#1 offset
+test: none
+end:
+
function: fmax
version: 9
attrib: const
@@ -655,6 +956,17 @@
end:
function: fmax
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
+function: fmax
version: 9
attrib: const
w: 2, 3, 4
@@ -664,6 +976,17 @@
arg: #2 b
end:
+function: fmax
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2 b
+test: none
+end:
+
function: fmin
version: 9
attrib: const
@@ -680,6 +1003,17 @@
end:
function: fmin
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
+function: fmin
version: 9
attrib: const
w: 2, 3, 4
@@ -689,6 +1023,17 @@
arg: #2 b
end:
+function: fmin
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2 b
+test: none
+end:
+
function: fmod
version: 9
attrib: const
@@ -706,6 +1051,18 @@
while <code>@remainder(-3.8f, 2.f)</code> returns 0.2f (-3.8f - -2.f * 2.f).
end:
+function: fmod
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
+# TODO Add (both variants) of fract for f16
function: fract
version: 9
w: 1, 2, 3, 4
@@ -733,6 +1090,7 @@
return fract(v, &unused);
end:
+# TODO Add f16 frexp
function: frexp
version: 9
w: 1, 2, 3, 4
@@ -812,6 +1170,18 @@
See also @native_hypot().
end:
+function: hypot
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
+# TODO Add f16 ilogb. Should its return be short?
function: ilogb
version: 9
attrib: const
@@ -847,6 +1217,17 @@
See @frexp() for the reverse operation.
end:
+# TODO Should this parameter be a short?
+function: ldexp
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+ret: half#1
+arg: half#1 mantissa
+arg: int#1 exponent
+test: none
+end:
+
function: ldexp
version: 9
attrib: const
@@ -856,6 +1237,16 @@
arg: int exponent
end:
+function: ldexp
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+ret: half#1
+arg: half#1 mantissa
+arg: int exponent
+test: none
+end:
+
function: lgamma
version: 9
attrib: const
@@ -872,6 +1263,16 @@
end:
function: lgamma
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
+function: lgamma
version: 9
w: 1, 2, 3, 4
t: f32
@@ -882,6 +1283,16 @@
#TODO Temporary until bionic & associated drivers are fixed
end:
+function: lgamma
+version: UNRELEASED
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+arg: int#1* sign_of_gamma
+test: none
+end:
+
function: log
version: 9
attrib: const
@@ -896,6 +1307,16 @@
See also @native_log().
end:
+function: log
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: log10
version: 9
attrib: const
@@ -910,6 +1331,16 @@
See also @native_log10().
end:
+function: log10
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: log1p
version: 9
attrib: const
@@ -924,6 +1355,16 @@
See also @native_log1p().
end:
+function: log1p
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: log2
version: 9
attrib: const
@@ -938,6 +1379,16 @@
See also @native_log2().
end:
+function: log2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: logb
version: 9
attrib: const
@@ -957,6 +1408,16 @@
@ilogb() is similar but returns an integer.
end:
+function: logb
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: mad
version: 9
attrib: const
@@ -975,6 +1436,18 @@
In rs_fp_relaxed mode, mad() may not do the rounding after multiplicaiton.
end:
+function: mad
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 multiplicand1
+arg: #2#1 multiplicand2
+arg: #2#1 offset
+test: none
+end:
+
function: max
version: 9
attrib: const
@@ -989,6 +1462,17 @@
end:
function: max
+version:UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
+function: max
version: 9
attrib: const
w: 2, 3, 4
@@ -999,6 +1483,17 @@
end:
function: max
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2 b
+test: none
+end:
+
+function: max
version: 9 20
attrib: const
w: 1
@@ -1082,6 +1577,17 @@
end:
function: min
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
+function: min
version: 9
attrib: const
w: 2, 3, 4
@@ -1092,6 +1598,17 @@
end:
function: min
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2 b
+test: none
+end:
+
+function: min
version: 9 20
attrib: const
w: 1
@@ -1179,6 +1696,18 @@
end:
function: mix
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 start
+arg: #2#1 stop
+arg: #2#1 fraction
+test: none
+end:
+
+function: mix
version: 9
attrib: const
w: 2, 3, 4
@@ -1189,6 +1718,19 @@
arg: #2 fraction
end:
+function: mix
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 start
+arg: #2#1 stop
+arg: #2 fraction
+test: none
+end:
+
+# TODO Add f16 modf
function: modf
version: 9
w: 1, 2, 3, 4
@@ -1218,6 +1760,17 @@
Returns a NaN value (Not a Number).
end:
+function: nan_half
+version: UNRELEASED
+attrib: const
+t: f16
+ret: #1
+summary: Not a Number
+description:
+ Returns a half-precision floating point NaN value (Not a Number).
+test: none
+end:
+
function: native_acos
version: 21
attrib: const
@@ -1236,6 +1789,17 @@
test: limited(0.0005)
end:
+function: native_acos
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_acosh
version: 21
attrib: const
@@ -1252,6 +1816,16 @@
test: limited(0.0005)
end:
+function: native_acosh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_acospi
version: 21
attrib: const
@@ -1272,6 +1846,17 @@
test: limited(0.0005)
end:
+function: native_acospi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_asin
version: 21
attrib: const
@@ -1290,6 +1875,17 @@
test: limited(0.0005)
end:
+function: native_asin
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_asinh
version: 21
attrib: const
@@ -1306,6 +1902,16 @@
test: limited(0.0005)
end:
+function: native_asinh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_asinpi
version: 21
attrib: const
@@ -1326,6 +1932,17 @@
test: limited(0.0005)
end:
+function: native_asinpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_atan
version: 21
attrib: const
@@ -1342,6 +1959,17 @@
test: limited(0.0005)
end:
+function: native_atan
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_atan2
version: 21
attrib: const
@@ -1359,6 +1987,17 @@
test: limited(0.0005)
end:
+function: native_atan2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
function: native_atan2pi
version: 21
attrib: const
@@ -1379,6 +2018,17 @@
test: limited(0.0005)
end:
+function: native_atan2pi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
function: native_atanh
version: 21
attrib: const
@@ -1395,6 +2045,17 @@
test: limited(0.0005)
end:
+function: native_atanh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_atanpi
version: 21
attrib: const
@@ -1413,6 +2074,17 @@
test: limited(0.0005)
end:
+function: native_atanpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-1,1) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_cbrt
version: 21
attrib: const
@@ -1427,6 +2099,16 @@
See also @cbrt().
end:
+function: native_cbrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_cos
version: 21
attrib: const
@@ -1441,6 +2123,16 @@
See also @cos().
end:
+function: native_cos
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_cosh
version: 21
attrib: const
@@ -1455,6 +2147,16 @@
See also @cosh().
end:
+function: native_cosh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_cospi
version: 21
attrib: const
@@ -1471,6 +2173,16 @@
See also @cospi().
end:
+function: native_cospi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_divide
version: 21
attrib: const
@@ -1484,6 +2196,17 @@
Computes the approximate division of two values.
end:
+function: native_divide
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 left_vector
+arg: #2#1 right_vector
+test: none
+end:
+
function: native_exp
version: 18
attrib: const
@@ -1502,6 +2225,17 @@
test: limited
end:
+function: native_exp
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-86, 86) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_exp10
version: 18
attrib: const
@@ -1520,6 +2254,17 @@
test: limited
end:
+function: native_exp10
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-37, 37) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_exp2
version: 18
attrib: const
@@ -1538,6 +2283,17 @@
test: limited
end:
+function: native_exp2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(-125, 125) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_expm1
version: 21
attrib: const
@@ -1552,6 +2308,16 @@
See also @expm1().
end:
+function: native_expm1
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_hypot
version: 21
attrib: const
@@ -1567,6 +2333,17 @@
See also @hypot().
end:
+function: native_hypot
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 a
+arg: #2#1 b
+test: none
+end:
+
function: native_log
version: 18
attrib: const
@@ -1584,6 +2361,17 @@
test: limited
end:
+function: native_log
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(10e-10,10e10) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_log10
version: 18
attrib: const
@@ -1601,6 +2389,17 @@
test: limited
end:
+function: native_log10
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(10e-10,10e10) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_log1p
version: 21
attrib: const
@@ -1615,6 +2414,16 @@
See also @log1p().
end:
+function: native_log1p
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_log2
version: 18
attrib: const
@@ -1632,6 +2441,17 @@
test: limited
end:
+function: native_log2
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(10e-10,10e10) here similar to the float version?
+arg: #2#1 v
+test: none
+end:
+
function: native_powr
version: 18
attrib: const
@@ -1648,6 +2468,19 @@
test: limited
end:
+function: native_powr
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(0, 256) here similar to the float version?
+arg: #2#1 base
+# TODO Need range(-15,15) here similar to the float version?
+arg: #2#1 exponent
+test: none
+end:
+
function: native_recip
version: 21
attrib: const
@@ -1662,6 +2495,16 @@
See also @half_recip().
end:
+function: native_recip
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_rootn
version: 21
attrib: const
@@ -1677,6 +2520,17 @@
See also @rootn().
end:
+function: native_rootn
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+arg: int#1 n
+test: none
+end:
+
function: native_rsqrt
version: 21
attrib: const
@@ -1691,6 +2545,16 @@
See also @rsqrt(), @half_rsqrt().
end:
+function: native_rsqrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_sin
version: 21
attrib: const
@@ -1705,6 +2569,16 @@
See also @sin().
end:
+function: native_sin
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_sincos
version: 21
w: 1, 2, 3, 4
@@ -1721,6 +2595,16 @@
test: limited(0.0005)
end:
+function: native_sincos
+version: UNRELEASED
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+arg: #2#1* cos
+test: none
+end:
+
function: native_sinh
version: 21
attrib: const
@@ -1735,6 +2619,16 @@
See also @sinh().
end:
+function: native_sinh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_sinpi
version: 21
attrib: const
@@ -1751,6 +2645,16 @@
See also @sinpi().
end:
+function: native_sinpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_sqrt
version: 21
attrib: const
@@ -1765,6 +2669,16 @@
See also @sqrt(), @half_sqrt().
end:
+function: native_sqrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_tan
version: 21
attrib: const
@@ -1777,6 +2691,16 @@
Returns the approximate tangent of an angle measured in radians.
end:
+function: native_tan
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_tanh
version: 21
attrib: const
@@ -1791,6 +2715,16 @@
See also @tanh().
end:
+function: native_tanh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: native_tanpi
version: 21
attrib: const
@@ -1807,6 +2741,17 @@
See also @tanpi().
end:
+function: native_tanpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
+# TODO add f16 nextafter
function: nextafter
version: 9
attrib: const
@@ -1839,6 +2784,17 @@
base to be non-negative.
end:
+function: pow
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 base
+arg: #2#1 exponent
+test: none
+end:
+
function: pown
version: 9
attrib: const
@@ -1855,6 +2811,17 @@
base to be non-negative.
end:
+function: pown
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 base
+arg: int#1 exponent
+test: none
+end:
+
function: powr
version: 9
attrib: const
@@ -1873,6 +2840,18 @@
See also @native_powr().
end:
+function: powr
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+# TODO Need range(0,3000) here similar to the float version?
+arg: #2#1 base
+arg: #2#1 exponent
+test: none
+end:
+
function: radians
version: 9
attrib: const
@@ -1885,6 +2864,16 @@
Converts from degrees to radians.
end:
+function: radians
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: remainder
version: 9
attrib: const
@@ -1903,6 +2892,17 @@
while <code>remainder(-3.8f, 2.f)</code> returns 0.2f (-3.8f - -2.f * 2.f).
end:
+function: remainder
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+test: none
+end:
+
function: remquo
version: 9
w: 1, 2, 3, 4
@@ -1927,6 +2927,17 @@
test: custom
end:
+function: remquo
+version: UNRELEASED
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 numerator
+arg: #2#1 denominator
+arg: int#1* quotient
+test: none
+end:
+
function: rint
version: 9
attrib: const
@@ -1945,6 +2956,16 @@
@round() is similar but rounds away from zero. @trunc() truncates the decimal fraction.
end:
+function: rint
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: rootn
version: 9
attrib: const
@@ -1960,6 +2981,17 @@
See also @native_rootn().
end:
+function: rootn
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+arg: int#1 n
+test: none
+end:
+
function: round
version: 9
attrib: const
@@ -1978,6 +3010,16 @@
@rint() is similar but rounds half values toward even. @trunc() truncates the decimal fraction.
end:
+function: round
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: rsqrt
version: 9
attrib: const
@@ -1992,6 +3034,16 @@
See also @half_rsqrt(), @native_rsqrt().
end:
+function: rsqrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: sign
version: 9
attrib: const
@@ -2008,6 +3060,16 @@
else return 0.f;
end:
+function: sign
+version:UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: sin
version: 9
attrib: const
@@ -2022,6 +3084,16 @@
See also @native_sin().
end:
+function: sin
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: sincos
version: 9
w: 1, 2, 3, 4
@@ -2036,6 +3108,16 @@
See also @native_sincos().
end:
+function: sincos
+version: UNRELEASED
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+arg: #2#1* cos
+test: none
+end:
+
function: sinh
version: 9
attrib: const
@@ -2050,6 +3132,16 @@
See also @native_sinh().
end:
+function: sinh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: sinpi
version: 9
attrib: const
@@ -2066,6 +3158,16 @@
See also @native_sinpi().
end:
+function: sinpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: sqrt
version: 9
attrib: const
@@ -2080,6 +3182,16 @@
See also @half_sqrt(), @native_sqrt().
end:
+function: sqrt
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: step
version: 9
attrib: const
@@ -2098,6 +3210,17 @@
end:
function: step
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 edge
+arg: #2#1 v
+test: none
+end:
+
+function: step
version: 9
attrib: const
w: 2, 3, 4
@@ -2108,6 +3231,17 @@
end:
function: step
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 edge
+arg: #2 v
+test: none
+end:
+
+function: step
version: 21
attrib: const
w: 2, 3, 4
@@ -2117,6 +3251,17 @@
arg: #2#1 v
end:
+function: step
+version: UNRELEASED
+attrib: const
+w: 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2 edge
+arg: #2#1 v
+test: none
+end:
+
function: tan
version: 9
attrib: const
@@ -2131,6 +3276,16 @@
See also @native_tan().
end:
+function: tan
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: tanh
version: 9
attrib: const
@@ -2145,6 +3300,16 @@
See also @native_tanh().
end:
+function: tanh
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: tanpi
version: 9
attrib: const
@@ -2161,6 +3326,16 @@
See also @native_tanpi().
end:
+function: tanpi
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: tgamma
version: 9
attrib: const
@@ -2175,6 +3350,16 @@
See also @lgamma().
end:
+function: tgamma
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: trunc
version: 9
attrib: const
@@ -2191,6 +3376,16 @@
See @rint() and @round() for other rounding options.
end:
+function: trunc
+version: UNRELEASED
+attrib: const
+w: 1, 2, 3, 4
+t: f16
+ret: #2#1
+arg: #2#1 v
+test: none
+end:
+
function: rsClamp
# TODO Why always_inline?
attrib: const, always_inline