def archimedes(mass_in_air,
                 mass_in_liquid,
                 density_material_theoretical,
                 density_liquid):
    """
    uses results from Archimedes measurements, including absolute uncertainty
    values, to provide part densities and percentage uncertainty. 
    
    Each variable must be given as a tuple in the form (value, uncertainty).
    
        Keyword Arguments:
            - mass_in_air:  measured mass of the part in air (mass, absolute uncertainty)
            - mass_in_liquid:  measured mass of the part when suspended in liquid (mass, absolute uncertainty)
            - density_material_theoretical: theoretical density of the material (density, absolute uncertainty)
            - density_liquid: density of the liquid used (density, absolute uncertainty)
        
        Returns:
            - (measured density of material / theoretical density of material), percentage error of density
        Formulae:
            
        
                mass_displaced_liquid = (mass_in_air[0]-mass_in_liquid[0],mass_in_air[1]+mass_in_liquid[1])
                
                density_material = density_liquid[0] * mass_in_air[0] / mass_displaced_liquid[0]
                
                Percentage error is calculated using sum in quadrature method.
        
    
    """
    mass_displaced_liquid = (mass_in_air[0]-mass_in_liquid[0],mass_in_air[1]+mass_in_liquid[1])
    density_material = density_liquid[0] * mass_in_air[0] / mass_displaced_liquid[0]
    
    measurements =   [density_liquid,
                      mass_in_air,
                      mass_displaced_liquid,
                      density_material_theoretical]
    
    pc_error_density = (sum([(x[1]/x[0])**2 for x in measurements]))**0.5
    
    return density_material / density_material_theoretical[0], pc_error_density