zeck 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Peter Ryszkiewicz"
6
6
  ],
7
7
  "description": "A Rust library for compressing and decompressing data using the Zeckendorf representation algorithm",
8
- "version": "2.0.0",
8
+ "version": "2.1.0",
9
9
  "license": "MIT",
10
10
  "repository": {
11
11
  "type": "git",
@@ -15,7 +15,8 @@
15
15
  "zeck_bg.wasm",
16
16
  "zeck.js",
17
17
  "zeck_bg.js",
18
- "zeck.d.ts"
18
+ "zeck.d.ts",
19
+ "LICENSE.txt"
19
20
  ],
20
21
  "main": "zeck.js",
21
22
  "types": "zeck.d.ts",
package/zeck.d.ts CHANGED
@@ -1,5 +1,41 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+ /**
4
+ * Represents a .zeck file with its header information and compressed data.
5
+ *
6
+ * This struct holds all the information needed to reconstruct a .zeck file,
7
+ * including the format version, original file size, endianness flags, and
8
+ * the compressed data itself.
9
+ */
10
+ export interface ZeckFile {
11
+ /**
12
+ * File format version
13
+ */
14
+ version: number;
15
+ /**
16
+ * Original uncompressed file size in bytes
17
+ */
18
+ original_size: number;
19
+ /**
20
+ * Flags byte (bit 0 = big endian, bits 1-7 reserved)
21
+ */
22
+ flags: number;
23
+ /**
24
+ * Compressed data (without header)
25
+ */
26
+ compressed_data: number[];
27
+ }
28
+
29
+ /**
30
+ * Result of best compression attempt, containing the best compressed zeck file and the size for the other endianness attempt, or if neither produced compression (both were larger than the original).
31
+ */
32
+ export type BestCompressionResult = { BigEndianBest: { zeck_file: ZeckFile; le_size: number } } | { LittleEndianBest: { zeck_file: ZeckFile; be_size: number } } | { Neither: { be_size: number; le_size: number } };
33
+
34
+ /**
35
+ * Errors that can occur when parsing or processing .zeck files.
36
+ */
37
+ export type ZeckFormatError = { HeaderTooShort: { actual_length: number; required_length: number } } | { UnsupportedVersion: { found_version: number; supported_version: number } } | { ReservedFlagsSet: { flags: number } } | { CompressionFailed: { original_size: number; be_size: number; le_size: number } } | { DecompressedTooLarge: { expected_size: number; actual_size: number } } | { DataSizeTooLarge: { size: number } };
38
+
3
39
 
4
40
  /**
5
41
  * Returns the number of bits required to represent the given number. Returns 0 if the number is less than or equal to 0.
@@ -17,6 +53,129 @@
17
53
  */
18
54
  export function bit_count_for_number(n: number): number;
19
55
 
