Extend the current implementation of logp to allow scaling on both branches:
y = switch(x > 0, a_pos * x, a_neg * x)
while preserving the key requirement that the branch images do not overlap, so the observed value implies which branch was taken, keep the existing design: if both branches are measurable, the switch logp should only gate between branch logps evaluated at value, and add runtime parameter checks to enforce the constraints.