% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/matching_core.R
\name{.couples_blocked}
\alias{.couples_blocked}
\title{Shared blocked matching implementation}
\usage{
.couples_blocked(
  left,
  right,
  left_ids,
  right_ids,
  block_col,
  vars,
  distance,
  weights,
  scale,
  max_distance,
  calipers,
  solver_fn,
  solver_params = list(),
  check_costs = FALSE,
  strict_no_pairs = FALSE,
  parallel = FALSE,
  replace = FALSE,
  ratio = 1L,
  sigma = NULL,
  memory_mode = "auto"
)
}
\arguments{
\item{solver_fn}{Solver function (assignment or greedy_matching)}

\item{solver_params}{Named list of extra args passed to solver_fn}

\item{check_costs}{If TRUE, passed through to .couples_single}

\item{strict_no_pairs}{If TRUE, passed through to .couples_single}
}
\value{
List with pairs tibble, unmatched list, and info list.
}
\description{
Core logic for both optimal (LAP) and greedy blocked matching.
Called by match_couples_blocked() (optimal and greedy paths).
}
\keyword{internal}
