def _cost( q,p, xt_measure, connec, params ) : """ Returns a total cost, sum of a small regularization term and the data attachment. .. math :: C(q_0, p_0) = .01 * H(q0,p0) + 1 * A(q_1, x_t) Needless to say, the weights can be tuned according to the signal-to-noise ratio. """ s,r = params # Deformation scale, Attachment scale q1 = _HamiltonianShooting(q,p,s)[0] # Geodesic shooting from q0 to q1 # To compute a data attachment cost, we need the set of vertices 'q1' into a measure. q1_measure = Curve._vertices_to_measure( q1, connec ) attach_info = _data_attachment( q1_measure, xt_measure, r ) return [ .01* _Hqp(q, p, s) + 1* attach_info[0] , attach_info[1] ]