code: def estimate_supercell_matrix(spglib_dataset,
                                max_num_atoms=120):
      
  
      spg_num = spglib_dataset['number']
      num_atoms = len(spglib_dataset['std_types'])
      lengths = _get_lattice_parameters(spglib_dataset['std_lattice'])
  
      if spg_num <= 74:  # Triclinic, monoclinic, and orthorhombic
          multi = _get_multiplicity_abc(num_atoms, lengths, max_num_atoms)
      elif spg_num <= 194:  # Tetragonal and hexagonal
          multi = _get_multiplicity_ac(num_atoms, lengths, max_num_atoms)
      else:  # Cubic
          multi = _get_multiplicity_a(num_atoms, lengths, max_num_atoms)
  
      return multi
docs: Estimate supercell matrix from conventional cell
  
      Diagonal supercell matrix is estimated from basis vector lengths
      and maximum number of atoms to be accepted. Supercell is assumed
      to be made from the standardized cell and to be closest to sphere
      under keeping lattice symmetry. For triclinic, monoclinic, and
      orthorhombic cells, multiplicities for a, b, c are not constrained
      by symmetry. For tetragonal and hexagonal cells, multiplicities
      for a and b are chosen to be the same, and for cubic cell, those
      of a, b, c are the same.
  
      Parameters
      ----------
      spglib_dataset : tuple
          Spglib symmetry dataset
      max_num_atoms : int, optional
          Maximum number of atoms in created supercell to be tolerated.
  
      Returns
      -------
      list of three integer numbers
          Multiplicities for a, b, c basis vectors, respectively.