56
+ /**
57
+ * Compresses data using the Zeckendorf algorithm with big endian interpretation,
58
+ * and stores the result in a [`ZeckFile`] struct.
59
+ *
60
+ * # ⚠️ Warning
61
+ *
62
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
63
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
64
+ *
65
+ * # Examples
66
+ *
67
+ * ```
68
+ * # use zeck::zeck_file_format::compress::compress_zeck_be;
69
+ * let data = vec![1, 0];
70
+ * match compress_zeck_be(&data) {
71
+ * Ok(zeck_file) => {
72
+ * // Access file information
73
+ * println!("Original size: {} bytes", zeck_file.original_size);
74
+ * println!("Is big endian: {}", zeck_file.is_big_endian());
75
+ * // Serialize to bytes for writing to file
76
+ * let bytes = zeck_file.to_bytes();
77
+ * }
78
+ * Err(e) => {
79
+ * // Handle error (e.g., data size too large)
80
+ * }
81
+ * }
82
+ * ```
83
+ */
84
+ export function compress_zeck_be(data: Uint8Array): ZeckFile;
85
+
86
+ /**
87
+ * Compresses data using the Zeckendorf algorithm with automatic endianness selection,
88
+ * and stores the result in a [`BestCompressionResult`] struct.
89
+ *
90
+ * This function attempts compression with both big endian and little endian interpretations,
91
+ * and returns the best result, or if neither produced compression (both were larger than the original).
92
+ *
93
+ * # ⚠️ Warning
94
+ *
95
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
96
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
97
+ *
98
+ * # Examples
99
+ *
100
+ * ```
101
+ * # use zeck::zeck_file_format::compress::compress_zeck_best;
102
+ * # use zeck::zeck_file_format::compress::BestCompressionResult;
103
+ * # use zeck::zeck_file_format::decompress::decompress_zeck_file;
104
+ * let data = vec![0, 1]; // Compresses best interpreted as a big endian integer
105
+ * match compress_zeck_best(&data) {
106
+ * Ok(best_compression_result) => {
107
+ * match best_compression_result {
108
+ * BestCompressionResult::BigEndianBest { zeck_file, le_size } => {
109
+ * let decompressed = decompress_zeck_file(&zeck_file).unwrap();
110
+ * assert_eq!(decompressed, data);
111
+ * }
112
+ * BestCompressionResult::LittleEndianBest { zeck_file, be_size } => {
113
+ * assert!(false);
114
+ * }
115
+ * BestCompressionResult::Neither { be_size, le_size } => {
116
+ * assert!(false);
117
+ * }
118
+ * }
119
+ * }
120
+ * Err(e) => {
121
+ * assert!(false);
122
+ * }
123
+ * }
124
+ *
125
+ * let data = vec![1, 0]; // Compresses best interpreted as a little endian integer
126
+ * match compress_zeck_best(&data) {
127
+ * Ok(best_compression_result) => {
128
+ * match best_compression_result {
129
+ * BestCompressionResult::BigEndianBest { zeck_file, le_size } => {
130
+ * assert!(false);
131
+ * }
132
+ * BestCompressionResult::LittleEndianBest { zeck_file, be_size } => {
133
+ * let decompressed = decompress_zeck_file(&zeck_file).unwrap();
134
+ * assert_eq!(decompressed, data);
135
+ * }
136
+ * BestCompressionResult::Neither { be_size, le_size } => {
137
+ * assert!(false);
138
+ * }
139
+ * }
140
+ * }
141
+ * Err(e) => {
142
+ * assert!(false);
143
+ * }
144
+ * }
145
+ * ```
146
+ */
147
+ export function compress_zeck_best(data: Uint8Array): BestCompressionResult;
148
+
149
+ /**
150
+ * Compresses data using the Zeckendorf algorithm with little endian interpretation,
151
+ * and stores the result in a [`ZeckFile`] struct.
152
+ *
153
+ * # ⚠️ Warning
154
+ *
155
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
156
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
157
+ *
158
+ * # Examples
159
+ *
160
+ * ```
161
+ * # use zeck::zeck_file_format::compress::compress_zeck_le;
162
+ * let data = vec![1, 0];
163
+ * match compress_zeck_le(&data) {
164
+ * Ok(zeck_file) => {
165
+ * // Access file information
166
+ * println!("Original size: {} bytes", zeck_file.original_size);
167
+ * println!("Compressed size: {} bytes", zeck_file.compressed_data.len());
168
+ * // Serialize to bytes for writing to file
169
+ * let bytes = zeck_file.to_bytes();
170
+ * }
171
+ * Err(e) => {
172
+ * // Handle error (e.g., data size too large)
173
+ * }
174
+ * }
175
+ * ```
176
+ */
177
+ export function compress_zeck_le(data: Uint8Array): ZeckFile;
178
+
20
179
  /**
21
180
  * Effective Fibonacci Index to Fibonacci Index: FI(efi) === efi + 2, where efi is the Effective Fibonacci Index
22
181
  *
@@ -64,9 +223,9 @@ export function ezba_from_ezld(effective_zeckendorf_list_descending: BigUint64Ar
64
223
  *
65
224
  * ```
66
225
  * # use zeck::ezba_to_ezla;
67
- * assert_eq!(ezba_to_ezla(&[0, 0, 0, 0, 0, 0, 0, 0]), vec![]);
68
- * assert_eq!(ezba_to_ezla(&[1, 0, 0, 0, 0, 0, 0, 0]), vec![0]);
69
- * assert_eq!(ezba_to_ezla(&[1, 1, 1, 0, 0, 0, 0, 0]), vec![0, 2, 4]);
226
+ * assert_eq!(ezba_to_ezla(&[0, 0, 0, 0, 0, 0, 0, 0]), vec![] as Vec<u64>);
227
+ * assert_eq!(ezba_to_ezla(&[1, 0, 0, 0, 0, 0, 0, 0]), vec![0u64]);
228
+ * assert_eq!(ezba_to_ezla(&[1, 1, 1, 0, 0, 0, 0, 0]), vec![0u64, 2u64, 4u64]);
70
229
  * ```
71
230
  */
