function LinearValue.__index(M,o)if LinearValue[o]then return LinearValue[o]elseif o=="\109\097\103\110\105\116\117\100\101"then return M:GetMagnitude()else return nil end end LinearValue.__add=operation(function(o,M)return o+M end)LinearValue.__sub=operation(function(o,M)return o-M end)LinearValue.__mul=operation(function(o,M)return o*M end)LinearValue.__div=operation(function(o,M)return o/M end)function LinearValue.__eq(U,o,M)if LinearValue.isLinear(o)and LinearValue.isLinear(M)then if#o._values~=#M._values then return false end for U=1,#o._values,1 do if o._values[U]~=M._values[U]then return false end end return true else return false end end return LinearValue
--[=[
	Returns the magnitude of the linear value.

	@prop magnitude number
	@readonly
	@within LinearValue
]=]
function LinearValue:__index(key)
	if LinearValue[key] then
		return LinearValue[key]
	elseif key == "magnitude" then
		return self:GetMagnitude()
	else
		return nil
	end
end

LinearValue.__add = operation(function(a, b)
	return a + b
end)

LinearValue.__sub = operation(function(a, b)
	return a - b
end)

LinearValue.__mul = operation(function(a, b)
	return a * b
end)

LinearValue.__div = operation(function(a, b)
	return a / b
end)

function LinearValue:__eq(a, b)
	if LinearValue.isLinear(a) and LinearValue.isLinear(b) then
		if #a._values ~= #b._values then
			return false
		end

		for i = 1, #a._values do
			if a._values[i] ~= b._values[i] then
				return false
			end
		end

		return true
	else
		return false
	end
end

return LinearValue
