function LinearValue.__index(n,b)if LinearValue[b]then return LinearValue[b]elseif b=="\109\097\103\110\105\116\117\100\101"then return n:GetMagnitude()else return nil end end LinearValue.__add=operation(function(b,n)return b+n end)LinearValue.__sub=operation(function(b,n)return b-n end)LinearValue.__mul=operation(function(b,n)return b*n end)LinearValue.__div=operation(function(b,n)return b/n end)function LinearValue.__eq(Q,b,n)if LinearValue.isLinear(b)and LinearValue.isLinear(n)then if#b._values~=#n._values then return false end for Q=1,#b._values,1 do if b._values[Q]~=n._values[Q]then return false end end return true else return false end end return 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
