package octez-libs

  1. Overview
  2. Docs
A package that contains multiple base libraries used by the Octez suite

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65

doc/src/octez-libs.polynomial/utils.ml.html

Source file utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module Utils = struct
  let bitreverse n' l =
    let r = ref 0 in
    let n = ref n' in
    for _i = 0 to l - 1 do
      r := (!r lsl 1) lor (!n land 1) ;
      n := !n lsr 1
    done ;
    !r

  let reorg_coefficients n logn values =
    for i = 0 to n - 1 do
      let reverse_i = bitreverse i logn in
      if i < reverse_i then (
        let a_i = values.(i) in
        let a_ri = values.(reverse_i) in
        values.(i) <- a_ri ;
        values.(reverse_i) <- a_i)
    done

  let next_power_of_two x =
    let logx = Z.log2 (Z.of_int x) in
    if 1 lsl logx = x then x else 1 lsl (logx + 1)
end
OCaml

Innovation. Community. Security.