def METHOD_NAME(
    X, axes: List[int], weight: FLOAT[...], bias: FLOAT[...], eps: float
):
    mean = op.ReduceMean(X, axes=axes)
    D = X - mean  # op.Sub(X, mean)
    DD = D * D  # op.Mul(D, D)
    var = op.ReduceMean(DD, axes=axes)
    vareps = var + eps  # op.Add(var, eps)
    stddev = op.Sqrt(vareps)
    invstddev = op.Reciprocal(stddev)
    normalized = D * invstddev  # op.Mul(D, invstddev)
    normalizedw = op.CastLike(
        normalized, weight
    )  # Type issue if missing this Op
    normalizedscaled = normalizedw * weight  # op.Mul(normalized, weight)
    return normalizedscaled + bias