parameters: (self, pos)
return_statement: return density_cost, density_map.max() / bin_area
docstring: @brief API 
          @param pos cell locations. The array consists of x locations of movable cells, fixed cells, and filler cells, then y locations of them
function: def forward(self, pos):
          """
          @brief API 
          @param pos cell locations. The array consists of x locations of movable cells, fixed cells, and filler cells, then y locations of them 
          """
          density_map = super(DensityOverflow, self).forward(pos)
  
          bin_area = self.bin_size_x * self.bin_size_y
          density_cost = (density_map -
                          self.target_density * bin_area).clamp_(min=0.0).sum()
  
          return density_cost, density_map.max() / bin_area
function_tokens: def forward ( self , pos ) : density_map = super ( DensityOverflow , self ) . forward ( pos ) bin_area = self . bin_size_x * self . bin_size_y density_cost = ( density_map - self . target_density * bin_area ) . clamp_ ( min = 0.0 ) . sum ( ) return density_cost , density_map . max ( ) / bin_area