If input is filled with -1, the output is 0. This will be because we use divide_and_truncate (e.g. here). This function is designed to work for the PoissonLL operations, and truncates negatives to zero. That is incorrect for the multiplication with the Hessian though, as the "input" vector can be anything.
Unfortunately, it doesn't seem to be easy to make the Hessian calculation consistent with the truncation strategy used for the gradient (and value) of the PoissonLL (or at least, do it without becoming quite slow).
If input is filled with -1, the output is 0. This will be because we use
divide_and_truncate(e.g. here). This function is designed to work for the PoissonLL operations, and truncates negatives to zero. That is incorrect for the multiplication with the Hessian though, as the "input" vector can be anything.Unfortunately, it doesn't seem to be easy to make the Hessian calculation consistent with the truncation strategy used for the gradient (and value) of the PoissonLL (or at least, do it without becoming quite slow).