The theory of generalized functions