Login
7 branches 0 tags
Benjamin Vincent Schulenburg Added a script that runs benchmarks 01b303f 3 years ago 626 Commits
nujel / stdlib / bitmanip.nuj
;; Nujel - Copyright (C) 2020-2021 - Benjamin Vincent Schulenburg
;; This project uses the MIT license, a copy should be included under /LICENSE
;;
;; Some functions manipulating binary date

[defn lognand l
  "Returns the Nand of its arguments"
  [lognot [apply logand l]]]

[defn bit-set?! [i]
  "Returns a function that checks if bit I is set in the provided number"
  [def mask [ash 1 i]]
  [fn [α]
      [not [zero? [logand α mask]]]]]

[defn bit-clear?! [i]
  "Returns a function that checks if bit I is clear in the provided number"
  [def mask [ash 1 i]]
  [fn [α]
      [zero? [logand α mask]]]]