Add missing functions and tests for support library.

Missing functions:
rsFrac(float)
rsMatrixLoadRotate(rs_matrix4x4 *, float, float, float, float)
rsMatrixLoadScale(rs_matrix4x4 *, float, float, float)
rsMatrixLoadTranslate(rs_matrix4x4 *, float, float, float)
rsMatrixRotate(rs_matrix4x4 *, float, float, float, float)
rsMatrixScale(rs_matrix4x4 *, float, float, float)
rsMatrixTranslate(rs_matrix4x4 *, float, float, float)
rsMatrixLoadOrtho(rs_matrix4x4 *, float, float, float, float, float, float)
rsMatrixLoadFrustum(rs_matrix4x4 *, float, float, float, float, float, float)
rsMatrixLoadPerspective(rs_matrix4x4 *, float, float, float, float)
rsMatrixInverse(rs_matrix4x4 *)
rsMatrixInverseTranspose(rs_matrix4x4 *)
rsMatrixTranspose(rs_matrix4x4 *)
rsMatrixTranspose(rs_matrix3x3 *)
rsMatrixTranspose(rs_matrix2x2 *)
rsUptimeNanos()
rsGetDt()

Headers tested in this CL:
rs_element.rsh
rs_math.rsh
rs_matrix.rsh
rs_object.rsh
rs_sampler.rsh
rs_time.rsh

Change-Id: I6cb1972a44f66dc7fed8fe3cf0329720d166af81
diff --git a/cpu_ref/rsCpuRuntimeMath.cpp b/cpu_ref/rsCpuRuntimeMath.cpp
index 0aaadd4..66bd576 100644
--- a/cpu_ref/rsCpuRuntimeMath.cpp
+++ b/cpu_ref/rsCpuRuntimeMath.cpp
@@ -159,6 +159,60 @@
 EXPORT_F32_FN_F32(tanf)
 EXPORT_F32_FN_F32(tanhf)
 EXPORT_F32_FN_F32(truncf)
+float __attribute__((overloadable)) rsFrac(float f) {
+    return SC_frac(f);
+}
+void __attribute__((overloadable)) rsMatrixLoadRotate(rs_matrix4x4 *m,
+        float rot, float x, float y, float z) {
+    SC_MatrixLoadRotate((Matrix4x4 *) m, rot, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixLoadScale(rs_matrix4x4 *m,
+        float x, float y, float z) {
+    SC_MatrixLoadScale((Matrix4x4 *) m, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixLoadTranslate(rs_matrix4x4 *m,
+        float x, float y, float z) {
+    SC_MatrixLoadTranslate((Matrix4x4 *) m, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixRotate(rs_matrix4x4 *m, float rot,
+        float x, float y, float z) {
+    SC_MatrixRotate((Matrix4x4 *) m, rot, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixScale(rs_matrix4x4 *m, float x,
+        float y, float z) {
+    SC_MatrixScale((Matrix4x4 *) m, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixTranslate(rs_matrix4x4 *m, float x,
+        float y, float z) {
+    SC_MatrixTranslate((Matrix4x4 *) m, x, y, z);
+}
+void __attribute__((overloadable)) rsMatrixLoadOrtho(rs_matrix4x4 *m, float l,
+        float r, float b, float t, float n, float f) {
+    SC_MatrixLoadOrtho((Matrix4x4 *) m, l, r, b, t, n, f);
+}
+void __attribute__((overloadable)) rsMatrixLoadFrustum(rs_matrix4x4 *m,
+        float l, float r, float b, float t, float n, float f) {
+    SC_MatrixLoadFrustum((Matrix4x4 *) m, l, r, b, t, n, f);
+}
+void __attribute__((overloadable)) rsMatrixLoadPerspective(rs_matrix4x4 *m,
+        float fovy, float aspect, float near, float far) {
+    SC_MatrixLoadPerspective((Matrix4x4 *) m, fovy, aspect, near, far);
+}
+bool __attribute__((overloadable)) rsMatrixInverse(rs_matrix4x4 *m) {
+    return SC_MatrixInverse_4x4((Matrix4x4 *) m);
+}
+bool __attribute__((overloadable)) rsMatrixInverseTranspose(rs_matrix4x4 *m) {
+    return SC_MatrixInverseTranspose_4x4((Matrix4x4 *) m);
+}
+void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix4x4 *m) {
+    SC_MatrixTranspose_4x4((Matrix4x4 *) m);
+}
+void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix3x3 *m) {
+    SC_MatrixTranspose_3x3((Matrix3x3 *) m);
+}
+void __attribute__((overloadable)) rsMatrixTranspose(rs_matrix2x2 *m) {
+    SC_MatrixTranspose_2x2((Matrix2x2 *) m);
+}
 #endif
 
 //////////////////////////////////////////////////////////////////////////////