{
  "_id": "6a15b89facfb0bcc41d68015",
  "Type": "Package",
  "Package": "rnndescent",
  "Title": "Nearest Neighbor Descent Method for Approximate Nearest\nNeighbors",
  "Version": "0.2.0.9000",
  "Authors@R": "c(\nperson(\"James\", \"Melville\", , \"jlmelville@gmail.com\", role = c(\"aut\", \"cre\", \"cph\")),\nperson(\"Vitalie\", \"Spinu\", role = \"ctb\"),\nperson(\"Ralf\", \"Stubner\", role = \"ctb\")\n)",
  "Description": "The Nearest Neighbor Descent method for finding\napproximate nearest neighbors by Dong and co-workers (2010)\n<doi:10.1145/1963405.1963487>. Based on the 'Python' package\n'PyNNDescent' <https://github.com/lmcinnes/pynndescent>.",
  "License": "GPL (>= 3)",
  "URL": "https://jlmelville.github.io/rnndescent/,\nhttps://github.com/jlmelville/rnndescent",
  "BugReports": "https://github.com/jlmelville/rnndescent/issues",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "SystemRequirements": "C++17",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://jlmelville.r-universe.dev",
  "Date/Publication": "2026-05-26 13:34:31 UTC",
  "RemoteUrl": "https://github.com/jlmelville/rnndescent",
  "RemoteRef": "HEAD",
  "RemoteSha": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-05-26 15:00:28 UTC",
    "User": "root"
  },
  "Author": "James Melville [aut, cre, cph],\nVitalie Spinu [ctb],\nRalf Stubner [ctb]",
  "Maintainer": "James Melville <jlmelville@gmail.com>",
  "MD5sum": "f5632b74666918f409ba7682cf6b5f29",
  "_user": "jlmelville",
  "_type": "src",
  "_file": "rnndescent_0.2.0.9000.tar.gz",
  "_fileid": "65d722b48765166d12f8a2ecd26f04076730cc2c1d13c6aeda84db701f0c119f",
  "_filesize": 1437169,
  "_sha256": "65d722b48765166d12f8a2ecd26f04076730cc2c1d13c6aeda84db701f0c119f",
  "_created": "2026-05-26T15:00:28.000Z",
  "_published": "2026-05-26T15:13:35.175Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77891673071,
      "time": 187,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7218252679"
    },
    {
      "job": 77891672988,
      "time": 209,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7218262108"
    },
    {
      "job": 77891672897,
      "time": 181,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218250577"
    },
    {
      "job": 77891672926,
      "time": 199,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218257167"
    },
    {
      "job": 77891673058,
      "time": 157,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7218250144"
    },
    {
      "job": 77891673106,
      "time": 534,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7218473999"
    },
    {
      "job": 77891672964,
      "time": 106,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218293133"
    },
    {
      "job": 77891673293,
      "time": 399,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218386299"
    },
    {
      "job": 77890497331,
      "time": 310,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218169279"
    },
    {
      "job": 77891672836,
      "time": 170,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218245800"
    },
    {
      "job": 77891673258,
      "time": 200,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7218258623"
    },
    {
      "job": 77891673206,
      "time": 207,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7218260973"
    },
    {
      "job": 77891673091,
      "time": 276,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7218289628"
    }
  ],
  "_buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/jlmelville/rnndescent",
  "_commit": {
    "id": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
    "author": "James Melville <jlmelville@gmail.com>",
    "committer": "James Melville <jlmelville@gmail.com>",
    "message": "Set development version\n",
    "time": 1779802471
  },
  "_maintainer": {
    "name": "James Melville",
    "email": "jlmelville@gmail.com",
    "login": "jlmelville",
    "description": "\"The work of a lazy, self-indulgent man\"",
    "uuid": 1936393
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "BH",
      "role": "LinkingTo"
    },
    {
      "package": "dqrng",
      "role": "LinkingTo"
    },
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "sitmo",
      "role": "LinkingTo"
    },
    {
      "package": "dqrng",
      "role": "Imports"
    },
    {
      "package": "Matrix",
      "version": ">= 1.3-0",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "role": "Imports"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "jlmelville",
  "_selfowned": true,
  "_usedby": 3,
  "_updates": [
    {
      "week": "2025-31",
      "n": 6
    },
    {
      "week": "2025-36",
      "n": 5
    },
    {
      "week": "2025-52",
      "n": 3
    },
    {
      "week": "2026-11",
      "n": 18
    },
    {
      "week": "2026-18",
      "n": 11
    },
    {
      "week": "2026-21",
      "n": 3
    },
    {
      "week": "2026-22",
      "n": 4
    }
  ],
  "_tags": [
    {
      "name": "v0.1.8",
      "date": "2025-09-07"
    },
    {
      "name": "v0.2.0",
      "date": "2026-05-26"
    }
  ],
  "_topics": [
    "approximate-nearest-neighbor-search",
    "cpp"
  ],
  "_stars": 17,
  "_contributors": [
    {
      "user": "jlmelville",
      "count": 1139,
      "uuid": 1936393
    },
    {
      "user": "rstub",
      "count": 1,
      "uuid": 27821131
    }
  ],
  "_userbio": {
    "uuid": 1936393,
    "type": "user",
    "name": "James Melville",
    "description": "\"The work of a lazy, self-indulgent man\""
  },
  "_downloads": {
    "count": 4402,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/rnndescent"
  },
  "_devurl": "https://github.com/jlmelville/rnndescent",
  "_pkgdown": "https://jlmelville.github.io/rnndescent/",
  "_searchresults": 101,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/rnndescent.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/jlmelville/rnndescent",
  "_realowner": "jlmelville",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.1",
      "date": "2023-11-27"
    },
    {
      "version": "0.1.3",
      "date": "2023-12-08"
    },
    {
      "version": "0.1.4",
      "date": "2024-03-18"
    },
    {
      "version": "0.1.5",
      "date": "2024-04-18"
    },
    {
      "version": "0.1.6",
      "date": "2024-05-14"
    },
    {
      "version": "0.1.8",
      "date": "2025-09-05"
    },
    {
      "version": "0.2.0",
      "date": "2026-05-26"
    }
  ],
  "_exports": [
    "brute_force_knn",
    "brute_force_knn_query",
    "graph_knn_query",
    "k_occur",
    "merge_knn",
    "neighbor_overlap",
    "nnd_knn",
    "prepare_search_graph",
    "random_knn",
    "random_knn_query",
    "rnnd_build",
    "rnnd_knn",
    "rnnd_query",
    "rpf_build",
    "rpf_filter",
    "rpf_knn",
    "rpf_knn_query"
  ],
  "_help": [
    {
      "page": "brute_force_knn",
      "title": "Find exact nearest neighbors by brute force",
      "topics": [
        "brute_force_knn"
      ]
    },
    {
      "page": "brute_force_knn_query",
      "title": "Query exact nearest neighbors by brute force",
      "topics": [
        "brute_force_knn_query"
      ]
    },
    {
      "page": "graph_knn_query",
      "title": "Query a search graph for nearest neighbors",
      "topics": [
        "graph_knn_query"
      ]
    },
    {
      "page": "k_occur",
      "title": "Quantify hubness of a nearest neighbor graph",
      "topics": [
        "k_occur"
      ]
    },
    {
      "page": "merge_knn",
      "title": "Merge multiple approximate nearest neighbors graphs",
      "topics": [
        "merge_knn"
      ]
    },
    {
      "page": "neighbor_overlap",
      "title": "Overlap between the indices of two nearest neighbor graphs",
      "topics": [
        "neighbor_overlap"
      ]
    },
    {
      "page": "nnd_knn",
      "title": "Find nearest neighbors using nearest neighbor descent",
      "topics": [
        "nnd_knn"
      ]
    },
    {
      "page": "prepare_search_graph",
      "title": "Convert a nearest neighbor graph into a search graph",
      "topics": [
        "prepare_search_graph"
      ]
    },
    {
      "page": "random_knn",
      "title": "Find nearest neighbors by random selection",
      "topics": [
        "random_knn"
      ]
    },
    {
      "page": "random_knn_query",
      "title": "Query nearest neighbors by random selection",
      "topics": [
        "random_knn_query"
      ]
    },
    {
      "page": "rnnd_build",
      "title": "Build approximate nearest neighbors index and neighbor graph",
      "topics": [
        "rnnd_build"
      ]
    },
    {
      "page": "rnnd_knn",
      "title": "Find approximate nearest neighbors",
      "topics": [
        "rnnd_knn"
      ]
    },
    {
      "page": "rnnd_query",
      "title": "Query an index for approximate nearest neighbors",
      "topics": [
        "rnnd_query"
      ]
    },
    {
      "page": "rpf_build",
      "title": "Create a random projection forest nearest neighbor index",
      "topics": [
        "rpf_build"
      ]
    },
    {
      "page": "rpf_filter",
      "title": "Keep the best trees in a random projection forest",
      "topics": [
        "rpf_filter"
      ]
    },
    {
      "page": "rpf_knn",
      "title": "Find nearest neighbors using a random projection forest",
      "topics": [
        "rpf_knn"
      ]
    },
    {
      "page": "rpf_knn_query",
      "title": "Query a random projection forest index for nearest neighbors",
      "topics": [
        "rpf_knn_query"
      ]
    }
  ],
  "_readme": "https://github.com/jlmelville/rnndescent/raw/HEAD/README.md",
  "_rundeps": [
    "BH",
    "dqrng",
    "lattice",
    "Matrix",
    "Rcpp",
    "sitmo"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "14.2.0-4ubuntu2~24.04.1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "brute-force.Rmd",
      "filename": "brute-force.html",
      "title": "Brute Force Search",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2023-11-19 17:39:34",
      "modified": "2023-11-20 03:24:06",
      "commits": 2
    },
    {
      "source": "hubness.Rmd",
      "filename": "hubness.html",
      "title": "Hubness",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Comparing Low- and High-Dimensional Nearest Neighbors",
        "Detecting Hubness",
        "k-occurrence in the 2D case",
        "k-occurrence in the 1000D case",
        "k-occurrence as a diagnostic of NND failure",
        "Detecting Poorly Predicted Neighbors",
        "Detecting Problems Early",
        "Improving accuracy",
        "Weight candidates by degree",
        "Use More Neighbors",
        "Use More Candidates",
        "Decrease the convergence tolerance",
        "Merging Multiple Independent Results",
        "Using a Search Graph",
        "Conclusions",
        "References"
      ],
      "created": "2023-11-15 23:47:33",
      "modified": "2023-12-30 23:29:33",
      "commits": 10
    },
    {
      "source": "metrics.Rmd",
      "filename": "metrics.html",
      "title": "Metrics",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Specialized Binary Metrics",
        "References"
      ],
      "created": "2023-11-19 02:12:47",
      "modified": "2025-12-24 07:23:37",
      "commits": 4
    },
    {
      "source": "nearest-neighbor-descent.Rmd",
      "filename": "nearest-neighbor-descent.html",
      "title": "Nearest Neighbor Descent",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Local Join",
        "Other Heuristics",
        "PyNNDescent Modifications",
        "Example",
        "Troubleshooting",
        "Querying New Data",
        "References"
      ],
      "created": "2023-11-18 07:40:43",
      "modified": "2023-11-18 07:40:43",
      "commits": 1
    },
    {
      "source": "querying-data.Rmd",
      "filename": "querying-data.html",
      "title": "Querying Data",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Brute Force",
        "Random Projection Forests",
        "Graph Search",
        "n_threads",
        "epsilon",
        "init",
        "Neighbor Graph Input",
        "Neighbor Indices Only",
        "Forest initialization",
        "Preparing the Search Graph",
        "Diversification Probability",
        "Degree Pruning",
        "References"
      ],
      "created": "2023-11-18 23:19:38",
      "modified": "2026-05-25 19:56:45",
      "commits": 4
    },
    {
      "source": "random-partition-forests.Rmd",
      "filename": "random-partition-forests.html",
      "title": "Random Partition Forests",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Random Partition Forests",
        "Building a Space-Partitioning Tree",
        "Building a Random Partition Tree",
        "From Trees to Forests",
        "Build a Forest",
        "Finding Nearest Neighbors",
        "A Small Optimization for the k-Nearest Neighbors",
        "Margin",
        "Filtering a Forest",
        "References"
      ],
      "created": "2023-11-16 03:36:33",
      "modified": "2023-11-30 06:56:49",
      "commits": 5
    },
    {
      "source": "rnndescent.Rmd",
      "filename": "rnndescent.html",
      "title": "rnndescent",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Find the k-nearest neighbors",
        "The Neighbor Graph Format",
        "Build an Index",
        "Querying Data",
        "Parallelism",
        "Available Metrics",
        "Supported Data Types",
        "Parameters",
        "References"
      ],
      "created": "2021-08-09 05:20:03",
      "modified": "2023-11-30 06:56:49",
      "commits": 16
    }
  ],
  "_score": 9.221828927182104,
  "_indexed": true,
  "_nocasepkg": "rnndescent",
  "_universes": [
    "jlmelville"
  ],
  "_previous": "0.1.8.9000",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:35.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "a68ad43bd45c6fd2f416dcbad206272452ce23bfe493bd9cdb1603849d1b8dda",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:55.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "78ff201b166eab7a0deaa6394110d36b5e41ccc11dd6852c408313b171ae5913",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:30.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "aed334d64a1549de665ce195bdf879132c55b1ceaa34f493dd0ac584ac7fb86a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:39.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "6c6866c1f367314afb643657412f307c7c71d88c70978038fad15864663e339e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:37.000Z",
      "arch": "aarch64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "2be14d6186d0eadd45e3864536a271ad53c6fd7ce660b22ba244ecb8bb9428bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:08:50.000Z",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "38d9ca33b6f927f00d4bfac0b19cf7b2c41d3e97e6e8f7b0861d32cb396a43e5",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:05:39.000Z",
      "arch": "aarch64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "31cc3c6450ca77980cfb2fc958534e695cc69a28ffa5a7604b954ceed32b472b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:06:57.000Z",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "6b5c296df94f4f76f34396323f9726cf29bb46759aa24d238c9165a7f81239c2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:49.000Z",
      "arch": "emscripten",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "bafd4238db549da948016d2e506d515e7077b8d1df46afd2b4a2b14d4f098da1",
      "status": "success",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:02:48.000Z",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "a049c12faeeb155b8859359cb2b6b1cafc2b4dc022deae601a42330b14ba0187",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:02:58.000Z",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "08bcb50a1ad883e35adbf16ee0a15a70ad1fcb3b1892f401b3c7c02dca97e68b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.0.9000",
      "date": "2026-05-26T15:03:23.000Z",
      "arch": "x86_64",
      "commit": "123e8f834c5a67fa5a3210e9cf55d4021fc20fde",
      "fileid": "20aec53acff5b70cec9a3f4a77e0cbbdd9e0d009985f281cbf8ace64b590627a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/jlmelville/actions/runs/26456105264"
    }
  ]
}