code: def _fit_Q(
      *, sensors, fwd_data, whitener, B, B2, B_orig, rd, ori=None
  ):
      """Fit the dipole moment once the location is known."""
      if "fwd" in fwd_data:
          # should be a single precomputed "guess" (i.e., fixed position)
          assert rd is None
          fwd = fwd_data["fwd"]
          assert fwd.shape[0] == 3
          fwd_orig = fwd_data["fwd_orig"]
          assert fwd_orig.shape[0] == 3
          scales = fwd_data["scales"]
          assert scales.shape == (3,)
          fwd_svd = fwd_data["fwd_svd"][0]
      else:
          fwd, fwd_orig, scales = _dipole_forwards(
              sensors=sensors,
              fwd_data=fwd_data,
              whitener=whitener,
              rr=rd[np.newaxis, :],
          )
          fwd_svd = None
      if ori is None:
          if fwd_svd is None:
              fwd_svd = _safe_svd(fwd, full_matrices=False)
          uu, sing, vv = fwd_svd
          gof, one = _dipole_gof(uu, sing, vv, B, B2)
          ncomp = len(one)
          one /= sing[:ncomp]
          Q = np.dot(one, uu.T[:ncomp])
      else:
          fwd = np.dot(ori[np.newaxis], fwd)
          sing = np.linalg.norm(fwd)
          one = np.dot(fwd / sing, B)
          gof = (one * one)[0] / B2
          Q = ori * np.sum(one / sing)
          ncomp = 3
      # Counteract the effect of column normalization
      Q *= scales[0]
      B_residual_noproj = B_orig - np.dot(fwd_orig.T, Q)
      return Q, gof, B_residual_noproj, ncomp
  
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 12 for calling a global function with example usage: _fit_Q() and returns: Q,  gof,  B_residual_noproj,  ncomp