local ease = {}

ease.linear = function(t,a,b,c)
	return b+t/a*(c-b)
end

ease.accelerate = function(t,a,b,c)
	return b+(t/a)^2*(c-b)
end

ease.decelerate = function(t,a,b,c)
	return c-(1-t/a)^2*(c-b)
end

ease.smooth = function(t,a,b,c)
	if t/a < 0.5 then
		return b+(t/a)^2*(c-b)
	elseif t/a >= 0.5 then
		return c-(1-t/a)^2*(c-b)
	end
end

ease.x = function(t,a,b,c)
	return b+t/a*(c-b)
end

ease.x2 = function(t,a,b,c)
	return b+(t/a)^2*(c-b)
end

ease.x3 = function(t,a,b,c)
	return b+(t/a)^3*(c-b)
end

ease.x4 = function(t,a,b,c)
	return b+(t/a)^4*(c-b)
end

ease.x5 = function(t,a,b,c)
	return b+(t/a)^5*(c-b)
end

ease.x6 = function(t,a,b,c)
	return b+(t/a)^6*(c-b)
end

ease.x7 = function(t,a,b,c)
	return b+(t/a)^7*(c-b)
end

ease.x8 = function(t,a,b,c)
	return b+(t/a)^8*(c-b)
end

ease.x9 = function(t,a,b,c)
	return b+(t/a)^9*(c-b)
end

ease.x10 = function(t,a,b,c)
	return b+(t/a)^10*(c-b)
end

ease.rootx = function(t,a,b,c)
	return b+(t/a)^(1/2)*(c-b)
end

ease.root3x = function(t,a,b,c)
	return b+(t/a)^(1/3)*(c-b)
end

ease.root4x = function(t,a,b,c)
	return b+(t/a)^(1/4)*(c-b)
end

ease.root5x = function(t,a,b,c)
	return b+(t/a)^(1/5)*(c-b)
end

ease.root6x = function(t,a,b,c)
	return b+(t/a)^(1/6)*(c-b)
end

ease.root7x = function(t,a,b,c)
	return b+(t/a)^(1/7)*(c-b)
end

ease.root8x = function(t,a,b,c)
	return b+(t/a)^(1/8)*(c-b)
end

ease.root9x = function(t,a,b,c)
	return b+(t/a)^(1/9)*(c-b)
end

ease.root10x = function(t,a,b,c)
	return b+(t/a)^(1/10)*(c-b)
end

ease.sinx = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)*(c-b)
end

ease.sinx2 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^2*(c-b)
end

ease.sinx3 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^3*(c-b)
end

ease.sinx4 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^4*(c-b)
end

ease.sinx5 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^5*(c-b)
end

ease.sinx6 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^6*(c-b)
end

ease.sinx7 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^7*(c-b)
end

ease.sinx8 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^8*(c-b)
end

ease.sinx9 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^9*(c-b)
end

ease.sinx10 = function(t,a,b,c)
	return b+math.sin(t/a*math.pi/2)^10*(c-b)
end

ease.sin2x = function(t,a,b,c)
	return b+math.sin(2*t/a*math.pi/2)*(c-b)
end

ease.sin3x = function(t,a,b,c)
	return b+math.sin(3*t/a*math.pi/2)*(c-b)
end

ease.sin4x = function(t,a,b,c)
	return b+math.sin(4*t/a*math.pi/2)*(c-b)
end

ease.sin5x = function(t,a,b,c)
	return b+math.sin(5*t/a*math.pi/2)*(c-b)
end

ease.sin6x = function(t,a,b,c)
	return b+math.sin(6*t/a*math.pi/2)*(c-b)
end

ease.sin7x = function(t,a,b,c)
	return b+math.sin(7*t/a*math.pi/2)*(c-b)
end

ease.sin8x = function(t,a,b,c)
	return b+math.sin(8*t/a*math.pi/2)*(c-b)
end

ease.sin9x = function(t,a,b,c)
	return b+math.sin(9*t/a*math.pi/2)*(c-b)
end

ease.sin10x = function(t,a,b,c)
	return b+math.sin(10*t/a*math.pi/2)*(c-b)
end

ease.sin11x = function(t,a,b,c)
	return b+math.sin(11*t/a*math.pi/2)*(c-b)
end

ease.sin12x = function(t,a,b,c)
	return b+math.sin(12*t/a*math.pi/2)*(c-b)
end

ease.sin13x = function(t,a,b,c)
	return b+math.sin(13*t/a*math.pi/2)*(c-b)
end

ease.sin14x = function(t,a,b,c)
	return b+math.sin(14*t/a*math.pi/2)*(c-b)
end

ease.sin15x = function(t,a,b,c)
	return b+math.sin(15*t/a*math.pi/2)*(c-b)
end

ease.sin16x = function(t,a,b,c)
	return b+math.sin(16*t/a*math.pi/2)*(c-b)
end
return ease