А так как по вашему оно должно без оптимизаций не аллоцируя работать? Там везде Double, а они аллоцируются в куче. С оптимизацией оно воркер-враппнется и будет работать с unboxed Double#, ничего не аллоцируя, а так все равно каждый вызов аллоцирует как минимум два дабла. Банги тут не помогут, только если руками Double# юзать, ну или просто оптимизации включить