Skip to contents

DPprior_dual() is retained throughout v2.x, with no removal before v3.0 and a migration review. It emits one typed lifecycle warning and reproduces the historical equality-loss objective, including the old path-derived adaptive scaling. Its result is always labelled legacy, approximate, and unverified. It never represents a hard inequality or target-satisfaction certificate.

Usage

DPprior_dual(
  fit,
  w1_target,
  lambda = 0.5,
  max_iter = 100L,
  verbose = FALSE,
  M = .QUAD_NODES_DEFAULT,
  loss_type = c("relative", "adaptive", "absolute")
)

Arguments

fit

A K-only DPprior_fit.

w1_target

Historical W_SB target using prob, mean, or quantile nesting.

lambda

Historical mixing weight in [0,1]. The new soft API rejects zero; this compatibility adapter retains it only to reproduce old analyses.

max_iter

Maximum iterations per historical optimizer.

verbose

Print historical optimizer progress.

M

Quadrature order.

loss_type

Historical "relative", "adaptive", or "absolute" scaling.

Value

A canonical dpprior.result/1 legacy DPprior_fit with mode = "dual_legacy", status = "approximate", usable = TRUE, and verified = FALSE. The authoritative equality-loss, optimizer, scaling, and lifecycle records are legacy, provenance, and computation. The dual_anchor alias is a quarantined, non-authoritative compatibility view only. Use DPprior_dual_hard for a verified inequality or DPprior_dual_soft for a current fixed-scale trade-off.