code: def _w_within_shard(args: Dict[str, Any]):
      
      index = args['index']
      half_turns = args['half_turns']
      axis_half_turns = args['axis_half_turns']
      state = _state_shard(args)
      pm_vect = _pm_vects(args)[index]
      num_shard_qubits = args['num_shard_qubits']
      shard_size = 2 ** num_shard_qubits
  
      reshape_tuple = (2 ** (num_shard_qubits - 1 - index), 2, 2 ** index)
      perm_state = np.reshape(
          np.reshape(state, reshape_tuple)[:, ::-1, :], shard_size)
      cos = np.cos(-0.5 * np.pi * half_turns)
      sin = np.sin(-0.5 * np.pi * half_turns)
  
      cos_axis = np.cos(np.pi * axis_half_turns)
      sin_axis = np.sin(np.pi * axis_half_turns)
  
      new_state = cos * state + 1j * sin * perm_state * (
          cos_axis - 1j * sin_axis * pm_vect)
      np.copyto(state, new_state)
docs: Applies a W gate when the gate acts only within a shard.