etc/octaspire_easing_amalgamated.c
double octaspire_easing_in_out_back(double t, double const b, double const c, double const d, double s)
{
    t /= (d * 0.5);
    s *= 1.525;

    if (t < 1)
    {
        return c/2*(t*t*((s+1)*t - s)) + b;
    }

    t -= 2;
    return c/2*(t*t*((s+1)*t + s) + 2) + b;
}
// back easing in/out - backtracking slightly, then reversing direction and moving to target,
// then overshooting target, reversing, and finally coming back to target
back easing in/out - backtracking slightly, then reversing direction and moving to target,
then overshooting target, reversing, and finally coming back to target
back easing in / out - backtracking slightly then reversing direction and moving to target then overshooting target reversing and finally coming back to target
double octaspire_easing_in_out_back(double t, double const b, double const c, double const d, double s)
{
    t /= (d * 0.5);
    s *= 1.525;
    if (t < 1)
    {
        return c/2*(t*t*((s+1)*t - s)) + b;
    }
    t -= 2;
    return c/2*(t*t*((s+1)*t + s) + 2) + b;
}
double octaspire_easing_in_out_back ( double t , double const b , double const c , double const d , double s ) { t /= ( d * 0.5 ) ; s *= 1.525 ; if ( t < 1 ) { return c / 2 * ( t * t * ( ( s + 1 ) * t - s ) ) + b ; } t -= 2 ; return c / 2 * ( t * t * ( ( s + 1 ) * t + s ) + 2 ) + b ; }
back easing in/out - backtracking slightly, then reversing direction and moving to target,
then overshooting target, reversing, and finally coming back to target
back easing in / out - backtracking slightly then reversing direction and moving to target then overshooting target reversing and finally coming back to target