% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/em_cat.R
\name{.safeguard_update_cat_em}
\alias{.safeguard_update_cat_em}
\title{Safeguard M-step update via step-halving}
\usage{
.safeguard_update_cat_em(
  y,
  order,
  old_marginal,
  old_transition,
  new_marginal,
  new_transition,
  blocks_id,
  homogeneous,
  c,
  logL_old,
  n_time,
  n_blocks
)
}
\arguments{
\item{y}{Data matrix.}

\item{order}{Model order.}

\item{old_marginal}{Previous marginal parameters.}

\item{old_transition}{Previous transition parameters.}

\item{new_marginal}{Proposed marginal parameters from M-step.}

\item{new_transition}{Proposed transition parameters from M-step.}

\item{blocks_id}{Normalized block ids.}

\item{homogeneous}{Whether parameters are shared across blocks.}

\item{c}{Number of categories.}

\item{logL_old}{Observed-data log-likelihood at old parameters.}

\item{n_time}{Number of time points.}

\item{n_blocks}{Number of blocks.}
}
\value{
List with safeguarded parameters, acceptance flag, and step size.
}
\description{
Safeguard M-step update via step-halving
}
\keyword{internal}
