2.3.67 • Published 4 months ago

@thi.ng/bitfield v2.3.67

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
4 months ago

bitfield

npm version npm downloads Twitter Follow

This project is part of the @thi.ng/umbrella monorepo.

About

1D / 2D bit field implementations.

All implementations are backed by typed arrays. Due to Uint32Array backing the width is always rounded to a multiple of 32.

Status

STABLE - used in production

Search or submit any issues for this package

Related packages

  • @thi.ng/adjacency - Sparse & bitwise adjacency matrices and related functions for directed & undirected graphs

Installation

yarn add @thi.ng/bitfield

ES module import:

<script type="module" src="https://cdn.skypack.dev/@thi.ng/bitfield"></script>

Skypack documentation

For Node.js REPL:

# with flag only for < v16
node --experimental-repl-await

> const bitfield = await import("@thi.ng/bitfield");

Package sizes (gzipped, pre-treeshake): ESM: 1.17 KB

Dependencies

API

Generated API docs

import { BitField, BitMatrix } from "@thi.ng/bitfield";

// size always rounded up to a multiple of 32
const field = new BitField(16);

field.setAt(0);

// if 2nd arg is false, the bit will be cleared
// setAt returns non-zero value if bit was previously set
field.setAt(31, true);
// 0

// returns non-zero value if bit is set
field.at(0)
// -2147483648

field.at(1)
// 0

field.toString();
// 10000000000000000000000000000001

field.resize(64)
// 1000000000000000000000000000000100000000000000000000000000000000

const mat = new BitMatrix(8, 32);
for(let i = 0; i < 8; i++) mat.setAt(i, i);

mat.at(7, 7);
// 16777216

mat.toString();
// 10000000000000000000000000000000
// 01000000000000000000000000000000
// 00100000000000000000000000000000
// 00010000000000000000000000000000
// 00001000000000000000000000000000
// 00000100000000000000000000000000
// 00000010000000000000000000000000
// 00000001000000000000000000000000

Authors

Karsten Schmidt

If this project contributes to an academic publication, please cite it as:

@misc{thing-bitfield,
  title = "@thi.ng/bitfield",
  author = "Karsten Schmidt",
  note = "https://thi.ng/bitfield",
  year = 2016
}

License

© 2016 - 2021 Karsten Schmidt // Apache Software License 2.0

2.3.67

4 months ago

2.3.66

5 months ago

2.3.64

5 months ago

2.3.63

5 months ago

2.3.65

5 months ago

2.3.62

5 months ago

2.3.61

5 months ago

2.3.60

6 months ago

2.3.59

6 months ago

2.3.58

7 months ago

2.3.57

7 months ago

2.3.56

8 months ago

2.3.55

8 months ago

2.3.54

8 months ago

2.3.53

8 months ago

2.3.49

11 months ago

2.3.46

12 months ago

2.3.45

12 months ago

2.3.48

11 months ago

2.3.47

12 months ago

2.3.42

1 year ago

2.3.44

12 months ago

2.3.43

1 year ago

2.3.52

9 months ago

2.3.51

10 months ago

2.3.50

11 months ago

2.3.41

1 year ago

2.3.40

1 year ago

2.3.39

1 year ago

2.3.38

1 year ago

2.3.37

1 year ago

2.3.36

1 year ago

2.3.35

1 year ago

2.3.34

1 year ago

2.3.33

1 year ago

2.3.32

1 year ago

2.3.31

1 year ago

2.3.30

1 year ago

2.3.29

1 year ago

2.3.28

1 year ago

2.3.27

1 year ago

2.3.26

1 year ago

2.3.24

1 year ago

2.3.25

1 year ago

2.3.23

1 year ago

2.3.22

1 year ago

2.3.21

1 year ago

2.3.20

1 year ago

2.3.17

1 year ago

2.3.19

1 year ago

2.3.18

1 year ago

2.3.16

1 year ago

2.3.15

1 year ago

2.3.13

2 years ago

2.3.14

2 years ago

2.3.12

2 years ago

2.3.11

2 years ago

2.3.10

2 years ago

2.3.9

2 years ago

2.3.8

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.4

2 years ago

2.3.3

2 years ago

2.3.6

2 years ago

2.3.5

2 years ago

2.3.7

2 years ago

2.2.37

2 years ago

2.2.38

2 years ago

2.2.35

2 years ago

2.2.36

2 years ago

2.2.33

2 years ago

2.2.34

2 years ago

2.2.31

2 years ago

2.2.32

2 years ago

2.2.30

2 years ago

2.2.29

2 years ago

2.2.28

2 years ago

2.2.27

2 years ago

2.2.26

2 years ago

2.2.24

2 years ago

2.2.25

2 years ago

2.2.22

2 years ago

2.2.23

2 years ago

2.2.19

2 years ago

2.2.20

2 years ago

2.2.21

2 years ago

2.2.17

3 years ago

2.2.18

2 years ago

2.2.15

3 years ago

2.2.16

3 years ago

2.2.13

3 years ago

2.2.14

3 years ago

2.2.11

3 years ago

2.2.7

3 years ago

2.2.12

3 years ago

2.2.10

3 years ago

2.2.9

3 years ago

2.2.8

3 years ago

2.2.6

3 years ago

2.2.5

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.4

3 years ago

2.1.8

3 years ago

2.1.7

3 years ago

2.1.6

3 years ago

2.1.5

3 years ago

2.0.8

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.0

4 years ago

2.0.7

4 years ago

2.0.4

4 years ago

2.0.6

4 years ago

2.0.3

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

0.4.12

4 years ago

0.4.11

4 years ago

0.4.10

4 years ago

0.4.9

4 years ago

0.4.8

4 years ago

0.4.7

4 years ago

0.4.6

4 years ago

0.4.5

4 years ago

0.4.4

4 years ago

0.4.0

4 years ago

0.3.30

4 years ago

0.3.29

4 years ago

0.3.28

4 years ago

0.3.27

5 years ago

0.3.26

5 years ago

0.3.25

5 years ago

0.3.24

5 years ago

0.3.23

5 years ago

0.3.22

5 years ago

0.3.21

5 years ago

0.3.20

5 years ago

0.3.19

5 years ago

0.3.18

5 years ago

0.3.17

5 years ago

0.3.16

5 years ago

0.3.15

5 years ago

0.3.14

5 years ago

0.3.13

5 years ago

0.3.12

5 years ago

0.3.11

5 years ago

0.3.10

5 years ago

0.3.9

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

6 years ago

0.2.1

6 years ago

0.2.0

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago