@dataclass(frozen=True, unsafe_hash=True)
-class GoldschmidtDivParams:
- """parameters for a Goldschmidt division algorithm.
- Use `GoldschmidtDivParams.get` to find a efficient set of parameters.
+class GoldschmidtDivParamsBase:
+ """parameters for a Goldschmidt division algorithm, excluding derived
+ parameters.
"""
io_width: int
iter_count: int
"""the total number of iterations of the division algorithm's loop"""
+
+@dataclass(frozen=True, unsafe_hash=True)
+class GoldschmidtDivParams(GoldschmidtDivParamsBase):
+ """parameters for a Goldschmidt division algorithm.
+ Use `GoldschmidtDivParams.get` to find a efficient set of parameters.
+ """
+
# tuple to be immutable, default so repr() works for debugging even when
# __post_init__ hasn't finished running yet
table: "tuple[FixedPoint, ...]" = field(init=False, default=NotImplemented)