Provides methods for the calculation of the cartesian producted between two or more enumerable objects. Includes grid search optimization methods. It can also be easily and conveniently mixed in into any enumerable class.