{
  "_id": "6a10239facfb0bcc41c8d7a3",
  "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",
  "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-05-13 14:37:13 UTC",
    "User": "root"
  },
  "Author": "Hugh Parsonage [aut, cre],\nSimon Urbanek [ctb] (fastmatch components)",
  "Maintainer": "Hugh Parsonage <hugh.parsonage@gmail.com>",
  "MD5sum": "1739541f8cd64dd8f08b28567bb5eb63",
  "_user": "fastverse",
  "_type": "src",
  "_file": "hutilscpp_0.11.0.tar.gz",
  "_fileid": "6a16a224efd85dbfa46eb3d5227c8e579e599bfd07876ad075bb77a7fee069d5",
  "_filesize": 648599,
  "_sha256": "6a16a224efd85dbfa46eb3d5227c8e579e599bfd07876ad075bb77a7fee069d5",
  "_created": "2026-05-13T14:37:13.000Z",
  "_published": "2026-05-22T09:36:31.373Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77354005304,
      "time": 170,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6973151221"
    },
    {
      "job": 77354005049,
      "time": 159,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6973146172"
    },
    {
      "job": 77354005690,
      "time": 187,
      "config": "linux-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973157944"
    },
    {
      "job": 77354005282,
      "time": 154,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973147660"
    },
    {
      "job": 77354005199,
      "time": 149,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6973141503"
    },
    {
      "job": 77354005167,
      "time": 226,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6973175109"
    },
    {
      "job": 77354005492,
      "time": 160,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973147634"
    },
    {
      "job": 77354005096,
      "time": 270,
      "config": "macos-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973194009"
    },
    {
      "job": 77354004599,
      "time": 182,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973079394"
    },
    {
      "job": 77354004625,
      "time": 101,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7157413119"
    },
    {
      "job": 77354005212,
      "time": 154,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "6973144305"
    },
    {
      "job": 77354005426,
      "time": 192,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "6973159915"
    },
    {
      "job": 77354005276,
      "time": 468,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "6973260887"
    }
  ],
  "_buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_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",
    "uuid": 8111628
  },
  "_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",
    "description": "An Extensible Suite of High-Performance and Low-Dependency Packages for Statistical Computing and Data Manipulation in R"
  },
  "_downloads": {
    "count": 339,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/hutilscpp"
  },
  "_devurl": "https://github.com/hughparsonage/hutilscpp",
  "_searchresults": 109,
  "_topics": [
    "openmp"
  ],
  "_rbuild": "4.6.0",
  "_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": "14.2.0-4ubuntu2~24.04.1",
      "name": "openmp",
      "homepage": "http://gcc.gnu.org/",
      "description": "GCC OpenMP (GOMP) support library"
    }
  ],
  "_score": 5.769820257763592,
  "_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-05-13T14:39:27.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "ba04e964fae11c156b2006f20868d84a69a0998b6c4891cffb2ad499c8035a37",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-05-13T14:39:24.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "c65df64d8155d6ab4a379e7d133ff62cda67dfac454bf622e6f7c8e6529ec270",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-05-13T14:39:39.000Z",
      "distro": "noble",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "68094ed70800b6e56471990eb2b53f18fdd1edd9afe962f86000867f54f9d8db",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.11.0",
      "date": "2026-05-13T14:39:28.000Z",
      "distro": "noble",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "9524240ead99e40ed8b420d86b86fc256093804397d56bdbe956c9159e0bb7a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-05-13T14:39:09.000Z",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "371f85a659e5c545acb3ea9078c834ae375a9306cf0667c7d4c923ae840644d1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-05-13T14:40:07.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "2f48b7eb843a98679e282671dd6650ded4c33eb16e6198b998d4b4e5e0d9e146",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-05-13T14:39:17.000Z",
      "arch": "aarch64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "91e6af308f7d9577154f48c01773026d5f26e6cb9a11b4cb7d78660141699511",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.11.0",
      "date": "2026-05-13T14:40:36.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "53b2e81871f9d7a898e6ec8c27b1f4a5d7673de5c86ce52a6bc1130b46c90114",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-05-13T14:38:42.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "66a7e7af736a45db6a1b661768b4fbe9e5186c51f70022d034ebcf0ac29a931a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-05-13T14:38:41.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "3775f984ae18b8e598f84d2d642498d8cdb53b79868bfaf055321976ace6fac2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.11.0",
      "date": "2026-05-13T14:40:48.000Z",
      "arch": "x86_64",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "79574fae19ed07bb959841cd3b626daad832da80b8f05e28e6e52340578523c8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.11.0",
      "date": "2026-05-22T09:36:03.000Z",
      "arch": "emscripten",
      "commit": "f323b91884d98e63d47a7db7f2bda4b177b60a3c",
      "fileid": "a620433321e796e02064f57897f300a3168560a268cfa7eee2cc5a58dafc5881",
      "status": "success",
      "buildurl": "https://github.com/r-universe/fastverse/actions/runs/25805904533"
    }
  ]
}