library(rpact)
# FutilityBounds = c(0,-6) are on the Z-scale; a value of Z = 0 implies futility
# if the interim estimate is "in the wrong direction" (i.e., HR >= 1 here),
# a value of Z = -6 is essentially the same as Z = -Inf and implies no futility
# boundary for the second interim as per the Gallium design
design <- getDesignGroupSequential(
informationRates = c(113, 245, 370) / 370,
typeOfDesign = "asOF",
sided = 1,
alpha = 0.025,
futilityBounds = c(0, -6),
bindingFutility = FALSE
)

