code: def _dipole_forwards(*, sensors, fwd_data, whitener, rr, n_jobs=None):
      """Compute the forward solution and do other nice stuff."""
      B = _compute_forwards_meeg(
          rr,
          sensors=sensors,
          fwd_data=fwd_data,
          n_jobs=n_jobs,
          silent=True,
      )
      B = np.concatenate(list(B.values()), axis=1)
      assert np.isfinite(B).all()
      B_orig = B.copy()
  
      # Apply projection and whiten (cov has projections already)
      _, _, dgemm = _get_ddot_dgemv_dgemm()
      B = dgemm(1.0, B, whitener.T)
  
      # column normalization doesn't affect our fitting, so skip for now
      # S = np.sum(B * B, axis=1)  # across channels
      # scales = np.repeat(3. / np.sqrt(np.sum(np.reshape(S, (len(rr), 3)),
      #                                        axis=1)), 3)
      # B *= scales[:, np.newaxis]
      scales = np.ones(3)
      return B, B_orig, scales
  
imports: import functools
  import re
  from copy import deepcopy
  from functools import partial
  import numpy
  from scipy.linalg import eigh
  from scipy.optimize import fmin_cobyla
  from ._fiff.constants import FIFF
  from ._fiff.pick import pick_types
  from ._fiff.proj import _needs_eeg_average_ref_proj, make_projector
  from ._freesurfer import _get_aseg, head_to_mni, head_to_mri, read_freesurfer_lut
  from .bem import _bem_find_surface, _bem_surf_name, _fit_sphere
  from .cov import _ensure_cov, compute_whitener
  from .evoked import _aspect_rev, _read_evoked, _write_evokeds
  from .fixes import _safe_svd, pinvh
  from .forward._compute_forward import _compute_forwards_meeg, _prep_field_computation
  from .forward._make_forward import _get_trans, _prep_eeg_channels, _prep_meg_channels, _setup_bem
  from .parallel import parallel_func
  from .source_space._source_space import SourceSpaces, _make_volume_source_space
  from .surface import _compute_nearest, _points_outside_surface, transform_surface_to
  from .transforms import _coord_frame_name, _print_coord_trans, apply_trans
  from .utils import ExtendedTimeMixin, TimeMixin, _check_fname, _check_option, _get_blas_funcs, _pl, _repeated_svd, _svd_lwork, _time_mask, _validate_type, _verbose_safe_false, check_fname, copy_function_doc_to_method_doc, fill_doc, logger, verbose, warn
  from .viz import plot_dipole_amplitudes, plot_dipole_locations
  from .viz.evoked import _plot_evoked
label_desc: Use image node_id 7 for calling a global function with example usage: _dipole_forwards() and returns: B,  B_orig,  scales