cr.sparse.fom.scd(prox_f, conj_neg_h, A, b, mu, x0, z0, options=FomOptions(nonneg=False, solver='at', max_iters=1000, tol=1e-08, L0=1.0, Lexact=inf, alpha=0.9, beta=0.5, mu=0, maximize=False, saddle=False))[source]

First order solver for smooth conic dual problems driver routine

  • prox_f (cr.sparse.opt.SmoothFunction) – A prox-capable objective function

  • conj_neg_h (cr.sparse.opt.ProxCapable) – The conjugate negative \(h^{-}\) function

  • A (cr.sparse.lop.Operator) – A linear operator

  • b (jax.numpy.ndarray) – The translation vector

  • mu (float) – The (positive) scaling term for the quadratic term \(\frac{\mu}{2} \| x - x_0 \|_2^2\)

  • x0 (jax.numpy.ndarray) – The center point for the quadratic term

  • z0 (jax.numpy.ndarray) – The initial dual point

  • options (FomOptions) – Options for configuring the algorithm


Solution of the optimization problem

Return type


The function uses first order conic solver algorithms to solve an optimization problem of the form:

(1)\[\underset{x}{\text{minimize}} \left [ f(x) + \frac{\mu}{2} \| x - x_0 \|_2^2 + h \left (\AAA(x) + b \right) \right ]\]
  • Both \(f, h\) must be convex and prox-capable, although neither needs to be smooth.

When \(h\) is an indicator function for a convex cone \(\KKK\), this is equivalent to:

(2)\[\begin{split}\begin{split}\begin{aligned} & \underset{x}{\text{minimize}} & & f(x) + \frac{\mu}{2} \| x - x_0 \|_2^2\\ & \text{subject to} & & \AAA(x) + b \in \KKK \end{aligned}\end{split}\end{split}\]

which is the smooth conic dual (SCD) model discussed in [BCandesG11].