#pragma once

namespace blitz {
namespace utils {

/* Sine functions */

float EaseInSine(float x);
float EaseOutSine(float x);
float EaseInOutSine(float x);

/* Cubic functions */

float EaseInCubic(float x);
float EaseOutCubic(float x);
float EaseInOutCubic(float x);

/* Quint functions */

float EaseInQuint(float x);
float EaseOutQuint(float x);
float EaseInOutQuint(float x);

/* Circ functions */

float EaseInCirc(float x);
float EaseOutCirc(float x);
float EaseInOutCirc(float x);

/* Elastic functions */

float EaseInElastic(float x);
float EaseOutElastic(float x);
float EaseInOutElastic(float x);

/* Quad functions */

float EaseInQuad(float x);
float EaseOutQuad(float x);
float EaseInOutQuad(float x);

/* Quart functions */

float EaseInQuart(float x);
float EaseOutQuart(float x);
float EaseInOutQuart(float x);

/* Expo functions */

float EaseInExpo(float x);
float EaseOutExpo(float x);
float EaseInOutExpo(float x);

/* Back functions */

float EaseInBack(float x);
float EaseOutBack(float x);
float EaseInOutBack(float x);

/* Bounce functions */

float EaseInBounce(float x);
float EaseOutBounce(float x);
float EaseInOutBounce(float x);

}  // namespace utils
}  // namespace blitz
