While not directly answering your question, what about collecting all these
arguments into an env object? Then you are just passing one argument in the
... and it is passed by reference, which is fast.


On Tue, Dec 2, 2025 at 2:42 PM Therneau, Terry M., Ph.D. via R-devel <
[email protected]> wrote:

> I have a complex likelihood function f() to maximize, with lots of
> arguments (some of which set up indexes for derivatives, for instance).
> When using something like optim(), one can pass these arguments through
> via its … arg, or could make the likelihood function f() live in the same
> environment as the main routine so they are found directly.    Is there any
> advantage of one versus the other wrt speed?    At the end of the day, f()
> may get called thousands of times in a Hamiltonian MCMC.
>
> Since R does not replicate arguments that are used in a read-only fashion,
> one might expect little to no penalty for having them on the call chain,
> unless the bookkeeping for copy-on-write is itself time consuming.
>
> Terry T.
>
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

        [[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to