docs: def prepare_injection_directions(self):
          """provide genotypic directions for TPA and selective mirroring,
          with no specific length normalization, to be used in the
          coming iteration.
  
          Details:
          This method is called in the end of `tell`. The result is
          assigned to ``self.pop_injection_directions`` and used in
          `ask_geno`.
  
          TODO: should be rather appended?
  
          """
          # self.pop_injection_directions is supposed to be empty here
          if hasattr(self, 'pop_injection_directions') and self.pop_injection_directions:
              ValueError("Looks like a bug in calling order/logics")
          ary = []
          if (isinstance(self.adapt_sigma, CMAAdaptSigmaTPA) or
                  self.opts['mean_shift_line_samples']):
              ary.append(self.mean - self.mean_old)
              ary.append(self.mean_old - self.mean)  # another copy!
              if ary[-1][0] == 0.0:
                  _print_warning('zero mean shift encountered which ',
                                 'prepare_injection_directions',
                                 'CMAEvolutionStrategy', self.countiter)
          if self.opts['pc_line_samples']: # caveat: before, two samples were used
              ary.append(self.pc.copy())
          if self.sp.lam_mirr and self.opts['CMA_mirrormethod'] == 2:
              if self.pop_sorted is None:
                  _print_warning('pop_sorted attribute not found, mirrors obmitted',
                                 'prepare_injection_directions',
                                 iteration=self.countiter)
              else:
                  ary += self.get_selective_mirrors()
          self.pop_injection_directions = ary
          return ary