{
  "_id": "6ab258d03d719c1f8408c39a",
  "Type": "Package",
  "Package": "natcpp",
  "Title": "Fast C++ Primitives for the 'NeuroAnatomy Toolbox'",
  "Version": "0.3.2.9000",
  "Authors@R": "c(person(given = \"Gregory\",\nfamily = \"Jefferis\",\nrole = c(\"aut\", \"cre\"),\nemail = \"jefferis@gmail.com\",\ncomment = c(ORCID = \"0000-0002-0587-9355\")),\nperson(given = \"libigl contributors\",\nrole = c(\"ctb\", \"cph\"),\ncomment = \"bundled libigl fast winding number code (MPL-2.0); see src/vendor/README.md\"))",
  "Description": "Fast functions implemented in C++ via 'Rcpp' to support\nthe 'NeuroAnatomy Toolbox' ('nat') ecosystem. These functions\nprovide large speed-ups for basic manipulation of neuronal\nskeletons over pure R functions found in the 'nat' package. The\nexpectation is that end users will not use this package\ndirectly, but instead the 'nat' package will automatically use\nroutines from this package when it is available to enable large\nperformance gains.",
  "License": "GPL (>= 3)",
  "URL": "https://github.com/natverse/natcpp, https://natverse.org/natcpp/",
  "BugReports": "https://github.com/natverse/natcpp/issues",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://natverse.r-universe.dev",
  "Date/Publication": "2026-09-22 10:08:55 UTC",
  "RemoteUrl": "https://github.com/natverse/natcpp",
  "RemoteRef": "HEAD",
  "RemoteSha": "8742508331f10c1703559939e51bf551499d0944",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-09-22 10:18:56 UTC",
    "User": "root"
  },
  "Author": "Gregory Jefferis [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-0587-9355>),\nlibigl contributors [ctb, cph] (bundled libigl fast winding number code\n(MPL-2.0); see src/vendor/README.md)",
  "Maintainer": "Gregory Jefferis <jefferis@gmail.com>",
  "_user": "natverse",
  "_type": "src",
  "_file": "natcpp_0.3.2.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/94d19bb1c9051743483a3285fcca05c15d391463219ebece79a4702da218f887",
  "_filesize": 290075,
  "_sha256": "94d19bb1c9051743483a3285fcca05c15d391463219ebece79a4702da218f887",
  "_expires": "2026-12-31T10:30:34.000Z",
  "_created": "2026-09-22T10:18:56.000Z",
  "_published": "2026-09-22T10:30:40.222Z",
  "_jobs": [
    {
      "job": 106705448135,
      "time": 127,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10688938816"
    },
    {
      "job": 106705448118,
      "time": 184,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10689203871"
    },
    {
      "job": 106705448246,
      "time": 135,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10688493794"
    },
    {
      "job": 106705448186,
      "time": 146,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10688874008"
    },
    {
      "job": 106705448223,
      "time": 100,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10688479106"
    },
    {
      "job": 106705448177,
      "time": 211,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10688639759"
    },
    {
      "job": 106705448352,
      "time": 120,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10689239399"
    },
    {
      "job": 106705448238,
      "time": 333,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10690125301"
    },
    {
      "job": 106704473240,
      "time": 196,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10689078533"
    },
    {
      "job": 106705447138,
      "time": 112,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10689093938"
    },
    {
      "job": 106705447196,
      "time": 224,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10689134030"
    },
    {
      "job": 106705447241,
      "time": 163,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10688468914"
    },
    {
      "job": 106705447439,
      "time": 123,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10688958999"
    },
    {
      "job": 106705447318,
      "time": 281,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10689189244"
    },
    {
      "job": 106705447269,
      "time": 135,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10688294057"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980",
  "_status": "success",
  "_upstream": "https://github.com/natverse/natcpp",
  "_commit": {
    "id": "8742508331f10c1703559939e51bf551499d0944",
    "author": "Gregory Jefferis <jefferis@gmail.com>",
    "committer": "Gregory Jefferis <jefferis@gmail.com>",
    "message": "Start 0.3.2.9000 dev cycle\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n",
    "time": 1790071735
  },
  "_maintainer": {
    "name": "Gregory Jefferis",
    "email": "jefferis@gmail.com",
    "login": "jefferis",
    "linkedin": "in/greg-jefferis-8b865287",
    "orcid": "0000-0002-0587-9355",
    "twitter": "@gsxej",
    "description": "develops @natverse, directs collaborative @flyconnectome group at Dept of Zoology, joint head of Division of Neurobiology @ MRC LMB.",
    "uuid": 23763
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "Rcpp",
      "role": "LinkingTo"
    },
    {
      "package": "RcppEigen",
      "role": "LinkingTo"
    },
    {
      "package": "RcppThread",
      "role": "LinkingTo"
    },
    {
      "package": "Matrix",
      "role": "Imports"
    },
    {
      "package": "methods",
      "role": "Imports"
    },
    {
      "package": "Rcpp",
      "version": ">= 1.0.6",
      "role": "Imports"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "natverse",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-42",
      "n": 12
    },
    {
      "week": "2026-14",
      "n": 2
    },
    {
      "week": "2026-27",
      "n": 1
    },
    {
      "week": "2026-28",
      "n": 4
    },
    {
      "week": "2026-29",
      "n": 2
    },
    {
      "week": "2026-30",
      "n": 1
    },
    {
      "week": "2026-38",
      "n": 8
    },
    {
      "week": "2026-39",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v0.2",
      "date": "2025-10-14"
    },
    {
      "name": "v0.3.0",
      "date": "2026-07-08"
    },
    {
      "name": "v0.3.1",
      "date": "2026-07-20"
    },
    {
      "name": "v0.3.2",
      "date": "2026-09-22"
    }
  ],
  "_topics": [
    "computational-neuroscience",
    "neuroanatomy-toolbox",
    "cpp"
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "jefferis",
      "count": 94,
      "uuid": 23763
    }
  ],
  "_userbio": {
    "uuid": 53296153,
    "type": "organization",
    "name": "natverse",
    "followers": 34,
    "description": "R tools for quantitative neuroanatomy"
  },
  "_downloads": {
    "count": 274,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/natcpp"
  },
  "_devurl": "https://github.com/natverse/natcpp",
  "_pkgdown": "https://natverse.org/natcpp/",
  "_searchresults": 6,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/natcpp.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md"
  ],
  "_homeurl": "https://github.com/natverse/natcpp",
  "_realowner": "natverse",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2021-07-13"
    },
    {
      "version": "0.2",
      "date": "2025-10-14"
    },
    {
      "version": "0.3.0",
      "date": "2026-07-08"
    },
    {
      "version": "0.3.1",
      "date": "2026-07-20"
    }
  ],
  "_exports": [
    "c_coords21dindex",
    "c_EdgeListFromSegList",
    "c_ijkpos",
    "c_listlengths",
    "c_ListofMatrixRows",
    "c_pointsinside",
    "c_seglengths",
    "c_sub2ind",
    "c_topntail",
    "c_topntail_list",
    "c_total_cable",
    "c_weighted_jaccard_dense",
    "c_weighted_jaccard_sparse"
  ],
  "_help": [
    {
      "page": "c_coords21dindex",
      "title": "Convert physical coordinates to 1d indices into image array",
      "topics": [
        "c_coords21dindex"
      ]
    },
    {
      "page": "c_EdgeListFromSegList",
      "title": "Turn a segment list into an edgelist suitable for constructing an ngraph",
      "topics": [
        "c_EdgeListFromSegList"
      ]
    },
    {
      "page": "c_ijkpos",
      "title": "Convert physical coordinates to pixel coordinates",
      "topics": [
        "c_ijkpos"
      ]
    },
    {
      "page": "c_listlengths",
      "title": "A simple function to compute the lengths of the elements of an R list",
      "topics": [
        "c_listlengths"
      ]
    },
    {
      "page": "c_ListofMatrixRows",
      "title": "Convert a matrix into list of row vectors",
      "topics": [
        "c_ListofMatrixRows"
      ]
    },
    {
      "page": "c_pointsinside",
      "title": "Test which points lie inside a triangle mesh (generalised winding number)",
      "topics": [
        "c_pointsinside"
      ]
    },
    {
      "page": "c_seglengths",
      "title": "Compute summed segment lengths or total cable",
      "topics": [
        "c_seglengths",
        "c_total_cable"
      ]
    },
    {
      "page": "c_sub2ind",
      "title": "Find 1D index given n-dimensional indices",
      "topics": [
        "c_sub2ind"
      ]
    },
    {
      "page": "c_topntail",
      "title": "Find the first and last elements of all vectors in a list",
      "topics": [
        "c_topntail",
        "c_topntail_list"
      ]
    },
    {
      "page": "c_weighted_jaccard_dense",
      "title": "Dense weighted Jaccard similarity via C++",
      "topics": [
        "c_weighted_jaccard_dense"
      ]
    },
    {
      "page": "c_weighted_jaccard_sparse",
      "title": "Sparse weighted Jaccard similarity via C++",
      "topics": [
        "c_weighted_jaccard_sparse"
      ]
    }
  ],
  "_readme": "https://github.com/natverse/natcpp/raw/HEAD/README.md",
  "_rundeps": [
    "lattice",
    "Matrix",
    "Rcpp",
    "RcppEigen",
    "RcppThread"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_score": 3.6020599913279625,
  "_indexed": true,
  "_nocasepkg": "natcpp",
  "_universes": [
    "natverse",
    "jefferis"
  ],
  "_previous": "0.3.1.9000",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:21:12.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/3ccb0c7aed85bc4ad721d545ac261fc395c1b3fd0c14bddd2442f38521208763",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:22:09.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/c7d4bdbc8a84a05c18e5e7b376f2a94564e8e92545686986e13b7216ea61e74b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:21:21.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/19f8cc35fb48f3d28f2e4a39e960b53bedfb651892c8140dc7a2e673d47ea1ef",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:21:25.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/dc4fbd55a5d378c8f51ec1fd49957754feba7dd140cb876a18b62eaa0acfbc18",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:23:10.000Z",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/b46830c246c00e921a8d1b6d0c839006aadfa245fb2cfd99faed538441f91f54",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:24:50.000Z",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/152adf3e1b544899a7c653fa70005a6a4ec2b9b0cfb7473baf62586910670014",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:24:51.000Z",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/3ceb7bb8ad4f8469741c52e6baa34d593ec8ff2d1e4699d93bdf93df71b60b1e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:27:56.000Z",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/3be09c57cdad7c6002dea6eba6b3d7f4a71579c046a37a978cfb5b923e08c444",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:21:12.000Z",
      "arch": "emscripten",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/7ea71aaf2afb4ba6ad89c026260bda3703bf0764ec81213139e780cdbd0f35cd",
      "status": "success",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:22:21.000Z",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/098dea895a00133ae44cfb82129462d5bc45b3e5a9ae7091a0792b952296a251",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:20:26.000Z",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/471f8bc19ae8627de4e90442c9518d94272581cedbc07007efa55da23823a838",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:20:25.000Z",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/643bb6bd772c7ac81bd877b8c369e3252046c8d3b01d02e879374814e4fe2b9a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:23:22.000Z",
      "arch": "aarch64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/921df17a9357a3d1efee930486cc62790b0f0f8fd12fb7753f36e7629af52930",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.2.9000",
      "date": "2026-09-22T10:20:33.000Z",
      "arch": "x86_64",
      "commit": "8742508331f10c1703559939e51bf551499d0944",
      "fileid": "https://r2.ropensci.org/7274620737254b4977f82bd09641be01a0da9667888d4da5adf580cdf98f8d0b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/natverse/actions/runs/35715026980"
    }
  ]
}