{
  "_id": "6a53290b9b92047c28d55fe7",
  "Package": "hutilscpp",
  "Title": "Miscellaneous Functions in C++",
  "Version": "0.11.0",
  "Authors@R": "c(person(given = \"Hugh\",\nfamily = \"Parsonage\",\nrole = c(\"aut\", \"cre\"),\nemail = \"hugh.parsonage@gmail.com\"),\nperson(given = \"Simon\",\nfamily = \"Urbanek\",\nrole = \"ctb\",\ncomment = \"fastmatch components\"))",
  "Description": "Provides utility functions that are simply, frequently\nused, but may require higher performance that what can be\nobtained from base R. Incidentally provides support for\n'reverse geocoding', such as matching a point with its nearest\nneighbour in another array. Used as a complement to package\n'hutils' by sacrificing compilation or installation time for\nhigher running speeds. The name is a portmanteau of the author\nand 'Rcpp'.",
  "URL": "https://github.com/hughparsonage/hutilscpp",
  "BugReports": "https://github.com/hughparsonage/hutilscpp/issues",
  "License": "GPL-2",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Config/pak/sysreqs": "zlib1g-dev",
  "Repository": "https://fastverse.r-universe.dev",
  "Date/Publication": "2026-05-13 12:21:09 UTC",
  "RemoteUrl": "https://github.com/hughparsonage/hutilscpp",
  "RemoteRef": "HEAD",
  "RemoteSha": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-07-12 05:36:31 UTC",
    "User": "root"
  },
  "Author": "Hugh Parsonage [aut, cre],\nSimon Urbanek [ctb] (fastmatch components)",
  "Maintainer": "Hugh Parsonage <hugh.parsonage@gmail.com>",
  "_user": "fastverse",
  "_type": "src",
  "_file": "hutilscpp_0.11.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/03331dab755e1fdcb5b72bb580ebfe8323222419c5f1fa7a63e6e205ba7294f0",
  "_filesize": 648645,
  "_sha256": "03331dab755e1fdcb5b72bb580ebfe8323222419c5f1fa7a63e6e205ba7294f0",
  "_expires": "2026-10-20T05:41:29.000Z",
  "_created": "2026-07-12T05:36:31.000Z",
  "_published": "2026-07-12T05:41:31.677Z",
  "_jobs": [
    {
      "job": 86619697142,
      "time": 182,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8256548125"
    },
    {
      "job": 86619697134,
      "time": 201,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8256549892"
    },
    {
      "job": 86619697130,
      "time": 190,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256549032"
    },
    {
      "job": 86619697153,
      "time": 170,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256545890"
    },
    {
      "job": 86619697132,
      "time": 131,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8256540378"
    },
    {
      "job": 86619697127,
      "time": 207,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8256550780"
    },
    {
      "job": 86619697157,
      "time": 106,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256537149"
    },
    {
      "job": 86619697131,
      "time": 250,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256557055"
    },
    {
      "job": 86619458090,
      "time": 194,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256522673"
    },
    {
      "job": 86619697152,
      "time": 114,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8256538210"
    },
    {
      "job": 86619697123,
      "time": 146,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8256542361"
    },
    {
      "job": 86619697149,
      "time": 252,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8256556801"
    },
    {
      "job": 86619697133,
      "time": 164,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8256544887"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164",
  "_status": "success",
  "_upstream": "https://github.com/hughparsonage/hutilscpp",
  "_commit": {
    "id": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
    "author": "HughParsonage <hugh.parsonage@gmail.com>",
    "committer": "HughParsonage <hugh.parsonage@gmail.com>",
    "message": "Fix ALTREP NA counts and add mean_isna\n",
    "time": 1778674869
  },
  "_maintainer": {
    "name": "Hugh Parsonage",
    "email": "hugh.parsonage@gmail.com",
    "login": "hughparsonage",
    "description": "",
    "uuid": 8111628
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.3.0",
      "role": "Depends"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "hutils",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "bench",
      "role": "Suggests"
    },
    {
      "package": "parallel",
      "role": "Suggests"
    },
    {
      "package": "TeXCheckR",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "tinytest",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    }
  ],
  "_owner": "hughparsonage",
  "_selfowned": false,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2026-19",
      "n": 16
    },
    {
      "week": "2026-20",
      "n": 8
    }
  ],
  "_tags": [],
  "_stars": 9,
  "_contributors": [
    {
      "user": "hughparsonage",
      "count": 820,
      "uuid": 8111628
    }
  ],
  "_userbio": {
    "uuid": 105517888,
    "type": "organization",
    "name": "fastverse",
    "followers": 28,
    "description": "An Extensible Suite of High-Performance and Low-Dependency Packages for Statistical Computing and Data Manipulation in R"
  },
  "_downloads": {
    "count": 462,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/hutilscpp"
  },
  "_devurl": "https://github.com/hughparsonage/hutilscpp",
  "_searchresults": 92,
  "_topics": [
    "openmp"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/hutilscpp.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/hughparsonage/hutilscpp",
  "_realowner": "hughparsonage",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2019-02-03"
    },
    {
      "version": "0.2.0",
      "date": "2019-08-20"
    },
    {
      "version": "0.3.0",
      "date": "2019-10-16"
    },
    {
      "version": "0.5.0",
      "date": "2020-09-18"
    },
    {
      "version": "0.5.1",
      "date": "2020-10-14"
    },
    {
      "version": "0.5.2",
      "date": "2020-10-20"
    },
    {
      "version": "0.7.1",
      "date": "2021-05-31"
    },
    {
      "version": "0.7.2",
      "date": "2021-06-14"
    },
    {
      "version": "0.8.0",
      "date": "2021-07-24"
    },
    {
      "version": "0.8.1",
      "date": "2021-09-06"
    },
    {
      "version": "0.9.0",
      "date": "2022-04-12"
    },
    {
      "version": "0.9.1",
      "date": "2022-04-17"
    },
    {
      "version": "0.9.2",
      "date": "2022-09-29"
    },
    {
      "version": "0.9.3",
      "date": "2022-10-07"
    },
    {
      "version": "0.10.2",
      "date": "2023-10-11"
    },
    {
      "version": "0.10.4",
      "date": "2023-12-04"
    },
    {
      "version": "0.10.5",
      "date": "2024-07-21"
    },
    {
      "version": "0.10.6",
      "date": "2024-11-03"
    },
    {
      "version": "0.10.7",
      "date": "2025-01-08"
    },
    {
      "version": "0.10.8",
      "date": "2025-03-06"
    },
    {
      "version": "0.10.10",
      "date": "2025-03-22"
    }
  ],
  "_exports": [
    "abs_diff",
    "allNA",
    "and3",
    "and3s",
    "anyOutside",
    "are_even",
    "as_integer_if_safe",
    "bench_system_time",
    "character2integer",
    "coalesce0",
    "COALESCE0",
    "Comma",
    "count_logical",
    "cumsum_reset",
    "diam",
    "divisible",
    "divisible16",
    "divisible2",
    "every_int",
    "finp",
    "fmatchp",
    "fnotinp",
    "helper",
    "Implies",
    "is_constant",
    "is_sorted",
    "isntConstant",
    "isntSorted",
    "match_nrst_haversine",
    "max_abs_diff",
    "mean_isna",
    "minmax",
    "ModeC",
    "or3",
    "or3s",
    "pmax0",
    "pmax3",
    "pmaxC",
    "pmaxV",
    "pmin0",
    "pmin3",
    "pminC",
    "pminV",
    "poleInaccessibility2",
    "poleInaccessibility3",
    "range_rcpp",
    "squish",
    "sum_and3s",
    "sum_isna",
    "sum_or3s",
    "thinner",
    "unique_fmatch",
    "uniqueN_fmatch",
    "which_are_even",
    "which_first",
    "which_firstNA",
    "which_last",
    "which_lastNA",
    "which_true_onwards",
    "which3",
    "whichs",
    "xor2"
  ],
  "_help": [
    {
      "page": "abs_diff",
      "title": "Absolute difference",
      "topics": [
        "abs_diff",
        "max_abs_diff"
      ]
    },
    {
      "page": "allNA",
      "title": "Is a vector empty?",
      "topics": [
        "allNA"
      ]
    },
    {
      "page": "anyOutside",
      "title": "Are any values outside the interval specified?",
      "topics": [
        "anyOutside"
      ]
    },
    {
      "page": "are_even",
      "title": "Are elements of a vector even?",
      "topics": [
        "are_even",
        "which_are_even"
      ]
    },
    {
      "page": "as_integer_if_safe",
      "title": "Coerce from double to integer if safe",
      "topics": [
        "as_integer_if_safe"
      ]
    },
    {
      "page": "bench_system_time",
      "title": "Evaluate time of computation",
      "topics": [
        "bench_system_time"
      ]
    },
    {
      "page": "character2integer",
      "title": "Character to numeric",
      "topics": [
        "character2integer"
      ]
    },
    {
      "page": "coalesce0",
      "title": "Convenience function for coalescing to zero",
      "topics": [
        "COALESCE0",
        "coalesce0"
      ]
    },
    {
      "page": "Comma",
      "title": "Faster version of 'scales::comma'",
      "topics": [
        "Comma"
      ]
    },
    {
      "page": "count_logical",
      "title": "Count logicals",
      "topics": [
        "count_logical"
      ]
    },
    {
      "page": "cumsum_reset",
      "title": "Cumulative sum unless reset",
      "topics": [
        "cumsum_reset"
      ]
    },
    {
      "page": "diam",
      "title": "What is the diameter of set of points?",
      "topics": [
        "diam",
        "thinner"
      ]
    },
    {
      "page": "divisible",
      "title": "Divisibility",
      "topics": [
        "divisible",
        "divisible16",
        "divisible2"
      ]
    },
    {
      "page": "every_int",
      "title": "Every integer",
      "topics": [
        "every_int"
      ]
    },
    {
      "page": "fmatchp",
      "title": "Parallel fastmatching",
      "topics": [
        "finp",
        "fmatchp",
        "fnotinp"
      ]
    },
    {
      "page": "helper",
      "title": "Helper",
      "topics": [
        "helper"
      ]
    },
    {
      "page": "Implies",
      "title": "Implies",
      "topics": [
        "Implies"
      ]
    },
    {
      "page": "is_constant",
      "title": "Is a vector constant?",
      "topics": [
        "isntConstant",
        "is_constant"
      ]
    },
    {
      "page": "is_sorted",
      "title": "Is a vector sorted?",
      "topics": [
        "isntSorted",
        "is_sorted"
      ]
    },
    {
      "page": "logical3",
      "title": "Vectorized logical with support for short-circuits",
      "topics": [
        "and3",
        "logical3",
        "or3"
      ]
    },
    {
      "page": "logical3s",
      "title": "Complex logical expressions",
      "topics": [
        "and3s",
        "logical3s",
        "or3s"
      ]
    },
    {
      "page": "match_nrst_haversine",
      "title": "Match coordinates to nearest coordinates",
      "topics": [
        "match_nrst_haversine"
      ]
    },
    {
      "page": "mean_isna",
      "title": "Proportion of missing values",
      "topics": [
        "mean_isna"
      ]
    },
    {
      "page": "minmax",
      "title": "Minimum and maximum",
      "topics": [
        "minmax"
      ]
    },
    {
      "page": "ModeC",
      "title": "Most common element",
      "topics": [
        "ModeC"
      ]
    },
    {
      "page": "pmaxC",
      "title": "Parallel maximum/minimum",
      "topics": [
        "pmax0",
        "pmax3",
        "pmaxC",
        "pmaxV",
        "pmin0",
        "pmin3",
        "pminC",
        "pminV"
      ]
    },
    {
      "page": "poleInaccessibility",
      "title": "Find a binary pole of inaccessibility",
      "topics": [
        "poleInaccessibility",
        "poleInaccessibility2",
        "poleInaccessibility3"
      ]
    },
    {
      "page": "range_rcpp",
      "title": "Range C++",
      "topics": [
        "range_rcpp"
      ]
    },
    {
      "page": "squish",
      "title": "Squish into a range",
      "topics": [
        "squish"
      ]
    },
    {
      "page": "sum_and3s",
      "title": "Sum of logical expressions",
      "topics": [
        "sum_and3s",
        "sum_or3s"
      ]
    },
    {
      "page": "sum_isna",
      "title": "Number of missing values",
      "topics": [
        "sum_isna"
      ]
    },
    {
      "page": "unique_fmatch",
      "title": "Distinct elements",
      "topics": [
        "uniqueN_fmatch",
        "unique_fmatch"
      ]
    },
    {
      "page": "which_first",
      "title": "Where does a logical expression first return 'TRUE'?",
      "topics": [
        "which_first",
        "which_last"
      ]
    },
    {
      "page": "which_firstNA",
      "title": "First/last position of missing values",
      "topics": [
        "which_firstNA",
        "which_lastNA"
      ]
    },
    {
      "page": "which_true_onwards",
      "title": "At which point are all values true onwards",
      "topics": [
        "which_true_onwards"
      ]
    },
    {
      "page": "which3",
      "title": "which of three vectors are the elements (all, any) true?",
      "topics": [
        "which3"
      ]
    },
    {
      "page": "whichs",
      "title": "Separated which",
      "topics": [
        "whichs"
      ]
    },
    {
      "page": "xor2",
      "title": "Exclusive or",
      "topics": [
        "xor2"
      ]
    }
  ],
  "_readme": "https://github.com/hughparsonage/hutilscpp/raw/HEAD/README.md",
  "_rundeps": [
    "data.table",
    "fastmatch",
    "hutils",
    "magrittr"
  ],
  "_sysdeps": [
    {
      "shlib": "libgomp",
      "package": "libgomp1",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_score": 5.696181587168523,
  "_indexed": false,
  "_nocasepkg": "hutilscpp",
  "_universes": [
    "fastverse"
  ],
  "_indexurl": "https://hughparsonage.r-universe.dev/hutilscpp",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:58.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/5ebc687630c3cdf1c1011ca2cff87cf99ea18583b8076927b4bb2f3c790293b9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-07-12T05:39:02.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/0c123b38e68b1fc14d5cd2bdaacfadc1c900314dfb40b0b30936f0999e51c772",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-07-12T05:39:10.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/d22aa60921fe225afefb7823e3832621395d14b03042d1d7c07546c755797051",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:52.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/d907a216406f4f4bd4ffb447e59533915a534771df8b416239ff864e43377014",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:21.000Z",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/f3c45dfa23706a5934f86c45a01101633c29f4ecfc532e3686ab890f45d1a944",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-07-12T05:39:12.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/985816a2c5e5d45457ee24a51029c0a36e5fd7ea8d48d798fd00d120f77c23be",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:06.000Z",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/da992c36c59558a66d229692b0efaf9959890ad5dea48fe49bbebf48b2df27be",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-07-12T05:39:32.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/05bf76cc99931254a68eb2033f2f62fe0731841708532cd9949828ae237fb635",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:42.000Z",
      "arch": "emscripten",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/3544576a88b790902b09bbad612cddbdc3caa827112fa971970a5b27197a306a",
      "status": "success",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-07-12T05:37:45.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/83722b3816e1da115ef3df1cc1e9e87ce421e9e751926bfc38b8b4f978ad77f6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:18.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/72dc0321052486e60d5f01f954e211b0ccc62d7c6d82dd75d6392aff68e41cb1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-07-12T05:38:02.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "https://r2.ropensci.org/5dae10e8f2e4acb9edf31a7dadf60f030cf8a8e9b6274a191366f46e0fdeefb2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/29181340164"
    }
  ]
}