jit

fun <TInput : Any, TOutput : Any> jit(f: (TInput) -> TOutput): JittedFunction<TInput, TOutput>
fun <TInput : Any, TOutput : Any> jit(f: (TInput) -> TOutput, wrapInput: (TInput, Wrapper) -> TInput? = null, cacheSizeLimit: Int = 5, evaluatorToUse: JitEvaluatorToUse = JitEvaluatorToUse.BestAvailable, loggingName: String = "jit", shouldLog: Boolean = false): JittedFunction<TInput, TOutput>

Transform a (differentiable) function into a function of the same signature but which unrolls all loops and control constructs, and performs a set of local optimizations on the result. Because control-flow is removed, any data-dependent control-flow in the function will no longer depend on the input data in the second and subsequent invocations of the returned function.