docs: def calc_registrations(note, error, cortices, model, model_sym,
                         weight_min, scale, prior, max_out_eccen, max_steps, max_step_size,
                         radius_weight, field_sign_weight, resample, invert_rh_angle,
                         part_vol_correct):
      '''
      calc_registrations is the calculator that performs the registrations for the left and right
      hemisphere; these are returned as the immutable maps yielded from the register_retinotopy
      command.
      '''
      rsamp = ('fsaverage_sym' if model_sym else 'fsaverage') if resample else False
      # Do the registration
      res = {}
      for (h,ctx) in six.iteritems(cortices):
          note('Preparing %s Registration...' % h.upper())
          try:
              res[h] = register_retinotopy(ctx, model[h],
                                           model_hemi='sym' if model_sym else h,
                                           polar_angle='polar_angle',
                                           eccentricity='eccentricity',
                                           weight='weight',
                                           weight_min=weight_min,
                                           partial_voluming_correction=part_vol_correct,
                                           field_sign_weight=field_sign_weight,
                                           radius_weight=radius_weight,
                                           scale=scale,
                                           prior=prior,
                                           resample=rsamp,
                                           invert_rh_field_sign=invert_rh_angle,
                                           max_steps=max_steps,
                                           max_step_size=max_step_size,
                                           yield_imap=True)
          except Exception: #error('Exception caught while setting-up register_retinotopy (%s)' % h)
              raise
      return {'registrations': pyr.pmap(res)}