'Returns the score with respect to transformed parameters.
Calculates the score vector with respect to the
parameterization in which the random effects covariance matrix
is represented through its Cholesky square root.
Parameters
params : MixedLMParams or array-like
The model parameters.  If array-like must contain packed
parameters that are compatible with this model instance.
calc_fe : boolean
If True, calculate the score vector for the fixed effects
parameters.  If False, this vector is not calculated, and
a vector of zeros is returned in its place.
Returns
score_fe : array-like
The score vector with respect to the fixed effects
parameters.
score_re : array-like
The score vector with respect to the random effects
parameters (excluding variance components parameters).
score_vc : array-like
The score vector with respect to variance components
parameters.'

def score_sqrt(self, params, calc_fe=True):

    (score_fe, score_re, score_vc) = self.score_full(params, calc_fe=calc_fe)
    params_vec = params.get_packed(use_sqrt=True, has_fe=True)
    score_full = np.concatenate((score_fe, score_re, score_vc))
    scr = 0.0
    for i in range(len(params_vec)):
        v = (self._lin[i] + (2 * np.dot(self._quad[i], params_vec)))
        scr += (score_full[i] * v)
    score_fe = scr[0:self.k_fe]
    score_re = scr[self.k_fe:(self.k_fe + self.k_re2)]
    score_vc = scr[(self.k_fe + self.k_re2):]
    return (score_fe, score_re, score_vc)
