1#[must_use]
3#[inline(always)]
4pub fn expo_in(t: f32) -> f32 {
5 if t <= 0.0 {
6 0.0
7 } else {
8 10.0f32.mul_add(t, -10.0).exp2()
9 }
10}
11
12#[must_use]
14#[inline(always)]
15pub fn expo_out(t: f32) -> f32 {
16 if 1.0 <= t {
17 1.0
18 } else {
19 1.0 - (-10.0 * t).exp2()
20 }
21}
22
23#[must_use]
25#[inline(always)]
26pub fn expo_in_out(t: f32) -> f32 {
27 if t <= 0.0 {
28 0.0
29 } else if 1.0 <= t {
30 1.0
31 } else if t < 0.5 {
32 20.0f32.mul_add(t, -10.0).exp2() / 2.0
33 } else {
34 (2.0 - (-20.0f32).mul_add(t, 10.0).exp2()) / 2.0
35 }
36}