<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def estimate_supercell_matrix(spglib_dataset, max_num_atoms=120):
 """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. """


    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