72
231
  export function ezba_to_ezla(ezba_bits: Uint8Array): BigUint64Array;
@@ -194,21 +353,21 @@ export function memoized_slow_fibonacci_recursive(fi: bigint): bigint;
194
353
  * ```
195
354
  * # use zeck::memoized_zeckendorf_list_descending_for_integer;
196
355
  * // Base cases
197
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(0), vec![]);
198
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(1), vec![2]);
199
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(2), vec![3]);
356
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(0), vec![] as Vec<u64>);
357
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(1), vec![2u64]);
358
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(2), vec![3u64]);
200
359
  *
201
360
  * // Small Zeckendorf numbers
202
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(3), vec![4]);
203
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(4), vec![4, 2]);
204
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(5), vec![5]);
205
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(6), vec![5, 2]);
206
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(7), vec![5, 3]);
207
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(8), vec![6]);
208
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(9), vec![6, 2]);
209
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(10), vec![6, 3]);
210
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(11), vec![6, 4]);
211
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(12), vec![6, 4, 2]);
361
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(3), vec![4u64]);
362
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(4), vec![4u64, 2u64]);
363
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(5), vec![5u64]);
364
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(6), vec![5u64, 2u64]);
365
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(7), vec![5u64, 3u64]);
366
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(8), vec![6u64]);
367
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(9), vec![6u64, 2u64]);
368
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(10), vec![6u64, 3u64]);
369
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(11), vec![6u64, 4u64]);
370
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(12), vec![6u64, 4u64, 2u64]);
212
371
  * ```
213
372
  */
214
373
  export function memoized_zeckendorf_list_descending_for_integer(n: bigint): BigUint64Array;
package/zeck_bg.js CHANGED
@@ -3,6 +3,12 @@ export function __wbg_set_wasm(val) {
3
3
  wasm = val;
4
4
  }
5
5
 
