def METHOD_NAME(
    self, random_seed, batch_size, in_dim, out_dim, use_bias, in_dtype, out_dtype
):
    """Generate reference data."""
    np.random.seed(random_seed)
    if "float" in in_dtype:
        a_np = np.random.uniform(size=(batch_size, in_dim)).astype(in_dtype)
        b_np = np.random.uniform(size=(out_dim, in_dim)).astype(in_dtype)
        c_np = np.random.uniform(size=(out_dim,)).astype(out_dtype)
    elif in_dtype == "int8":
        a_np = np.random.randint(low=-128, high=127, size=(batch_size, in_dim)).astype(in_dtype)
        b_np = np.random.randint(low=-128, high=127, size=(out_dim, in_dim)).astype(in_dtype)
        c_np = np.random.randint(low=-128, high=127, size=(out_dim,)).astype(out_dtype)
    else:
        raise ValueError("No method to generate test data for data type '{}'".format(in_dtype))
    matmul = np.dot(a_np.astype(out_dtype), b_np.T.astype(out_dtype))
    if use_bias:
        matmul += c_np
    d_np = np.maximum(matmul, 0)
    return (a_np, b_np, c_np, d_np)