def METHOD_NAME(sizes, d_mins):
  for na in sizes:
    xs = random_xray_structure(
      space_group_symbol='hall: -P 2ybc',
      n_scatterers=na,
      proportion_of_elements={'C':5, 'O':2, 'N':1},
      use_u_iso=False,
      use_u_aniso=True,
    )
    for d_min in d_mins:
      mi = xs.build_miller_set(anomalous_flag=False, d_min=d_min)
      ma = mi.structure_factors_from_scatterers(xs, algorithm='direct').f_calc()
      fo_sq = ma.norm().customized_copy(sigmas=flex.double(ma.size(), 1.))
      xs.shake_sites_in_place(rms_difference=0.1)
      xs.shake_adp()
      for sc in xs.scatterers():
        sc.flags.set_use_u_iso(False).set_use_u_aniso(True)
        sc.flags.set_grad_site(True).set_grad_u_aniso(True)
      connectivity_table = smtbx.utils.connectivity_table(xs)
      reparametrisation = constraints.reparametrisation(
        structure=xs,
        constraints=[],
        connectivity_table=connectivity_table)
      yield (fo_sq.as_xray_observations(), reparametrisation)