def make_count(
input_domain: VectorDomain[AtomDomain[TIA]],
input_metric: SymmetricDistance
):
output_domain = AtomDomain.default(TO)
def function(arg: Vec[TIA]) -> TO: size = arg.len() try: return TO.exact_int_cast(size) except FailedCast:
return TO.MAX_CONSECUTIVE
output_metric = AbsoluteDistance(TO)
stability_map = StabilityMap.new_from_constant(TO.one())
return Transformation(
input_domain, output_domain, function,
input_metric, output_metric, stability_map)