6
+ function addToExternrefTable0(obj) {
7
+ const idx = wasm.__externref_table_alloc();
8
+ wasm.__wbindgen_externrefs.set(idx, obj);
9
+ return idx;
10
+ }
11
+
6
12
  function getArrayU64FromWasm0(ptr, len) {
7
13
  ptr = ptr >>> 0;
8
14
  return getBigUint64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
@@ -21,6 +27,11 @@ function getBigUint64ArrayMemory0() {
21
27
  return cachedBigUint64ArrayMemory0;
22
28
  }
23
29
 
30
+ function getStringFromWasm0(ptr, len) {
31
+ ptr = ptr >>> 0;
32
+ return decodeText(ptr, len);
33
+ }
34
+
24
35
  let cachedUint8ArrayMemory0 = null;
25
36
  function getUint8ArrayMemory0() {
26
37
  if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
@@ -29,6 +40,15 @@ function getUint8ArrayMemory0() {
29
40
  return cachedUint8ArrayMemory0;
30
41
  }
31
42
 
43
+ function handleError(f, args) {
44
+ try {
45
+ return f.apply(this, args);
46
+ } catch (e) {
47
+ const idx = addToExternrefTable0(e);
48
+ wasm.__wbindgen_exn_store(idx);
49
+ }
50
+ }
51
+
32
52
  function passArray64ToWasm0(arg, malloc) {
33
53
  const ptr = malloc(arg.length * 8, 8) >>> 0;
34
54
  getBigUint64ArrayMemory0().set(arg, ptr / 8);
@@ -43,6 +63,26 @@ function passArray8ToWasm0(arg, malloc) {
43
63
  return ptr;
44
64
  }
45
65
 
66
+ function takeFromExternrefTable0(idx) {
67
+ const value = wasm.__wbindgen_externrefs.get(idx);
68
+ wasm.__externref_table_dealloc(idx);
69
+ return value;
70
+ }
71
+
72
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
73
+ cachedTextDecoder.decode();
74
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
75
+ let numBytesDecoded = 0;
76
+ function decodeText(ptr, len) {
77
+ numBytesDecoded += len;
78
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
79
+ cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
80
+ cachedTextDecoder.decode();
81
+ numBytesDecoded = len;
82
+ }
83
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
84
+ }
85
+
46
86
  let WASM_VECTOR_LEN = 0;
47
87
 
48
88
  /**
@@ -66,6 +106,159 @@ export function bit_count_for_number(n) {
66
106
  return ret >>> 0;
67
107
  }
68
108
 
109
+ /**
110
+ * Compresses data using the Zeckendorf algorithm with big endian interpretation,
111
+ * and stores the result in a [`ZeckFile`] struct.
112
+ *
113
+ * # ⚠️ Warning
114
+ *
115
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
116
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
117
+ *
118
+ * # Examples
119
+ *
120
+ * ```
121
+ * # use zeck::zeck_file_format::compress::compress_zeck_be;
122
+ * let data = vec![1, 0];
123
+ * match compress_zeck_be(&data) {
124
+ * Ok(zeck_file) => {
125
+ * // Access file information
126
+ * println!("Original size: {} bytes", zeck_file.original_size);
127
+ * println!("Is big endian: {}", zeck_file.is_big_endian());
128
+ * // Serialize to bytes for writing to file
129
+ * let bytes = zeck_file.to_bytes();
130
+ * }
131
+ * Err(e) => {
132
+ * // Handle error (e.g., data size too large)
133
+ * }
134
+ * }
135
+ * ```
136
+ * @param {Uint8Array} data
137
+ * @returns {ZeckFile}
138
+ */
139
+ export function compress_zeck_be(data) {
140
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
141
+ const len0 = WASM_VECTOR_LEN;
142
+ const ret = wasm.compress_zeck_be(ptr0, len0);
143
+ if (ret[2]) {
144
+ throw takeFromExternrefTable0(ret[1]);
145
+ }
146
+ return takeFromExternrefTable0(ret[0]);
147
+ }
148
+
149
+ /**
150
+ * Compresses data using the Zeckendorf algorithm with automatic endianness selection,
151
+ * and stores the result in a [`BestCompressionResult`] struct.
152
+ *
153
+ * This function attempts compression with both big endian and little endian interpretations,
154
+ * and returns the best result, or if neither produced compression (both were larger than the original).
155
+ *
156
+ * # ⚠️ Warning
157
+ *
158
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
159
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
160
+ *
161
+ * # Examples
162
+ *
163
+ * ```
164
+ * # use zeck::zeck_file_format::compress::compress_zeck_best;
165
+ * # use zeck::zeck_file_format::compress::BestCompressionResult;
166
+ * # use zeck::zeck_file_format::decompress::decompress_zeck_file;
167
+ * let data = vec![0, 1]; // Compresses best interpreted as a big endian integer
168
+ * match compress_zeck_best(&data) {
169
+ * Ok(best_compression_result) => {
170
+ * match best_compression_result {
171
+ * BestCompressionResult::BigEndianBest { zeck_file, le_size } => {
172
+ * let decompressed = decompress_zeck_file(&zeck_file).unwrap();
173
+ * assert_eq!(decompressed, data);
174
+ * }
175
+ * BestCompressionResult::LittleEndianBest { zeck_file, be_size } => {
176
+ * assert!(false);
177
+ * }
178
+ * BestCompressionResult::Neither { be_size, le_size } => {
179
+ * assert!(false);
180
+ * }
181
+ * }
182
+ * }
183
+ * Err(e) => {
184
+ * assert!(false);
185
+ * }
186
+ * }
187
+ *
188
+ * let data = vec![1, 0]; // Compresses best interpreted as a little endian integer
189
+ * match compress_zeck_best(&data) {
190
+ * Ok(best_compression_result) => {
191
+ * match best_compression_result {
192
+ * BestCompressionResult::BigEndianBest { zeck_file, le_size } => {
193
+ * assert!(false);
194
+ * }
195
+ * BestCompressionResult::LittleEndianBest { zeck_file, be_size } => {
196
+ * let decompressed = decompress_zeck_file(&zeck_file).unwrap();
197
+ * assert_eq!(decompressed, data);
198
+ * }
199
+ * BestCompressionResult::Neither { be_size, le_size } => {
200
+ * assert!(false);
201
+ * }
202
+ * }
203
+ * }
204
+ * Err(e) => {
205
+ * assert!(false);
206
+ * }
207
+ * }
208
+ * ```
209
+ * @param {Uint8Array} data
210
+ * @returns {BestCompressionResult}
211
+ */
212
+ export function compress_zeck_best(data) {
213
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
214
+ const len0 = WASM_VECTOR_LEN;
215
+ const ret = wasm.compress_zeck_best(ptr0, len0);
216
+ if (ret[2]) {
217
+ throw takeFromExternrefTable0(ret[1]);
218
+ }
219
+ return takeFromExternrefTable0(ret[0]);
220
+ }
221
+
222
+ /**
223
+ * Compresses data using the Zeckendorf algorithm with little endian interpretation,
224
+ * and stores the result in a [`ZeckFile`] struct.
225
+ *
226
+ * # ⚠️ Warning
227
+ *
228
+ * **Compressing or decompressing data larger than 10KB (10,000 bytes) is unstable due to time and memory pressure.**
229
+ * The library may experience performance issues, excessive memory usage, or failures when processing data exceeding this size.
230
+ *
231
+ * # Examples
232
+ *
233
+ * ```
234
+ * # use zeck::zeck_file_format::compress::compress_zeck_le;
235
+ * let data = vec![1, 0];
236
+ * match compress_zeck_le(&data) {
237
+ * Ok(zeck_file) => {
238
+ * // Access file information
239
+ * println!("Original size: {} bytes", zeck_file.original_size);
240
+ * println!("Compressed size: {} bytes", zeck_file.compressed_data.len());
241
+ * // Serialize to bytes for writing to file
242
+ * let bytes = zeck_file.to_bytes();
243
+ * }
244
+ * Err(e) => {
245
+ * // Handle error (e.g., data size too large)
246
+ * }
247
+ * }
248
+ * ```
249
+ * @param {Uint8Array} data
250
+ * @returns {ZeckFile}
251
+ */
252
+ export function compress_zeck_le(data) {
253
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc);
254
+ const len0 = WASM_VECTOR_LEN;
255
+ const ret = wasm.compress_zeck_le(ptr0, len0);
256
+ if (ret[2]) {
257
+ throw takeFromExternrefTable0(ret[1]);
258
+ }
259
+ return takeFromExternrefTable0(ret[0]);
260
+ }
261
+
69
262
  /**
70
263
  * Effective Fibonacci Index to Fibonacci Index: FI(efi) === efi + 2, where efi is the Effective Fibonacci Index
71
264
  *
@@ -127,9 +320,9 @@ export function ezba_from_ezld(effective_zeckendorf_list_descending) {
127
320
  *
128
321
  * ```
129
322
  * # use zeck::ezba_to_ezla;
130
- * assert_eq!(ezba_to_ezla(&[0, 0, 0, 0, 0, 0, 0, 0]), vec![]);
131
- * assert_eq!(ezba_to_ezla(&[1, 0, 0, 0, 0, 0, 0, 0]), vec![0]);
132
- * assert_eq!(ezba_to_ezla(&[1, 1, 1, 0, 0, 0, 0, 0]), vec![0, 2, 4]);
323
+ * assert_eq!(ezba_to_ezla(&[0, 0, 0, 0, 0, 0, 0, 0]), vec![] as Vec<u64>);
324
+ * assert_eq!(ezba_to_ezla(&[1, 0, 0, 0, 0, 0, 0, 0]), vec![0u64]);
325
+ * assert_eq!(ezba_to_ezla(&[1, 1, 1, 0, 0, 0, 0, 0]), vec![0u64, 2u64, 4u64]);
133
326
  * ```
134
327
  * @param {Uint8Array} ezba_bits
135
328
  * @returns {BigUint64Array}
@@ -295,21 +488,21 @@ export function memoized_slow_fibonacci_recursive(fi) {
295
488
  * ```
296
489
  * # use zeck::memoized_zeckendorf_list_descending_for_integer;
297
490
  * // Base cases
298
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(0), vec![]);
299
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(1), vec![2]);
300
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(2), vec![3]);
491
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(0), vec![] as Vec<u64>);
492
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(1), vec![2u64]);
493
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(2), vec![3u64]);
301
494
  *
302
495
  * // Small Zeckendorf numbers
303
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(3), vec![4]);
304
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(4), vec![4, 2]);
305
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(5), vec![5]);
306
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(6), vec![5, 2]);
307
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(7), vec![5, 3]);
308
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(8), vec![6]);
309
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(9), vec![6, 2]);
310
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(10), vec![6, 3]);
311
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(11), vec![6, 4]);
312
- * assert_eq!(memoized_zeckendorf_list_descending_for_integer(12), vec![6, 4, 2]);
496
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(3), vec![4u64]);
497
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(4), vec![4u64, 2u64]);
498
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(5), vec![5u64]);
499
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(6), vec![5u64, 2u64]);
500
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(7), vec![5u64, 3u64]);
501
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(8), vec![6u64]);
502
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(9), vec![6u64, 2u64]);
503
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(10), vec![6u64, 3u64]);
504
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(11), vec![6u64, 4u64]);
505
+ * assert_eq!(memoized_zeckendorf_list_descending_for_integer(12), vec![6u64, 4u64, 2u64]);
313
506
  * ```
314
507
  * @param {bigint} n
315
508
  * @returns {BigUint64Array}
@@ -574,6 +767,15 @@ export function zl_to_ezl(zl) {
574
767
  return v2;
575
768
  }
576
769
 
770
+ export function __wbg___wbindgen_throw_dd24417ed36fc46e(arg0, arg1) {
771
+ throw new Error(getStringFromWasm0(arg0, arg1));
772
+ };
773
+
774
+ export function __wbg_parse_a09a54cf72639456() { return handleError(function (arg0, arg1) {
775
+ const ret = JSON.parse(getStringFromWasm0(arg0, arg1));
776
+ return ret;
777
+ }, arguments) };
778
+
577
779
  export function __wbindgen_init_externref_table() {
578
780
  const table = wasm.__wbindgen_externrefs;
579
781
  const offset = table.grow(4);
package/zeck_bg.wasm CHANGED
Binary file