original_docstring: 
          Get the cable_contributions for bundles
          
          Recursively project bundles down through gearboxes
          until the bottom gearbox is reached. Feature values is a 
          two-dimensional array and can contain
          several columns. Each column represents a state, and their
          order represents a temporal progression. During cable_contributions
          to the next lowest gearbox, the number of states
          increases by one. 
          
          Return the cable_contributions in terms of basic sensor 
          inputs and actions. 
          
docstring: Get the cable_contributions for bundles
  Recursively project bundles down through gearboxes
  until the bottom gearbox is reached. Feature values is a
  two-dimensional array and can contain
  several columns. Each column represents a state, and their
  order represents a temporal progression. During cable_contributions
  to the next lowest gearbox, the number of states
  increases by one.
  
  Return the cable_contributions in terms of basic sensor
  inputs and actions.
docstring_tokens: Get the cable_contributions for bundles Recursively project bundles down through gearboxes until the bottom gearbox is reached . Feature values is a two - dimensional array and can contain several columns . Each column represents a state and their order represents a temporal progression . During cable_contributions to the next lowest gearbox the number of states increases by one . Return the cable_contributions in terms of basic sensor inputs and actions .
code: def _get_index_projection(self, gearbox_index, bundles):
          """
          Get the cable_contributions for bundles
          
          Recursively project bundles down through gearboxes
          until the bottom gearbox is reached. Feature values is a 
          two-dimensional array and can contain
          several columns. Each column represents a state, and their
          order represents a temporal progression. During cable_contributions
          to the next lowest gearbox, the number of states
          increases by one. 
          
          Return the cable_contributions in terms of basic sensor 
          inputs and actions. 
          """
          if gearbox_index == -1:
              return bundles
          time_steps = bundles.shape[1] 
          cable_contributions = np.zeros((self.gearboxes[gearbox_index].max_cables, 
                                          time_steps * 2))
          for bundle_index in range(bundles.shape[0]):
              for time_index in range(time_steps):
                  if bundles[bundle_index, time_index] > 0:
                      new_contribution = self.gearboxes[
                              gearbox_index].get_index_projection(bundle_index)
                      cable_contributions[:, 2*time_index: 2*time_index + 2] = ( 
                              np.maximum(cable_contributions[:, 
                              2*time_index: 2*time_index + 2], new_contribution))
          cable_contributions = self._get_index_projection(gearbox_index - 1, 
                                                     cable_contributions)
          return cable_contributions
code_tokens: def _get_index_projection ( self , gearbox_index , bundles ) : if gearbox_index == - 1 : return bundles time_steps = bundles . shape [ 1 ] cable_contributions = np . zeros ( ( self . gearboxes [ gearbox_index ] . max_cables , time_steps * 2 ) ) for bundle_index in range ( bundles . shape [ 0 ] ) : for time_index in range ( time_steps ) : if bundles [ bundle_index , time_index ] > 0 : new_contribution = self . gearboxes [ gearbox_index ] . get_index_projection ( bundle_index ) cable_contributions [ : , 2 * time_index : 2 * time_index + 2 ] = ( np . maximum ( cable_contributions [ : , 2 * time_index : 2 * time_index + 2 ] , new_contribution ) ) cable_contributions = self . _get_index_projection ( gearbox_index - 1 , cable_contributions ) return cable_contributions
short_docstring: Get the cable_contributions for bundles
  Recursively project bundles down through gearboxes
  until the bottom gearbox is reached.
short_docstring_tokens: Get the cable_contributions for bundles Recursively project bundles down through gearboxes until the bottom gearbox is reached .
comment: """
          Get the cable_contributions for bundles
          
          Recursively project bundles down through gearboxes
          until the bottom gearbox is reached. Feature values is a 
          two-dimensional array and can contain
          several columns. Each column represents a state, and their
          order represents a temporal progression. During cable_contributions
          to the next lowest gearbox, the number of states
          increases by one. 
          
          Return the cable_contributions in terms of basic sensor 
          inputs and actions. 
          """