% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/linf.R
\name{normalize.linf}
\alias{normalize.linf}
\title{L-infinity normalization (row-wise)}
\usage{
normalize.linf(X, tol = 0, backend = c("auto", "dense", "sparse"))
}
\arguments{
\item{X}{Numeric matrix (samples x features).}

\item{tol}{Numeric >= 0. Values with row max <= tol are treated as zero rows.
Default: 0 (exact zero only).}

\item{backend}{Character. Matrix backend to use: \code{"auto"},
\code{"dense"}, or \code{"sparse"}. The default \code{"auto"} preserves
sparse input and otherwise uses the dense path.}
}
\value{
Numeric matrix of same dimensions as X, L-infinity normalized.
}
\description{
Scales each row of a numeric matrix by its L-infinity norm (row maximum).
Rows whose maximum is zero (or below tolerance) are left unchanged
and remain all-zero.
}
\details{
Zero rows have undefined L-infinity direction. By convention, they are
preserved as all-zero rows and will yield NA labels in downstream
dominant-feature or dCST assignment.
}
