'Return a matrix formed by joining args horizontally (i.e.
by repeated application of row_join).
Examples
>>> from sympy.matrices import Matrix, eye
>>> Matrix.hstack(eye(2), 2*eye(2))
Matrix([
[1, 0, 2, 0],
[0, 1, 0, 2]])'

@classmethod
def hstack(cls, *args):

    if (len(args) == 0):
        return cls._new()
    kls = type(args[0])
    return reduce(kls.row_join, args)
