You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2018/03/13 19:04:34 UTC

[GitHub] mlaz closed pull request #822: Adding int/float easing library

mlaz closed pull request #822: Adding int/float easing library
URL: https://github.com/apache/mynewt-core/pull/822
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/util/easing/include/easing/easing.h b/util/easing/include/easing/easing.h
new file mode 100644
index 000000000..bf41c741b
--- /dev/null
+++ b/util/easing/include/easing/easing.h
@@ -0,0 +1,120 @@
+#include <stdint.h>
+
+#ifndef _UTIL_EASING_H_
+#define _UTIL_EASING_H_
+
+typedef float (*easing_f_func_t)(float step, float max_steps, float max_val);
+typedef int32_t (*easing_int_func_t)(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Float Functions */
+
+/* Custom */
+float exponential_custom_f_io(float step, float max_steps, float max_val);
+float exp_sin_custom_f_io(float step, float max_steps, float max_val);
+float sine_custom_f_io(float step, float max_steps, float max_val);
+
+/* Linear */
+float linear_f_io(float step, float max_steps, float max_val);
+
+/* Exponential */
+float exponential_f_in(float step, float max_steps, float max_val);
+float exponential_f_out(float step, float max_steps, float max_val);
+float exponential_f_io(float step, float max_steps, float max_val);
+
+/* Quadratic */
+float quadratic_f_in(float step, float max_steps, float max_val);
+float quadratic_f_out(float step, float max_steps, float max_val);
+float quadratic_f_io(float step, float max_steps, float max_val);
+
+/* Cubic */
+float cubic_f_in(float step, float max_steps, float max_val);
+float cubic_f_out(float step, float max_steps, float max_val);
+float cubic_f_int_io(float step, float max_steps, float max_val);
+
+/* Quartic */
+float quartic_f_in(float step, float max_steps, float max_val);
+float quartic_f_out(float step, float max_steps, float max_val);
+float quartic_f_io(float step, float max_steps, float max_val);
+
+/* Quintic */
+float quintic_f_in(float step, float max_steps, float max_val);
+float quintic_f_out(float step, float max_steps, float max_val);
+float quintic_f_io(float step, float max_steps, float max_val);
+
+/* Circular */
+float circular_f_in(float step, float max_steps, float max_val);
+float circular_f_out(float step, float max_steps, float max_val);
+float circular_f_io(float step, float max_steps, float max_val);
+
+/* Sine */
+float sine_f_in(float step, float max_steps, float max_val);
+float sine_f_out(float step, float max_steps, float max_val);
+float sine_f_io(float step, float max_steps, float max_val);
+
+/* Bounce */
+float bounce_f_in(float step, float max_steps, float max_val);
+float bounce_f_out(float step, float max_steps, float max_val);
+float bounce_f_io(float step, float max_steps, float max_val);
+
+/* Back */
+float back_f_in(float step, float max_steps, float max_val);
+float back_f_out(float step, float max_steps, float max_val);
+float back_f_io(float step, float max_steps, float max_val);
+
+
+/* Integer Functions */
+
+/* Custom */
+int32_t exponential_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t exp_sin_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t sine_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Linear */
+int32_t linear_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Exponential */
+int32_t exponential_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t exponential_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t exponential_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Quadratic */
+int32_t quadratic_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quadratic_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quadratic_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Cubic */
+int32_t cubic_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t cubic_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t cubic_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Quartic */
+int32_t quartic_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quartic_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quartic_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Qintic */
+int32_t quintic_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quintic_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t quintic_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Circular */
+int32_t circular_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t circular_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t circular_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Sine */
+int32_t sine_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t sine_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t sine_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Bounce */
+int32_t bounce_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t bounce_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t bounce_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+/* Back */
+int32_t back_int_in(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t back_int_out(int32_t step, int32_t max_steps, int32_t max_val);
+int32_t back_int_io(int32_t step, int32_t max_steps, int32_t max_val);
+
+#endif /* _UTIL_EASING_H_ */
diff --git a/util/easing/pkg.yml b/util/easing/pkg.yml
new file mode 100644
index 000000000..f442b3637
--- /dev/null
+++ b/util/easing/pkg.yml
@@ -0,0 +1,28 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+pkg.name: util/easing
+pkg.description: Library containing easing functions
+pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/"
+pkg.keywords:
+    - easing
+
+pkg.lflags:
+    - "-lm"
diff --git a/util/easing/src/easing.c b/util/easing/src/easing.c
new file mode 100644
index 000000000..7d0d8b23f
--- /dev/null
+++ b/util/easing/src/easing.c
@@ -0,0 +1,693 @@
+#include <math.h>
+#include "easing/easing.h"
+
+#define HALF_PI 1.57079632679f   /* PI/2 */
+#define ONE_DIV_E 0.36787944117f /* 1/e */
+#define PI_TIMES2 6.28318530718f  /* 2PI */
+
+/* Custom */
+static inline float exponential_custom_io(float step, float max_steps, float max_val)
+{
+    float R = max_steps * log10(2) / log10(max_val);
+    return pow(2, (step / R)) - 1;
+}
+
+static inline float exp_sin_custom_io(float step, float max_steps, float max_val)
+{
+    float mplier = max_val / 2.35040238729f;
+    float pi_d_maxs = M_PI / max_steps;
+    step += max_steps;
+    return ( exp( sin((step * pi_d_maxs) + M_PI_2)) - ONE_DIV_E ) * mplier;
+}
+
+static inline float sine_custom_io(float step, float max_steps, float max_val)
+{
+    return max_val * cos((PI_TIMES2 * step/max_steps) + M_PI) + max_val;
+}
+
+/* Linear */
+static inline float linear_io(float step, float max_steps, float max_val)
+{
+	return step * max_val / max_steps;
+}
+
+/* Exponential */
+static inline float exponential_in(float step, float max_steps, float max_val)
+{
+    return (step == 0) ?
+        0 :
+        pow(max_val, (float)step/max_steps);
+}
+
+static inline float exponential_out(float step, float max_steps, float max_val)
+{
+	return (step == max_steps) ?
+        max_val :
+        max_val - pow(max_val, 1.0 - (float)step/max_steps);
+}
+
+static inline float exponential_io(float step, float max_steps, float max_val)
+{
+	float ratio = ( (float)step / (max_steps / 2.0) );
+
+	if (step == 0)
+		return 0;
+
+	if (step == max_steps)
+		return max_val;
+
+	if (ratio < 1)
+        return powf((float)max_val/2.0, (float)step/(max_steps/2.0));
+
+	return max_val/2.0 + max_val/2.0 -
+        pow(max_val/2.0, 1.0 - ((float)step - (max_steps / 2)) /
+            (max_steps / 2) );
+}
+
+/* Quadratic */
+static inline float quadratic_in(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	return max_val * pow(ratio, 2);
+}
+
+static inline float quadratic_out(float step, float max_steps, float max_val)
+{
+    float ratio = step / max_steps;
+
+	return -max_val * ratio * (ratio - 2.0);
+}
+
+static inline float quadratic_io(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps / 2.0);
+
+	if (ratio < 1)
+		return max_val / 2.0 * pow(ratio, 2);
+
+    ratio = (step - (max_steps/2.0)) / (max_steps/2.0);
+    return (max_val / 2.0) - (max_val / 2.0) * ratio * (ratio - 2.0);
+}
+
+/* Cubic */
+static inline float cubic_in(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	return max_val * pow(ratio, 3);
+}
+
+static inline float cubic_out(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps - 1.0);
+
+	return max_val * (pow(ratio, 3) + 1);
+}
+
+static inline float cubic_io(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps / 2.0);
+
+	if (ratio < 1)
+		return max_val / 2 * pow(ratio, 3);
+
+	return max_val / 2 * (pow(ratio - 2, 3) + 2);
+}
+
+/* Quartic */
+static inline float quartic_in(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	return max_val * pow(ratio, 4);
+}
+
+static inline float quartic_out(float step, float max_steps, float max_val)
+{
+	float ratio = (step / max_steps) - 1.0;
+
+	return max_val + max_val * pow(ratio, 5);
+}
+
+static inline float quartic_io(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps / 2.0);
+
+	if (ratio < 1)
+		return max_val / 2 * pow(ratio, 4);
+
+	return max_val + max_val / 2 * pow(ratio -2, 5);
+}
+
+/* Quintic */
+static inline float quintic_in(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	return max_val * pow(ratio, 5);
+}
+
+static inline float quintic_out(float step, float max_steps, float max_val)
+{
+	float ratio = (step / max_steps) - 1.0;
+
+	return max_val + max_val * pow(ratio, 5);
+}
+
+static inline float quintic_io(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps / 2.0);
+
+	if (ratio < 1)
+		return max_val / 2 * pow(ratio, 5);
+
+    ratio -= 2;
+	return max_val + max_val / 2 * pow(ratio, 5);
+}
+
+/* Circular */
+static inline float circular_in(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	return - max_val * (sqrt(1 - pow(ratio, 2) ) - 1);
+}
+
+static inline float circular_out(float step, float max_steps, float max_val)
+{
+	float ratio = (step - max_steps) / (max_steps - 1.0);
+	return max_val * sqrt(1 - pow(ratio, 2));
+}
+
+static inline float circular_io(float step, float max_steps, float max_val)
+{
+	float ratio = step / (max_steps / 2.0);
+
+	if (ratio < 1)
+		return - max_val / 2 * (sqrt(1 - pow(ratio, 2)) - 1);
+
+	return max_val / 2 * (sqrt(1 - pow(ratio - 2, 2)) + 1);
+}
+
+/* Sine */
+static inline float sine_in(float step, float max_steps, float max_val)
+{
+	return -max_val * cos((float)step / max_steps * M_PI_2) + max_val;
+}
+
+static inline float sine_out(float step, float max_steps, float max_val)
+{
+	return max_val * sin((((float)step / max_steps)) * M_PI_2);
+}
+
+static inline float sine_io(float step, float max_steps, float max_val)
+{
+	return -max_val / 2 * (cos(M_PI * step / max_steps) - 1);
+}
+
+/* Bounce */
+static inline float bounce_out(float step, float max_steps, float max_val)
+{
+	float ratio = step / max_steps;
+
+	if (ratio < (1 / 2.75)) {
+		return max_val * (7.5625 * ratio * ratio);
+	}
+
+    if (ratio < (2 / 2.75)) {
+        ratio -= 1.5 / 2.75;
+		return max_val * (7.5625 * ratio * ratio + .75);
+    }
+
+    if (ratio < (2.5 / 2.75)) {
+        ratio -= 2.25 / 2.75;
+		return max_val * (7.5625 * ratio * ratio + .9375);
+	}
+
+    ratio -= 2.625 / 2.75;
+    return max_val * (7.5625 * ratio * ratio + .984375);
+}
+
+static inline float bounce_in(float step, float max_steps, float max_val)
+{
+	return max_val - bounce_out(max_steps - step, max_steps, max_val);
+}
+
+static inline float bounce_io(float step, float max_steps, float max_val)
+{
+	if (step < max_steps / 2)
+		return bounce_in(step * 2, max_steps, max_val) * 0.5;
+	else
+		return bounce_out(step * 2 - max_steps, max_steps, max_val) *
+            0.5 + max_val * 0.5;
+}
+
+/* Back */
+static inline float back_in(float step, float max_steps, float max_val)
+{
+	float s = 1.70158f;
+    float ratio = step / max_steps;
+	return max_val * ratio * ratio * ((s + 1) * ratio - s);
+
+}
+
+static inline float back_out(float step, float max_steps, float max_val)
+{
+	float s = 1.70158f;
+	float ratio = (step / max_steps) - 1;
+	return max_val * (ratio * ratio * ((s + 1) * ratio + s) + 1);
+}
+
+static inline float back_io(float step, float max_steps, float max_val)
+{
+    float s = 1.70158f * 1.525;
+    float ratio = step / (max_steps / 2);
+
+	if (ratio < 1)
+        return max_val / 2 * (ratio * ratio * ((s + 1) * ratio - s));
+
+	ratio -= 2;
+	return max_val / 2 * (ratio * ratio * ((s + 1) * ratio + s) + 2);
+}
+
+/* Float Functions */
+
+/* Custom, used for breathing */
+float
+exponential_custom_f_io(float step, float max_steps, float max_val)
+{
+    return exponential_custom_io(step, max_steps, max_val);
+}
+float
+exp_sin_custom_f_io(float step, float max_steps, float max_val)
+{
+    return exp_sin_custom_io(step, max_steps, max_val);
+}
+float
+sine_custom_f_io(float step, float max_steps, float max_val)
+{
+    return sine_custom_io(step, max_steps, max_val);
+}
+
+/* Linear */
+float
+linear_f_io(float step, float max_steps, float max_val)
+{
+    return linear_io(step, max_steps, max_val);
+}
+
+/* Exponential */
+float
+exponential_f_in(float step, float max_steps, float max_val)
+{
+    return exponential_in(step, max_steps, max_val);
+}
+float
+exponential_f_out(float step, float max_steps, float max_val)
+{
+    return exponential_out(step, max_steps, max_val);
+}
+float
+exponential_f_io(float step, float max_steps, float max_val)
+{
+    return exponential_io(step, max_steps, max_val);
+}
+
+/* Quadratic */
+float
+quadratic_f_in(float step, float max_steps, float max_val)
+{
+    return quadratic_in(step, max_steps, max_val);
+}
+float
+quadratic_f_out(float step, float max_steps, float max_val)
+{
+    return quadratic_out(step, max_steps, max_val);
+}
+float
+quadratic_f_io(float step, float max_steps, float max_val)
+{
+    return quadratic_io(step, max_steps, max_val);
+}
+
+/* Cubic */
+float
+cubic_f_in(float step, float max_steps, float max_val)
+{
+    return cubic_in(step, max_steps, max_val);
+}
+float
+cubic_f_out(float step, float max_steps, float max_val)
+{
+    return cubic_out(step, max_steps, max_val);
+}
+float
+cubic_f_int_io(float step, float max_steps, float max_val)
+{
+    return cubic_io(step, max_steps, max_val);
+}
+
+/* Quartic */
+float
+quartic_f_in(float step, float max_steps, float max_val)
+{
+    return quartic_in(step, max_steps, max_val);
+}
+float
+quartic_f_out(float step, float max_steps, float max_val)
+{
+    return quartic_out(step,
+                       max_steps,
+                       max_val);
+}
+float
+quartic_f_io(float step, float max_steps, float max_val)
+{
+    return quartic_io(step, max_steps, max_val);
+}
+
+/* Quintic */
+float
+quintic_f_in(float step, float max_steps, float max_val)
+{
+    return quintic_in(step, max_steps, max_val);
+}
+float
+quintic_f_out(float step, float max_steps, float max_val)
+{
+    return quintic_out(step, max_steps, max_val);
+}
+float
+quintic_f_io(float step, float max_steps, float max_val)
+{
+    return quintic_io(step, max_steps, max_val);
+}
+
+/* Circular */
+float
+circular_f_in(float step, float max_steps, float max_val)
+{
+    return circular_in(step, max_steps, max_val);
+}
+float
+circular_f_out(float step, float max_steps, float max_val)
+{
+    return circular_out(step, max_steps, max_val);
+}
+float
+circular_f_io(float step, float max_steps, float max_val)
+{
+    return circular_io(step, max_steps, max_val);
+}
+
+/* Sine */
+float
+sine_f_in(float step, float max_steps, float max_val)
+{
+    return sine_in(step, max_steps, max_val);
+}
+float
+sine_f_out(float step, float max_steps, float max_val)
+{
+    return sine_out(step, max_steps, max_val);
+}
+float
+sine_f_io(float step, float max_steps, float max_val)
+{
+    return sine_io(step, max_steps, max_val);
+}
+
+/* Bounce */
+float
+bounce_f_in(float step, float max_steps, float max_val)
+{
+    return bounce_in(step, max_steps, max_val);
+}
+float
+bounce_f_out(float step, float max_steps, float max_val)
+{
+    return bounce_out(step, max_steps, max_val);
+}
+float
+bounce_f_io(float step, float max_steps, float max_val)
+{
+    return bounce_io(step, max_steps, max_val);
+}
+
+/* Back */
+float
+back_f_in(float step, float max_steps, float max_val)
+{
+    return back_in(step, max_steps, max_val);
+}
+float
+back_f_out(float step, float max_steps, float max_val)
+{
+    return back_out(step, max_steps, max_val);
+}
+float
+back_f_io(float step, float max_steps, float max_val)
+{
+    return back_io(step, max_steps, max_val);
+}
+
+/* Integer Functions */
+/* Custom */
+int32_t
+exponential_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) exponential_custom_io((float) step,
+                                           (float) max_steps,
+                                           (float) max_val);
+}
+int32_t
+exp_sin_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) exp_sin_custom_io((float) step,
+                                       (float) max_steps,
+                                       (float) max_val);
+}
+int32_t
+sine_custom_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) sine_custom_io((float) step,
+                                    (float) max_steps,
+                                    (float) max_val);
+}
+
+/* Linear */
+int32_t
+linear_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) linear_io((float) step,
+                               (float) max_steps,
+                               (float) max_val);
+}
+
+/* Exponential */
+int32_t
+exponential_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) exponential_in((float) step,
+                                    (float) max_steps,
+                                    (float) max_val);
+}
+int32_t
+exponential_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) exponential_out((float) step,
+                                     (float) max_steps,
+                                     (float) max_val);
+}
+int32_t
+exponential_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) exponential_io((float) step,
+                                    (float) max_steps,
+                                    (float) max_val);
+}
+
+/* Quadratic */
+int32_t
+quadratic_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quadratic_in((float) step,
+                                  (float) max_steps,
+                                  (float) max_val);
+}
+int32_t
+quadratic_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quadratic_out((float) step,
+                                   (float) max_steps,
+                                   (float) max_val);
+}
+int32_t
+quadratic_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quadratic_io((float) step,
+                                  (float) max_steps,
+                                  (float) max_val);
+}
+
+/* Cubic */
+int32_t
+cubic_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) cubic_in((float) step,
+                              (float) max_steps,
+                              (float) max_val);
+}
+int32_t
+cubic_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) cubic_out((float) step,
+                               (float) max_steps,
+                               (float) max_val);
+}
+int32_t
+cubic_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) cubic_io((float) step,
+                              (float) max_steps,
+                              (float) max_val);
+}
+
+/* Quartic */
+int32_t
+quartic_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quartic_in((float) step,
+                                (float) max_steps,
+                                (float) max_val);
+}
+int32_t
+quartic_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quartic_out((float) step,
+                                 (float) max_steps,
+                                 (float) max_val);
+}
+int32_t
+quartic_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quartic_io((float) step,
+                                (float) max_steps,
+                                (float) max_val);
+}
+
+/* Quintic */
+int32_t
+quintic_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quintic_in((float) step,
+                                (float) max_steps,
+                                (float) max_val);
+}
+int32_t
+quintic_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quintic_out((float) step,
+                                 (float) max_steps,
+                                 (float) max_val);
+}
+int32_t
+quintic_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) quintic_io((float) step,
+                                (float) max_steps,
+                                (float) max_val);
+}
+
+/* Circular */
+int32_t
+circular_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) circular_in((float) step,
+                                 (float) max_steps,
+                                 (float) max_val);
+}
+int32_t
+circular_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) circular_out((float) step,
+                                  (float) max_steps,
+                                  (float) max_val);
+}
+int32_t
+circular_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) circular_io((float) step,
+                                 (float) max_steps,
+                                 (float) max_val);
+}
+
+/* Sine */
+int32_t
+sine_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) sine_in((float) step,
+                             (float) max_steps,
+                             (float) max_val);
+}
+int32_t
+sine_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) sine_out((float) step,
+                              (float) max_steps,
+                              (float) max_val);
+}
+int32_t
+sine_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) sine_io((float) step,
+                             (float) max_steps,
+                             (float) max_val);
+}
+
+/* Bounce */
+int32_t
+bounce_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) bounce_in((float) step,
+                               (float) max_steps,
+                               (float) max_val);
+}
+int32_t
+bounce_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) bounce_out((float) step,
+                                (float) max_steps,
+                                (float) max_val);
+}
+int32_t
+bounce_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) bounce_io((float) step,
+                               (float) max_steps,
+                               (float) max_val);
+}
+
+/* Back */
+int32_t
+back_int_in(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) back_in((float) step,
+                             (float) max_steps,
+                             (float) max_val);
+}
+int32_t
+back_int_out(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) back_out((float) step,
+                              (float) max_steps,
+                              (float) max_val);
+}
+int32_t
+back_int_io(int32_t step, int32_t max_steps, int32_t max_val)
+{
+    return (int32_t) back_io((float) step,
+                             (float) max_steps,
+                             (float) max_val);
+}


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services