Class for Gram matrix objects to be used by the learning algorithms. The Gram object contains Gram matrices, so it can be used in multi-kernel learning applications. A full Gram matrix must be symmetric, positive semidefinite and contain corresponding entries along rows and columns. Partial Gram matrices are often used for classification, e.g., one row for each test example and one column for each train example. The Gram object also handles this case.