rydiqule.slicing.slicing.get_slice_num_hybrid

rydiqule.slicing.slicing.get_slice_num_hybrid(n: int, param_stack_shape: Tuple[int, ...], numeric_doppler_shape: Tuple[int, ...], n_slices: int | None = None, debug: bool = False) Tuple[int, Tuple[int, ...]][source]

Estimates memory and determines the number of slices for the analytic solver.

This version is tailored to the memory footprint of the analytic algorithm, which includes large intermediate arrays like the propagator and eigenvector stacks.

Parameters:
  • n (int) – Size of the system basis.

  • param_stack_shape (tuple of int) – Tuple of sizes for the sensor’s parameter axes (e.g., from L0.shape[:-2]).

  • numeric_doppler_shape (tuple of int) – Tuple of sizes for the numeric doppler axes. Pass an empty tuple for the 1D case.

  • n_slices (int, optional) – Manually override the minimum number of slices. If None, it’s determined automatically.

  • debug (bool, optional) – If True, prints detailed memory usage information.

Returns:

  • n_param_slices (int) – Number of slices to use when iterating over the parameter stack.

  • out_sol_shape (tuple of int) – Shape of the final, fully-solved solution array.