Docs / jax4j-core / com.nablatensor.jax4j.engine

final class

Nabla

Records scalar functions once and evaluates them repeatedly with new inputs.

try (var evaluator = Nabla.model(rec -> {
    SDouble x = rec.input("x", 2.0);
    rec.output(x.mul(x));
}).fp64().gradients().on("cpu").build()) {
    var result = evaluator.value().with("x", 3.0).scenarios(1).run();
    System.out.println(result.value());          // 9.0
    System.out.println(result.gradient("x"));    // 6.0
}

Building an evaluator records and compiles the tape. Request inputs are kernel arguments, so subsequent evaluations reuse the compiled function.

Methods

static Model model(Consumer<AadRecorder> evaluation)

Records an evaluation written against SDouble into a reusable model.

static TypedModel<M> model(M defaults, BiConsumer<AadRecorder, Inputs<M>> evaluation)

Records a scalar function whose inputs are the double components of a record. Accessor references identify inputs; typed gradients have the same record shape.