  The linear complementarity problem (LCP) is a general set membership problem
that includes quadratic cone programming as a special case. In this work we
consider a homogeneous embedding of the LCP, which encodes both the optimality
conditions of the original LCP as well as certificates of infeasibility. The
resulting problem can be expressed as a monotone inclusion problem involving
the sum of two maximal monotone operators, to which we apply Douglas-Rachford
splitting. The resulting algorithm has almost identical per-iteration cost as
applying the splitting to the LCP directly. Specifically, each iteration
requires solving a linear system and projecting onto a convex cone.
  The resulting algorithm has no explicit hyper-parameters and is able to
return a primal-dual solution should one exist or a certificate of
infeasibility otherwise. If a sequence of related problems are solved it can
easily be warm-started and make use of factorization caching of the linear
system. We demonstrate on a range of public and synthetic datasets that for
feasible problems our approach tends to be somewhat faster than applying
operator splitting directly to the LCP, and in cases of infeasibility our
approach can be significantly faster than alternative approaches based on
diverging iterates. The algorithm we describe has been implemented in C and is
available open-source as SCS-3.0.
