{
  "_id": "6ae2529e3d0f299392dcfe4f",
  "Package": "nabla",
  "Title": "Exact Derivatives via Automatic Differentiation",
  "Version": "0.7.2",
  "Authors@R": "person(\"Alexander\", \"Towell\",\nrole = c(\"aut\", \"cre\"),\nemail = \"queelius@gmail.com\",\ncomment = c(ORCID = \"0000-0001-6443-9897\"))",
  "URL": "https://github.com/queelius/nabla, https://metafunctor.com",
  "BugReports": "https://github.com/queelius/nabla/issues",
  "Description": "Automatic differentiation for R functions written with\nsupported scalar arithmetic and mathematical operations.\nProvides a composable derivative operator D that computes\ngradients, Hessians, Jacobians, and arbitrary-order derivative\ntensors at machine precision. D(D(f)) gives Hessians,\nD(D(D(f))) gives third-order tensors for skewness of maximum\nlikelihood estimators, and so on to higher orders. Supports\nloops and executed branches composed of supported operations.\nUses nested dual numbers without finite difference truncation\nerror; floating-point rounding and conditioning still affect\nresults.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Collate": "'dual-class.R' 'dual-arithmetic.R' 'dual-math.R'\n'dual-special.R' 'dual-higher.R' 'derivatives.R'\n'nabla-package.R'",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-28 19:49:52 UTC",
    "User": "root"
  },
  "Author": "Alexander Towell [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-6443-9897>)",
  "Maintainer": "Alexander Towell <queelius@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-10-28 11:20:08 UTC",
  "RemoteUrl": "https://github.com/cran/nabla",
  "RemoteRef": "HEAD",
  "RemoteSha": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
  "_user": "cran",
  "_type": "src",
  "_file": "nabla_0.7.2.tar.gz",
  "_fileid": "https://r2.ropensci.org/bd13882c1bd354472e38f79cf3ae71b32b3e2ee98ade2e1d54958492562db867",
  "_filesize": 1168977,
  "_sha256": "bd13882c1bd354472e38f79cf3ae71b32b3e2ee98ade2e1d54958492562db867",
  "_expires": "2027-02-05T19:53:00.000Z",
  "_created": "2026-10-28T19:49:52.000Z",
  "_published": "2026-10-28T19:53:02.810Z",
  "_upstream": "https://github.com/cran/nabla",
  "_status": "success",
  "_maintainer": {
    "name": "Alexander Towell",
    "email": "queelius@gmail.com",
    "login": "queelius",
    "orcid": "0000-0001-6443-9897",
    "twitter": "@queelius",
    "description": "Alexander Richard Towell (Alexander Towell / Alex Towell; queelius). AI, mathematics, privacy, and open-source research.",
    "uuid": 1896674
  },
  "_jobs": [
    {
      "job": 123061479209,
      "time": 152,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12846692401"
    },
    {
      "job": 123061478527,
      "time": 151,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12846603467"
    },
    {
      "job": 123059889538,
      "time": 178,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12846617174"
    },
    {
      "job": 123061478591,
      "time": 86,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12846307113"
    },
    {
      "job": 123061478502,
      "time": 71,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12846391885"
    },
    {
      "job": 123061478732,
      "time": 109,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12847031327"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284",
  "_commit": {
    "id": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
    "author": "Alexander Towell <queelius@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.7.2\n",
    "time": 1793186408
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.0.0",
      "role": "Depends"
    },
    {
      "package": "methods",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-07",
      "n": 1
    },
    {
      "week": "2026-44",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.7.1",
      "date": "2026-02-10"
    },
    {
      "name": "0.7.2",
      "date": "2026-10-28"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "queelius",
      "count": 2,
      "uuid": 1896674
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 634,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 163,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/nabla"
  },
  "_devurl": "https://github.com/queelius/nabla",
  "_searchresults": 8,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/nabla.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/queelius/nabla",
  "_realowner": "queelius",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.7.1",
      "date": "2026-02-16"
    },
    {
      "version": "0.7.2",
      "date": "2026-10-28"
    }
  ],
  "_exports": [
    "atan2",
    "beta",
    "D",
    "deriv",
    "deriv_n",
    "differentiate_n",
    "dual",
    "dual_constant",
    "dual_constant_n",
    "dual_variable",
    "dual_variable_n",
    "dual_vector",
    "erf",
    "erfc",
    "gradient",
    "hessian",
    "is_dual",
    "jacobian",
    "lbeta",
    "Math",
    "Math2",
    "Ops",
    "psigamma",
    "show",
    "Summary",
    "value"
  ],
  "_help": [
    {
      "page": "nabla-package",
      "title": "nabla: Exact Derivatives via Automatic Differentiation",
      "topics": [
        "nabla-package",
        "nabla"
      ]
    },
    {
      "page": "beta",
      "title": "Beta function for dual numbers",
      "topics": [
        "beta",
        "beta,ANY,ANY-method",
        "beta,numeric,numeric-method"
      ]
    },
    {
      "page": "D",
      "title": "Composable total derivative operator",
      "topics": [
        "D"
      ]
    },
    {
      "page": "deriv",
      "title": "Extract the derivative (tangent) part of a dual number",
      "topics": [
        "deriv",
        "deriv,dualr-method",
        "deriv,numeric-method"
      ]
    },
    {
      "page": "deriv_n",
      "title": "Extract the k-th derivative from a nested dual result",
      "topics": [
        "deriv_n"
      ]
    },
    {
      "page": "differentiate_n",
      "title": "Compute a function value and all derivatives up to order n",
      "topics": [
        "differentiate_n"
      ]
    },
    {
      "page": "dual",
      "title": "Create a dual number",
      "topics": [
        "dual"
      ]
    },
    {
      "page": "dual_constant",
      "title": "Create a dual constant (derivative seed = 0)",
      "topics": [
        "dual_constant"
      ]
    },
    {
      "page": "dual_constant_n",
      "title": "Create a constant dual for n-th order differentiation",
      "topics": [
        "dual_constant_n"
      ]
    },
    {
      "page": "dual_variable",
      "title": "Create a dual variable (derivative seed = 1)",
      "topics": [
        "dual_variable"
      ]
    },
    {
      "page": "dual_variable_n",
      "title": "Create a dual seeded for n-th order differentiation",
      "topics": [
        "dual_variable_n"
      ]
    },
    {
      "page": "dual_vector",
      "title": "Create a vector of dual numbers",
      "topics": [
        "dual_vector"
      ]
    },
    {
      "page": "dual_vector-access",
      "title": "Indexing and length for dual_vector",
      "topics": [
        "dual_vector-access",
        "length,dual_vector-method",
        "[,dual_vector,numeric-method"
      ]
    },
    {
      "page": "dual_vector-class",
      "title": "Dual Number Vector",
      "topics": [
        "dual_vector-class"
      ]
    },
    {
      "page": "dual-arithmetic",
      "title": "Arithmetic and comparison operators for dual numbers",
      "topics": [
        "!,dualr-method",
        "*,dualr,dualr-method",
        "*,dualr,numeric-method",
        "*,numeric,dualr-method",
        "+,dualr,dualr-method",
        "+,dualr,missing-method",
        "+,dualr,numeric-method",
        "+,numeric,dualr-method",
        "-,dualr,dualr-method",
        "-,dualr,missing-method",
        "-,dualr,numeric-method",
        "-,numeric,dualr-method",
        "/,dualr,dualr-method",
        "/,dualr,numeric-method",
        "/,numeric,dualr-method",
        "dual-arithmetic",
        "Ops,dualr,dualr-method",
        "Ops,dualr,numeric-method",
        "Ops,numeric,dualr-method",
        "^,dualr,dualr-method",
        "^,dualr,numeric-method",
        "^,numeric,dualr-method"
      ]
    },
    {
      "page": "dual-atan2",
      "title": "Two-argument arctangent for dual numbers",
      "topics": [
        "atan2,dualr,dualr-method",
        "atan2,dualr,numeric-method",
        "atan2,numeric,dualr-method",
        "dual-atan2"
      ]
    },
    {
      "page": "dual-coerce",
      "title": "Coerce dual to numeric",
      "topics": [
        "as.numeric,dualr-method",
        "dual-coerce"
      ]
    },
    {
      "page": "dual-combine",
      "title": "Combine dual numbers into a dual_vector",
      "topics": [
        "c,dualr-method",
        "dual-combine"
      ]
    },
    {
      "page": "dual-is-numeric",
      "title": "Check if a dual number is numeric",
      "topics": [
        "dual-is-numeric",
        "is.numeric,dualr-method"
      ]
    },
    {
      "page": "dual-log",
      "title": "Logarithm with optional base for dual numbers",
      "topics": [
        "dual-log",
        "log,dualr-method"
      ]
    },
    {
      "page": "dual-math",
      "title": "Math group generic for dual numbers",
      "topics": [
        "dual-math",
        "exp,dualr-method",
        "Math,dualr-method",
        "sqrt,dualr-method"
      ]
    },
    {
      "page": "dual-math2",
      "title": "Math2 group generic for dual numbers",
      "topics": [
        "dual-math2",
        "Math2,dualr-method"
      ]
    },
    {
      "page": "dual-maxmin",
      "title": "Piecewise max and min for dual numbers",
      "topics": [
        "dual-maxmin",
        "max,dualr-method",
        "min,dualr-method"
      ]
    },
    {
      "page": "dual-show",
      "title": "Display a dual number",
      "topics": [
        "dual-show",
        "show,dualr-method",
        "show,dual_vector-method"
      ]
    },
    {
      "page": "dual-summary",
      "title": "Summary group generic for dual numbers",
      "topics": [
        "dual-summary",
        "Summary,dualr-method"
      ]
    },
    {
      "page": "dualr-class",
      "title": "Dual Number Class for Automatic Differentiation",
      "topics": [
        "dualr-class"
      ]
    },
    {
      "page": "erf",
      "title": "Error function",
      "topics": [
        "erf",
        "erf,dualr-method",
        "erf,numeric-method"
      ]
    },
    {
      "page": "erfc",
      "title": "Complementary error function",
      "topics": [
        "erfc",
        "erfc,dualr-method",
        "erfc,numeric-method"
      ]
    },
    {
      "page": "gradient",
      "title": "Compute the gradient of a scalar-valued function",
      "topics": [
        "gradient"
      ]
    },
    {
      "page": "hessian",
      "title": "Compute the Hessian of a scalar-valued function",
      "topics": [
        "hessian"
      ]
    },
    {
      "page": "is_dual",
      "title": "Test whether an object is a dual number",
      "topics": [
        "is_dual"
      ]
    },
    {
      "page": "jacobian",
      "title": "Compute the Jacobian of a vector-valued function",
      "topics": [
        "jacobian"
      ]
    },
    {
      "page": "lbeta",
      "title": "Log-beta function for dual numbers",
      "topics": [
        "lbeta",
        "lbeta,dualr,dualr-method",
        "lbeta,dualr,numeric-method",
        "lbeta,numeric,dualr-method",
        "lbeta,numeric,numeric-method"
      ]
    },
    {
      "page": "psigamma",
      "title": "Polygamma function for dual numbers",
      "topics": [
        "psigamma",
        "psigamma,dualr-method",
        "psigamma,numeric-method"
      ]
    },
    {
      "page": "value",
      "title": "Extract the value (primal) part of a dual number",
      "topics": [
        "value",
        "value,dualr-method",
        "value,numeric-method"
      ]
    }
  ],
  "_readme": "https://github.com/cran/nabla/raw/HEAD/README.md",
  "_rundeps": [],
  "_vignettes": [
    {
      "source": "mle-workflow.Rmd",
      "filename": "mle-workflow.html",
      "title": "Gradient and Hessian Computation with nabla",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Helper: finite difference utilities",
        "Normal log-likelihood: known sigma, unknown mu",
        "Normal log-likelihood: unknown mu and sigma",
        "Poisson log-likelihood: unknown lambda",
        "Visualizing the gradient",
        "Gamma log-likelihood: unknown shape, known rate",
        "Logistic regression: 2 predictors",
        "Newton-Raphson optimizer",
        "Contour plot: Normal(mu, sigma) log-likelihood surface",
        "Newton-Raphson convergence path",
        "jacobian(): differentiating a vector-valued function",
        "Summary"
      ],
      "created": "2026-02-10 21:30:09",
      "modified": "2026-02-10 21:30:09",
      "commits": 1
    },
    {
      "source": "higher-order.Rmd",
      "filename": "higher-order.html",
      "title": "Higher-Order Derivatives",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The D operator",
        "Curvature analysis",
        "Visualizing curvature along sin(x)",
        "Taylor expansion",
        "Connection to MLE: exact Hessians for standard errors",
        "How it works: nested duals",
        "Summary"
      ],
      "created": "2026-02-10 21:30:09",
      "modified": "2026-02-10 21:30:09",
      "commits": 1
    },
    {
      "source": "mle-skewness.Rmd",
      "filename": "mle-skewness.html",
      "title": "Higher-Order MLE Analysis",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Motivation",
        "The Gamma model",
        "Finding the MLE",
        "Score and observed information",
        "Third-order derivative tensor",
        "Asymptotic skewness of the MLE",
        "Monte Carlo validation",
        "Visualizing MLE asymmetry",
        "Summary"
      ],
      "created": "2026-02-10 21:30:09",
      "modified": "2026-02-10 21:30:09",
      "commits": 1
    },
    {
      "source": "introduction.Rmd",
      "filename": "introduction.html",
      "title": "Introduction to nabla",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is nabla?",
        "Quick start",
        "Works through any R code",
        "Multi-parameter functions",
        "Quick comparison: three ways to differentiate",
        "Why exact derivatives matter",
        "How it works: dual numbers",
        "What's next?"
      ],
      "created": "2026-02-10 21:30:09",
      "modified": "2026-02-10 21:30:09",
      "commits": 1
    },
    {
      "source": "optimizer-integration.Rmd",
      "filename": "optimizer-integration.html",
      "title": "Optimizer Integration",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "optim() with AD gradients",
        "nlminb() with AD gradient + Hessian",
        "Logistic regression example",
        "Standard errors from the Hessian",
        "Convergence comparison",
        "Summary"
      ],
      "created": "2026-02-10 21:30:09",
      "modified": "2026-02-10 21:30:09",
      "commits": 1
    }
  ],
  "_score": 3.6989700043360187,
  "_indexed": false,
  "_nocasepkg": "nabla",
  "_universes": [
    "cran"
  ],
  "_indexurl": "https://queelius.r-universe.dev/nabla",
  "_previous": "0.7.1",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.7.2",
      "date": "2026-10-28T19:52:00.000Z",
      "distro": "resolute",
      "commit": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
      "fileid": "https://r2.ropensci.org/449ec1e16edd6cba5e01c41ee8354809eef20f1bb3f5bdc20468baf49972b120",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.7.2",
      "date": "2026-10-28T19:52:14.000Z",
      "distro": "resolute",
      "commit": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
      "fileid": "https://r2.ropensci.org/d2660a25b7c5dd609ba3a5feb15440867389f989eeba6f5f2f65746a274867fe",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.7.2",
      "date": "2026-10-28T19:51:36.000Z",
      "commit": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
      "fileid": "https://r2.ropensci.org/abef676ad5c387998cece389cc68435c6007c0501fef1abf2c6bbef026ebf6f9",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.7.2",
      "date": "2026-10-28T19:50:48.000Z",
      "commit": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
      "fileid": "https://r2.ropensci.org/8b0244573b57d0516959fc06bdf949dd15da934ece5918c7cc20fccb448ab615",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.7.2",
      "date": "2026-10-28T19:51:06.000Z",
      "commit": "2c225a419a9b9a1adc2f9d65d413f7b5b1e0742b",
      "fileid": "https://r2.ropensci.org/9c0d3c1761253a608c0ded894a742aeacf9aabaa0ad8443d799f55a75354beeb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/40757340284"
    }
  ]
}