MyNixOS website logo
Description

Fast C++ Primitives for the 'NeuroAnatomy Toolbox'.

Fast functions implemented in C++ via 'Rcpp' to support the 'NeuroAnatomy Toolbox' ('nat') ecosystem. These functions provide large speed-ups for basic manipulation of neuronal skeletons over pure R functions found in the 'nat' package. The expectation is that end users will not use this package directly, but instead the 'nat' package will automatically use routines from this package when it is available to enable large performance gains.

natcpp

natverse Docs R-CMD-check Lifecycle: experimental

The goal of natcpp is to provide accelerated routines through compiled C++ code for basic functions to support the natverse computational neuroanatomy ecosystem. natcpp is not designed to be used by end users but instead the nat package will use it when available to enable large speed-ups for some primitive operations. End users should therefore not count on the natcpp functions/interface being stable, especially during its initial development.

Our plan is to get this onto CRAN quite quickly so that binary packages will be available to Mac/Windows users who do not have a full C compiler toolchain installed. Once on CRAN, we will try to keep the package simple and stable, with infrequent updates. A development version will be available via the relevant github repository (see below). We do not intend to specify a GitHub remote so these updates will not be installed by default i.e. we will prefer CRAN binaries unless the user intervenes.

Installation

You will be able to install the released version of natcpp from CRAN with:

install.packages("natcpp")

For now please do:

install.packages("natmanager")
natmanager::install(pkgs = 'natverse/natcpp')

Example

As already noted, the intention is that end users will only use the nat package (and that will automagically use natcpp when available). However to prove that everything is set up properly, you could do:

library(nat)
library(natcpp)
topntail(as.seglist(Cell07PNs[[1]]))

Metadata

Version

0.1.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows