CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
README.md103 linesDownload Raw Back to float
1@protobufjs/float
2=================
3[![npm](https://img.shields.io/npm/v/@protobufjs/float.svg)](https://www.npmjs.com/package/@protobufjs/float)
4
5Reads / writes floats / doubles from / to buffers in both modern and ancient browsers. Fast.
6
7API
8---
9
10* **writeFloatLE(val: `number`, buf: `Uint8Array`, pos: `number`)**<br />
11  Writes a 32 bit float to a buffer using little endian byte order.
12
13* **writeFloatBE(val: `number`, buf: `Uint8Array`, pos: `number`)**<br />
14  Writes a 32 bit float to a buffer using big endian byte order.
15
16* **readFloatLE(buf: `Uint8Array`, pos: `number`): `number`**<br />
17  Reads a 32 bit float from a buffer using little endian byte order.
18
19* **readFloatBE(buf: `Uint8Array`, pos: `number`): `number`**<br />
20  Reads a 32 bit float from a buffer using big endian byte order.
21
22* **writeDoubleLE(val: `number`, buf: `Uint8Array`, pos: `number`)**<br />
23  Writes a 64 bit double to a buffer using little endian byte order.
24
25* **writeDoubleBE(val: `number`, buf: `Uint8Array`, pos: `number`)**<br />
26  Writes a 64 bit double to a buffer using big endian byte order.
27
28* **readDoubleLE(buf: `Uint8Array`, pos: `number`): `number`**<br />
29  Reads a 64 bit double from a buffer using little endian byte order.
30
31* **readDoubleBE(buf: `Uint8Array`, pos: `number`): `number`**<br />
32  Reads a 64 bit double from a buffer using big endian byte order.
33
34Performance
35-----------
36There is a simple benchmark included comparing raw read/write performance of this library (float), float's fallback for old browsers, the [ieee754](https://www.npmjs.com/package/ieee754) module and node's [buffer](https://nodejs.org/api/buffer.html). On an i7-2600k running node 6.9.1 it yields:
37
38```
39benchmarking writeFloat performance ...
40
41float x 42,741,625 ops/sec ±1.75% (81 runs sampled)
42float (fallback) x 11,272,532 ops/sec ±1.12% (85 runs sampled)
43ieee754 x 8,653,337 ops/sec ±1.18% (84 runs sampled)
44buffer x 12,412,414 ops/sec ±1.41% (83 runs sampled)
45buffer (noAssert) x 13,471,149 ops/sec ±1.09% (84 runs sampled)
46
47                      float was fastest
48           float (fallback) was 73.5% slower
49                    ieee754 was 79.6% slower
50                     buffer was 70.9% slower
51          buffer (noAssert) was 68.3% slower
52
53benchmarking readFloat performance ...
54
55float x 44,382,729 ops/sec ±1.70% (84 runs sampled)
56float (fallback) x 20,925,938 ops/sec ±0.86% (87 runs sampled)
57ieee754 x 17,189,009 ops/sec ±1.01% (87 runs sampled)
58buffer x 10,518,437 ops/sec ±1.04% (83 runs sampled)
59buffer (noAssert) x 11,031,636 ops/sec ±1.15% (87 runs sampled)
60
61                      float was fastest
62           float (fallback) was 52.5% slower
63                    ieee754 was 61.0% slower
64                     buffer was 76.1% slower
65          buffer (noAssert) was 75.0% slower
66
67benchmarking writeDouble performance ...
68
69float x 38,624,906 ops/sec ±0.93% (83 runs sampled)
70float (fallback) x 10,457,811 ops/sec ±1.54% (85 runs sampled)
71ieee754 x 7,681,130 ops/sec ±1.11% (83 runs sampled)
72buffer x 12,657,876 ops/sec ±1.03% (83 runs sampled)
73buffer (noAssert) x 13,372,795 ops/sec ±0.84% (85 runs sampled)
74
75                      float was fastest
76           float (fallback) was 73.1% slower
77                    ieee754 was 80.1% slower
78                     buffer was 67.3% slower
79          buffer (noAssert) was 65.3% slower
80
81benchmarking readDouble performance ...
82
83float x 40,527,888 ops/sec ±1.05% (84 runs sampled)
84float (fallback) x 18,696,480 ops/sec ±0.84% (86 runs sampled)
85ieee754 x 14,074,028 ops/sec ±1.04% (87 runs sampled)
86buffer x 10,092,367 ops/sec ±1.15% (84 runs sampled)
87buffer (noAssert) x 10,623,793 ops/sec ±0.96% (84 runs sampled)
88
89                      float was fastest
90           float (fallback) was 53.8% slower
91                    ieee754 was 65.3% slower
92                     buffer was 75.1% slower
93          buffer (noAssert) was 73.8% slower
94```
95
96To run it yourself:
97
98```
99$> npm run bench
100```
101
102**License:** [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)
103 
basant307/AI_Governance_Project · CoolFace