parameters: (self, init_pos, pos)
return_statement: return AbacusLegalizeFunction.forward(
              init_pos,
              pos,
              node_size_x=self.node_size_x,
              node_size_y=self.node_size_y,
              node_weights=self.node_weights,
              flat_region_boxes=self.flat_region_boxes,
              flat_region_boxes_start=self.flat_region_boxes_start,
              node2fence_region_map=self.node2fence_region_map,
              xl=self.xl,
              yl=self.yl,
              xh=self.xh,
              yh=self.yh,
              site_width=self.site_width,
              row_height=self.row_height,
              num_bins_x=self.num_bins_x,
              num_bins_y=self.num_bins_y,
              num_movable_nodes=self.num_movable_nodes,
              num_terminal_NIs=self.num_terminal_NIs,
              num_filler_nodes=self.num_filler_nodes,
          )
docstring: @param init_pos the reference position for displacement minization
          @param pos current roughly legal position
function: def __call__(self, init_pos, pos):
          """ 
          @param init_pos the reference position for displacement minization
          @param pos current roughly legal position
          """
          return AbacusLegalizeFunction.forward(
              init_pos,
              pos,
              node_size_x=self.node_size_x,
              node_size_y=self.node_size_y,
              node_weights=self.node_weights,
              flat_region_boxes=self.flat_region_boxes,
              flat_region_boxes_start=self.flat_region_boxes_start,
              node2fence_region_map=self.node2fence_region_map,
              xl=self.xl,
              yl=self.yl,
              xh=self.xh,
              yh=self.yh,
              site_width=self.site_width,
              row_height=self.row_height,
              num_bins_x=self.num_bins_x,
              num_bins_y=self.num_bins_y,
              num_movable_nodes=self.num_movable_nodes,
              num_terminal_NIs=self.num_terminal_NIs,
              num_filler_nodes=self.num_filler_nodes,
          )
function_tokens: def __call__ ( self , init_pos , pos ) : return AbacusLegalizeFunction . forward ( init_pos , pos , node_size_x = self . node_size_x , node_size_y = self . node_size_y , node_weights = self . node_weights , flat_region_boxes = self . flat_region_boxes , flat_region_boxes_start = self . flat_region_boxes_start , node2fence_region_map = self . node2fence_region_map , xl = self . xl , yl = self . yl , xh = self . xh , yh = self . yh , site_width = self . site_width , row_height = self . row_height , num_bins_x = self . num_bins_x , num_bins_y = self . num_bins_y , num_movable_nodes = self . num_movable_nodes , num_terminal_NIs = self . num_terminal_NIs , num_filler_nodes = self . num_filler_nodes , )