elif self.penalty in ("l1", "l2", "nn"):
penalty = self._get_penalty()
n_pos = np.asarray([np.sum(Y[:, k] == 1) for k in xrange(n_vectors)])
n_neg = n_samples - n_pos
tol = self.tol * np.maximum(np.minimum(n_pos, n_neg), 1) / n_samples
vinit = np.asarray([self.violation_init_.get(k, 0)
for k in xrange(n_vectors)]) * self.C / self.C_init
jobs = (delayed(_primal_cd)(self, self.coef_, self.errors_,
ds, y, Y, k, False,
indices, penalty, self._get_loss(),
self.selection, self.permute,
self.termination,
self.C, self.alpha, 1e12,
self.max_iter, max_steps,
self.shrinking, vinit[k],
rs, tol[k], self.callback, self.n_calls,
self.verbose)
for k in xrange(n_vectors))
viol = Parallel(n_jobs=self.n_jobs, verbose=self.verbose)(jobs)
for k in range(n_vectors):
if self.warm_start and not k in self.violation_init_:
self.violation_init_[k] = viol[k]