def check_type_forward(self, in_types):
    type_check.expect((in_types.size() > 0))
    type_check.expect((in_types[0].ndim > type_check.Variable(self.axis, 'axis')))
    ndim = in_types[0].ndim.eval()
    for i in range(1, in_types.size().eval()):
        type_check.expect((in_types[0].dtype == in_types[i].dtype), (in_types[0].ndim == in_types[i].ndim))
        for d in range(0, ndim):
            if (d == self.axis):
                continue
            type_check.expect((in_types[0].shape[d] == in_types[i].shape[d]))
def check_type_forward(self, in_types):
    type_check.expect((in_types.size() > 0))
    type_check.expect((in_types[0].ndim > type_check.Variable(self.axis, 'axis')))
    ndim = in_types[0].ndim.eval()
    for i in range(1, in_types.size().eval()):
        type_check.expect((in_types[0].dtype == in_types[i].dtype), (in_types[0].ndim == in_types[i].ndim))
        for d in range(0, ndim):
            if (d == self.axis):
                continue
            type_check.expect((in_types[0].shape[d] == in_types[i].shape[d]))