@graphty/graph-format 0.0.0 → 0.2.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/LICENSE +21 -0
- package/README.md +216 -43
- package/dist/graph-format.d.ts +1 -0
- package/dist/graph-format.d.ts.map +1 -0
- package/dist/graph-format.js +15798 -0
- package/dist/graph-format.js.map +1 -0
- package/dist/src/builder/arena.d.ts +85 -0
- package/dist/src/builder/arena.d.ts.map +1 -0
- package/dist/src/builder/arena.js +154 -0
- package/dist/src/builder/arena.js.map +1 -0
- package/dist/src/builder/compact.d.ts +515 -0
- package/dist/src/builder/compact.d.ts.map +1 -0
- package/dist/src/builder/compact.js +1553 -0
- package/dist/src/builder/compact.js.map +1 -0
- package/dist/src/builder/counting-sort.d.ts +96 -0
- package/dist/src/builder/counting-sort.d.ts.map +1 -0
- package/dist/src/builder/counting-sort.js +430 -0
- package/dist/src/builder/counting-sort.js.map +1 -0
- package/dist/src/builder/freeze.d.ts +72 -0
- package/dist/src/builder/freeze.d.ts.map +1 -0
- package/dist/src/builder/freeze.js +548 -0
- package/dist/src/builder/freeze.js.map +1 -0
- package/dist/src/builder/graph-builder.d.ts +602 -0
- package/dist/src/builder/graph-builder.d.ts.map +1 -0
- package/dist/src/builder/graph-builder.js +1940 -0
- package/dist/src/builder/graph-builder.js.map +1 -0
- package/dist/src/builder/options.d.ts +16 -0
- package/dist/src/builder/options.d.ts.map +1 -0
- package/dist/src/builder/options.js +21 -0
- package/dist/src/builder/options.js.map +1 -0
- package/dist/src/columns/bitmap.d.ts +96 -0
- package/dist/src/columns/bitmap.d.ts.map +1 -0
- package/dist/src/columns/bitmap.js +184 -0
- package/dist/src/columns/bitmap.js.map +1 -0
- package/dist/src/columns/column.d.ts +220 -0
- package/dist/src/columns/column.d.ts.map +1 -0
- package/dist/src/columns/column.js +2109 -0
- package/dist/src/columns/column.js.map +1 -0
- package/dist/src/columns/dictionary.d.ts +60 -0
- package/dist/src/columns/dictionary.d.ts.map +1 -0
- package/dist/src/columns/dictionary.js +102 -0
- package/dist/src/columns/dictionary.js.map +1 -0
- package/dist/src/columns/growable.d.ts +198 -0
- package/dist/src/columns/growable.d.ts.map +1 -0
- package/dist/src/columns/growable.js +296 -0
- package/dist/src/columns/growable.js.map +1 -0
- package/dist/src/columns/infer.d.ts +121 -0
- package/dist/src/columns/infer.d.ts.map +1 -0
- package/dist/src/columns/infer.js +268 -0
- package/dist/src/columns/infer.js.map +1 -0
- package/dist/src/columns/remap.d.ts +143 -0
- package/dist/src/columns/remap.d.ts.map +1 -0
- package/dist/src/columns/remap.js +588 -0
- package/dist/src/columns/remap.js.map +1 -0
- package/dist/src/columns/table.d.ts +184 -0
- package/dist/src/columns/table.d.ts.map +1 -0
- package/dist/src/columns/table.js +485 -0
- package/dist/src/columns/table.js.map +1 -0
- package/dist/src/constants.d.ts +34 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +79 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/errors.d.ts +76 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +32 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/ids/edge-id-index.d.ts +77 -0
- package/dist/src/ids/edge-id-index.d.ts.map +1 -0
- package/dist/src/ids/edge-id-index.js +155 -0
- package/dist/src/ids/edge-id-index.js.map +1 -0
- package/dist/src/ids/node-id-map.d.ts +280 -0
- package/dist/src/ids/node-id-map.d.ts.map +1 -0
- package/dist/src/ids/node-id-map.js +1139 -0
- package/dist/src/ids/node-id-map.js.map +1 -0
- package/dist/src/ids/string-store.d.ts +219 -0
- package/dist/src/ids/string-store.d.ts.map +1 -0
- package/dist/src/ids/string-store.js +526 -0
- package/dist/src/ids/string-store.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +29 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/populate/from-csr.d.ts +61 -0
- package/dist/src/populate/from-csr.d.ts.map +1 -0
- package/dist/src/populate/from-csr.js +706 -0
- package/dist/src/populate/from-csr.js.map +1 -0
- package/dist/src/populate/from-edge-arrays.d.ts +51 -0
- package/dist/src/populate/from-edge-arrays.d.ts.map +1 -0
- package/dist/src/populate/from-edge-arrays.js +217 -0
- package/dist/src/populate/from-edge-arrays.js.map +1 -0
- package/dist/src/populate/from-records.d.ts +51 -0
- package/dist/src/populate/from-records.d.ts.map +1 -0
- package/dist/src/populate/from-records.js +447 -0
- package/dist/src/populate/from-records.js.map +1 -0
- package/dist/src/snapshot/derived.d.ts +211 -0
- package/dist/src/snapshot/derived.d.ts.map +1 -0
- package/dist/src/snapshot/derived.js +1254 -0
- package/dist/src/snapshot/derived.js.map +1 -0
- package/dist/src/snapshot/graph-meta.d.ts +23 -0
- package/dist/src/snapshot/graph-meta.d.ts.map +1 -0
- package/dist/src/snapshot/graph-meta.js +159 -0
- package/dist/src/snapshot/graph-meta.js.map +1 -0
- package/dist/src/snapshot/graph-snapshot.d.ts +509 -0
- package/dist/src/snapshot/graph-snapshot.d.ts.map +1 -0
- package/dist/src/snapshot/graph-snapshot.js +1247 -0
- package/dist/src/snapshot/graph-snapshot.js.map +1 -0
- package/dist/src/snapshot/hash.d.ts +90 -0
- package/dist/src/snapshot/hash.d.ts.map +1 -0
- package/dist/src/snapshot/hash.js +228 -0
- package/dist/src/snapshot/hash.js.map +1 -0
- package/dist/src/snapshot/queries.d.ts +74 -0
- package/dist/src/snapshot/queries.d.ts.map +1 -0
- package/dist/src/snapshot/queries.js +131 -0
- package/dist/src/snapshot/queries.js.map +1 -0
- package/dist/src/snapshot/validate.d.ts +192 -0
- package/dist/src/snapshot/validate.d.ts.map +1 -0
- package/dist/src/snapshot/validate.js +990 -0
- package/dist/src/snapshot/validate.js.map +1 -0
- package/dist/src/snapshot/views.d.ts +274 -0
- package/dist/src/snapshot/views.d.ts.map +1 -0
- package/dist/src/snapshot/views.js +856 -0
- package/dist/src/snapshot/views.js.map +1 -0
- package/dist/src/types/builder.d.ts +456 -0
- package/dist/src/types/builder.d.ts.map +1 -0
- package/dist/src/types/builder.js +11 -0
- package/dist/src/types/builder.js.map +1 -0
- package/dist/src/types/columns.d.ts +615 -0
- package/dist/src/types/columns.d.ts.map +1 -0
- package/dist/src/types/columns.js +14 -0
- package/dist/src/types/columns.js.map +1 -0
- package/dist/src/types/index.d.ts +14 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +11 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/internal.d.ts +172 -0
- package/dist/src/types/internal.d.ts.map +1 -0
- package/dist/src/types/internal.js +13 -0
- package/dist/src/types/internal.js.map +1 -0
- package/dist/src/types/snapshot.d.ts +801 -0
- package/dist/src/types/snapshot.d.ts.map +1 -0
- package/dist/src/types/snapshot.js +14 -0
- package/dist/src/types/snapshot.js.map +1 -0
- package/dist/src/types/wire.d.ts +196 -0
- package/dist/src/types/wire.d.ts.map +1 -0
- package/dist/src/types/wire.js +8 -0
- package/dist/src/types/wire.js.map +1 -0
- package/dist/src/util/mask.d.ts +55 -0
- package/dist/src/util/mask.d.ts.map +1 -0
- package/dist/src/util/mask.js +71 -0
- package/dist/src/util/mask.js.map +1 -0
- package/dist/src/util/options.d.ts +22 -0
- package/dist/src/util/options.d.ts.map +1 -0
- package/dist/src/util/options.js +49 -0
- package/dist/src/util/options.js.map +1 -0
- package/dist/src/util/shared-buffers.d.ts +42 -0
- package/dist/src/util/shared-buffers.d.ts.map +1 -0
- package/dist/src/util/shared-buffers.js +52 -0
- package/dist/src/util/shared-buffers.js.map +1 -0
- package/dist/src/util/typed-array.d.ts +205 -0
- package/dist/src/util/typed-array.d.ts.map +1 -0
- package/dist/src/util/typed-array.js +289 -0
- package/dist/src/util/typed-array.js.map +1 -0
- package/dist/src/wire/bytes.d.ts +69 -0
- package/dist/src/wire/bytes.d.ts.map +1 -0
- package/dist/src/wire/bytes.js +361 -0
- package/dist/src/wire/bytes.js.map +1 -0
- package/dist/src/wire/carried-views.d.ts +111 -0
- package/dist/src/wire/carried-views.d.ts.map +1 -0
- package/dist/src/wire/carried-views.js +286 -0
- package/dist/src/wire/carried-views.js.map +1 -0
- package/dist/src/wire/from-wire.d.ts +144 -0
- package/dist/src/wire/from-wire.d.ts.map +1 -0
- package/dist/src/wire/from-wire.js +1425 -0
- package/dist/src/wire/from-wire.js.map +1 -0
- package/dist/src/wire/to-wire.d.ts +171 -0
- package/dist/src/wire/to-wire.d.ts.map +1 -0
- package/dist/src/wire/to-wire.js +652 -0
- package/dist/src/wire/to-wire.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +72 -7
- package/src/builder/arena.ts +192 -0
- package/src/builder/compact.ts +1811 -0
- package/src/builder/counting-sort.ts +506 -0
- package/src/builder/freeze.ts +689 -0
- package/src/builder/graph-builder.ts +2264 -0
- package/src/builder/options.ts +29 -0
- package/src/columns/bitmap.ts +196 -0
- package/src/columns/column.ts +2574 -0
- package/src/columns/dictionary.ts +114 -0
- package/src/columns/growable.ts +350 -0
- package/src/columns/infer.ts +285 -0
- package/src/columns/remap.ts +663 -0
- package/src/columns/table.ts +568 -0
- package/src/constants.ts +89 -0
- package/src/errors.ts +115 -0
- package/src/ids/edge-id-index.ts +179 -0
- package/src/ids/node-id-map.ts +1340 -0
- package/src/ids/string-store.ts +589 -0
- package/src/index.ts +139 -0
- package/src/lib-resizable-array-buffer.d.ts +34 -0
- package/src/populate/from-csr.ts +802 -0
- package/src/populate/from-edge-arrays.ts +257 -0
- package/src/populate/from-records.ts +536 -0
- package/src/snapshot/derived.ts +1486 -0
- package/src/snapshot/graph-meta.ts +167 -0
- package/src/snapshot/graph-snapshot.ts +1503 -0
- package/src/snapshot/hash.ts +241 -0
- package/src/snapshot/queries.ts +136 -0
- package/src/snapshot/validate.ts +1108 -0
- package/src/snapshot/views.ts +943 -0
- package/src/types/builder.ts +480 -0
- package/src/types/columns.ts +727 -0
- package/src/types/index.ts +14 -0
- package/src/types/internal.ts +195 -0
- package/src/types/snapshot.ts +886 -0
- package/src/types/wire.ts +207 -0
- package/src/util/mask.ts +89 -0
- package/src/util/options.ts +57 -0
- package/src/util/shared-buffers.ts +56 -0
- package/src/util/typed-array.ts +371 -0
- package/src/wire/bytes.ts +440 -0
- package/src/wire/carried-views.ts +327 -0
- package/src/wire/from-wire.ts +1690 -0
- package/src/wire/to-wire.ts +755 -0
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The concrete GraphSnapshot class (design sections 3, 5.8, 7, 9.3 and 11.4) and its factory
|
|
3
|
+
* `createSnapshot(parts)`, plus the boundary helpers `isGraphSnapshot` / `equalsTopology` (design
|
|
4
|
+
* section 7.5) and the arena helpers a GPU consumer binds segments with (section 10.3).
|
|
5
|
+
*
|
|
6
|
+
* The object is frozen with `Object.freeze` so `snapshot.rowPtr = x` throws in strict mode; every
|
|
7
|
+
* lazily populated member (the identity permutations of design section 3.1, the view cache of
|
|
8
|
+
* section 7.2, the checksum records of section 5.8, the content hash, the edge id index) lives in
|
|
9
|
+
* one mutable state record reachable only through a private field, which `Object.freeze` does not
|
|
10
|
+
* reach. `arcToEdge` / `edgeToArc` are prototype getters that materialise an identity permutation on
|
|
11
|
+
* first access outside the arena (never on the wire, never in `byteLength()`); `rowPtr`, `colIdx`
|
|
12
|
+
* and `weights` are plain data properties so hot loops pay nothing. Every method that reads the core
|
|
13
|
+
* throws `E_DETACHED` once the core buffer was transferred away (`detached` is derived:
|
|
14
|
+
* `rowPtr.length === 0`).
|
|
15
|
+
*
|
|
16
|
+
* Views are computed by views.ts, queries by queries.ts, derived graphs by derived.ts (which returns
|
|
17
|
+
* SnapshotParts that this module wraps), invariant checks by validate.ts and hashes by hash.ts. The
|
|
18
|
+
* wire methods (`toWire`, `toBytes`, `toByteChunks`, `transferables`) call the wire module directly;
|
|
19
|
+
* the wire module imports this one too, and the cycle is safe because each side reaches the other
|
|
20
|
+
* only through hoisted function declarations invoked at call time, never at module load.
|
|
21
|
+
*/
|
|
22
|
+
import { SNAPSHOT_BRAND } from "../constants.js";
|
|
23
|
+
import { type ArenaLayout, type AttributeTable, type ByteLengthOptions, type ColumnInput, type ContractOptions, type CooView, type DegreeOrderOptions, type DegreeOrderView, type DerivedGraph, type EdgeId, type EdgeListView, type EdgeMask, type F32, type F64, type GraphMeta, type GraphSnapshotContract, type NodeIdMap, type NodeMask, type ReverseView, type SimplifyOptions, type SnapshotFlags, type ToBytesOptions, type ToUndirectedOptions, type ToWireOptions, type TypedArrayData, type U8, type U32, type ValidateOptions, type ViewName, type WireSnapshot } from "../types/index.js";
|
|
24
|
+
import { type SnapshotParts, type ViewCache } from "../types/internal.js";
|
|
25
|
+
/**
|
|
26
|
+
* The own enumerable property every snapshot carries whose value is a function, so that
|
|
27
|
+
* `structuredClone(snapshot)` and `postMessage(snapshot)` throw `DataCloneError` immediately (design
|
|
28
|
+
* section 7.5; the structured clone algorithm refuses functions and visits enumerable own
|
|
29
|
+
* properties only).
|
|
30
|
+
*/
|
|
31
|
+
export declare const CLONE_GUARD_KEY = "__graphtyNoStructuredClone";
|
|
32
|
+
export { EMPTY_GRAPH_META } from "./graph-meta.js";
|
|
33
|
+
/**
|
|
34
|
+
* The frozen graph (design section 3): a CSR core over 4-byte typed arrays, the id map, the
|
|
35
|
+
* attribute tables, the flags and a per-instance view cache. Topology, counts, flags, id map and
|
|
36
|
+
* immutable columns never change after construction (invariant I17); the column SET of `nodes` /
|
|
37
|
+
* `edges` / `graph` and the CONTENTS of columns declared mutable are mutable side tables (design
|
|
38
|
+
* section 5.8). Every view is a pure function of the core, memoised once and SHARED: a call returns
|
|
39
|
+
* the cached array itself, so writing into a view is a contract violation; call `.slice()` for
|
|
40
|
+
* scratch. Index-taking queries are total for in-range arguments and unchecked otherwise (design
|
|
41
|
+
* section 11.1). Instances come from `createSnapshot()` (the builder, `fromCsr`, `fromWire` and the
|
|
42
|
+
* derived-graph methods); `isGraphSnapshot()` recognises them structurally by brand and
|
|
43
|
+
* formatVersion.
|
|
44
|
+
*/
|
|
45
|
+
export declare class GraphSnapshot implements GraphSnapshotContract {
|
|
46
|
+
/** Symbol.for brand read by isGraphSnapshot() (design section 7.5). */
|
|
47
|
+
readonly [SNAPSHOT_BRAND]: true;
|
|
48
|
+
/** Process-unique identity of the CORE; shared by withColumns() snapshots (design section 5.8). */
|
|
49
|
+
readonly serial: number;
|
|
50
|
+
/** Debugging aid supplied at freeze. */
|
|
51
|
+
readonly label: string | null;
|
|
52
|
+
/** The data-model major (design section 13.5). */
|
|
53
|
+
readonly formatVersion: 1;
|
|
54
|
+
/** Whether the graph is directed. */
|
|
55
|
+
readonly directed: boolean;
|
|
56
|
+
/** n (invariant I3). */
|
|
57
|
+
readonly nodeCount: number;
|
|
58
|
+
/** Number of logical edges (invariant I13). */
|
|
59
|
+
readonly edgeCount: number;
|
|
60
|
+
/** colIdx.length (invariants I6, I7). */
|
|
61
|
+
readonly arcCount: number;
|
|
62
|
+
/** Logical edges with source === target. */
|
|
63
|
+
readonly selfLoopCount: number;
|
|
64
|
+
/** nodeCount + 1 row offsets (invariant I1). */
|
|
65
|
+
readonly rowPtr: U32;
|
|
66
|
+
/** Target node index of each arc, sorted within each row (invariants I2, I4). */
|
|
67
|
+
readonly colIdx: U32;
|
|
68
|
+
/** arcCount f32 weights; null when unweighted. */
|
|
69
|
+
readonly weights: F32 | null;
|
|
70
|
+
/** Flags kernels branch on (design section 3.8). */
|
|
71
|
+
readonly flags: SnapshotFlags;
|
|
72
|
+
/** The id map (design section 4). */
|
|
73
|
+
readonly ids: NodeIdMap;
|
|
74
|
+
/** Node attribute table, rowCount === nodeCount. */
|
|
75
|
+
readonly nodes: AttributeTable;
|
|
76
|
+
/** Edge attribute table, rowCount === edgeCount, indexed by logical edge. */
|
|
77
|
+
readonly edges: AttributeTable;
|
|
78
|
+
/** Graph attribute table, rowCount === 1. */
|
|
79
|
+
readonly graph: AttributeTable;
|
|
80
|
+
/** Extension tables keyed by name (design section 5.10). */
|
|
81
|
+
readonly extensions: ReadonlyMap<string, AttributeTable>;
|
|
82
|
+
/** Graph-level metadata (design section 5.9). */
|
|
83
|
+
readonly meta: GraphMeta;
|
|
84
|
+
/** The arena holding the core arrays, or null (design section 10.3). */
|
|
85
|
+
readonly arena: ArenaLayout | null;
|
|
86
|
+
/**
|
|
87
|
+
* The lazily populated members (design section 5.8): defined as a NON-enumerable own property in
|
|
88
|
+
* the constructor (`declare` keeps tsc from emitting a field), so `Object.keys(snapshot)` lists
|
|
89
|
+
* exactly the public fields plus the documented clone guard, and JSON / spread / structured
|
|
90
|
+
* clone never walk the view cache.
|
|
91
|
+
*/
|
|
92
|
+
private readonly state;
|
|
93
|
+
/**
|
|
94
|
+
* rowPtr.length === 0: the core buffer was transferred away (design section 9.4). Derived from the
|
|
95
|
+
* array state, never a stored bit, so every holder of the same core agrees.
|
|
96
|
+
* @returns true when detached
|
|
97
|
+
*/
|
|
98
|
+
get detached(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Logical edge of every arc (invariant I5); an identity permutation is materialised on first
|
|
101
|
+
* access as a separate 4-byte-aligned array outside the arena. GPU code tests
|
|
102
|
+
* `flags.arcToEdgeIsIdentity` before reading it.
|
|
103
|
+
* @returns arcCount entries; E_DETACHED after a consuming transfer
|
|
104
|
+
*/
|
|
105
|
+
get arcToEdge(): U32;
|
|
106
|
+
/**
|
|
107
|
+
* The arc holding the declared orientation of every logical edge (invariant I5); an identity
|
|
108
|
+
* permutation is materialised on first access outside the arena.
|
|
109
|
+
* @returns edgeCount entries; E_DETACHED after a consuming transfer
|
|
110
|
+
*/
|
|
111
|
+
get edgeToArc(): U32;
|
|
112
|
+
/**
|
|
113
|
+
* The out-arc range of a node: [rowPtr[u], rowPtr[u + 1]]. Allocates a tuple; hot loops read
|
|
114
|
+
* rowPtr directly.
|
|
115
|
+
* @param u - the node index
|
|
116
|
+
* @returns the half-open arc range as [start, end]
|
|
117
|
+
*/
|
|
118
|
+
outArcs(u: number): readonly [start: number, end: number];
|
|
119
|
+
/**
|
|
120
|
+
* rowPtr[u + 1] - rowPtr[u]: the out-arc count (a self-loop counted once).
|
|
121
|
+
* @param u - the node index
|
|
122
|
+
* @returns the out-degree
|
|
123
|
+
*/
|
|
124
|
+
outDegreeOf(u: number): number;
|
|
125
|
+
/**
|
|
126
|
+
* Binary search for the first arc u -> v (the lowest logical edge index among parallels).
|
|
127
|
+
* @param u - the source node index
|
|
128
|
+
* @param v - the target node index
|
|
129
|
+
* @returns the arc index, or INVALID_INDEX when absent
|
|
130
|
+
*/
|
|
131
|
+
findArc(u: number, v: number): number;
|
|
132
|
+
/**
|
|
133
|
+
* Whether an arc u -> v exists.
|
|
134
|
+
* @param u - the source node index
|
|
135
|
+
* @param v - the target node index
|
|
136
|
+
* @returns findArc(u, v) !== INVALID_INDEX
|
|
137
|
+
*/
|
|
138
|
+
hasArc(u: number, v: number): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* The half-open arc range [lo, hi) of every arc u -> v; empty when lo === hi. Allocates a tuple.
|
|
141
|
+
* @param u - the source node index
|
|
142
|
+
* @param v - the target node index
|
|
143
|
+
* @returns the range as [lo, hi]
|
|
144
|
+
*/
|
|
145
|
+
arcsBetween(u: number, v: number): readonly [lo: number, hi: number];
|
|
146
|
+
/**
|
|
147
|
+
* Number of parallel arcs u -> v.
|
|
148
|
+
* @param u - the source node index
|
|
149
|
+
* @param v - the target node index
|
|
150
|
+
* @returns hi - lo of arcsBetween(u, v)
|
|
151
|
+
*/
|
|
152
|
+
multiplicity(u: number, v: number): number;
|
|
153
|
+
/**
|
|
154
|
+
* The row containing an arc: O(1) through the cached coo() view, else a binary search on rowPtr.
|
|
155
|
+
* @param a - the arc index
|
|
156
|
+
* @returns the source node index
|
|
157
|
+
*/
|
|
158
|
+
arcSource(a: number): number;
|
|
159
|
+
/**
|
|
160
|
+
* Declared source of a logical edge: arcSource(edgeToArc[e]).
|
|
161
|
+
* @param e - the logical edge index
|
|
162
|
+
* @returns the source node index
|
|
163
|
+
*/
|
|
164
|
+
edgeSource(e: number): number;
|
|
165
|
+
/**
|
|
166
|
+
* Declared target of a logical edge: colIdx[edgeToArc[e]].
|
|
167
|
+
* @param e - the logical edge index
|
|
168
|
+
* @returns the target node index
|
|
169
|
+
*/
|
|
170
|
+
edgeTarget(e: number): number;
|
|
171
|
+
/**
|
|
172
|
+
* Lookup through the role "id" edge column, backed by a Map built on first call and rebuilt when the
|
|
173
|
+
* column is replaced or a mutable id column's version changes (design section 4.6).
|
|
174
|
+
* @param id - the edge id
|
|
175
|
+
* @returns the logical edge index, or INVALID_INDEX on a miss or when no id column exists
|
|
176
|
+
*/
|
|
177
|
+
edgeIndexOf(id: EdgeId): number;
|
|
178
|
+
/**
|
|
179
|
+
* The in-adjacency, rows sorted by source; the forward arrays themselves when undirected. Cached
|
|
180
|
+
* and shared.
|
|
181
|
+
* @returns the reverse view
|
|
182
|
+
*/
|
|
183
|
+
reverse(): ReverseView;
|
|
184
|
+
/**
|
|
185
|
+
* Per-arc COO form; src is the only new array. Cached and shared.
|
|
186
|
+
* @returns the COO view
|
|
187
|
+
*/
|
|
188
|
+
coo(): CooView;
|
|
189
|
+
/**
|
|
190
|
+
* Every logical edge once in declared orientation. Cached and shared.
|
|
191
|
+
* @returns the edge list view
|
|
192
|
+
*/
|
|
193
|
+
edgeList(): EdgeListView;
|
|
194
|
+
/**
|
|
195
|
+
* rowPtr differences materialised; a self-loop counted once. Cached and shared: call `.slice()`
|
|
196
|
+
* before writing.
|
|
197
|
+
* @returns Uint32Array(n)
|
|
198
|
+
*/
|
|
199
|
+
outDegree(): U32;
|
|
200
|
+
/**
|
|
201
|
+
* Arcs targeting each node, via reverse().rowPtr; the same object as outDegree() when undirected.
|
|
202
|
+
* Cached and shared: call `.slice()` before writing.
|
|
203
|
+
* @returns Uint32Array(n)
|
|
204
|
+
*/
|
|
205
|
+
inDegree(): U32;
|
|
206
|
+
/**
|
|
207
|
+
* Graph-theoretic degree (NetworkX convention, design section 3.4): in + out when directed; out
|
|
208
|
+
* plus self-loops when undirected. Cached and shared: call `.slice()` before writing.
|
|
209
|
+
* @returns Uint32Array(n)
|
|
210
|
+
*/
|
|
211
|
+
degree(): U32;
|
|
212
|
+
/**
|
|
213
|
+
* Row sums of weights (a self-loop arc counted once); outDegree widened when unweighted. F64 for
|
|
214
|
+
* CPU precision; may be 0 for a node with out-arcs. Cached and shared: call `.slice()` before
|
|
215
|
+
* writing.
|
|
216
|
+
* @returns Float64Array(n)
|
|
217
|
+
*/
|
|
218
|
+
weightedOutDegree(): F64;
|
|
219
|
+
/**
|
|
220
|
+
* Weight sums over incoming arcs; the same object as weightedOutDegree() when undirected. Cached
|
|
221
|
+
* and shared: call `.slice()` before writing.
|
|
222
|
+
* @returns Float64Array(n)
|
|
223
|
+
*/
|
|
224
|
+
weightedInDegree(): F64;
|
|
225
|
+
/**
|
|
226
|
+
* NetworkX weighted degree: weightedOutDegree + (directed ? weightedInDegree : selfLoopWeight), so
|
|
227
|
+
* the sum is 2 * totalWeight() when undirected. Cached and shared: call `.slice()` before writing.
|
|
228
|
+
* @returns Float64Array(n)
|
|
229
|
+
*/
|
|
230
|
+
weightedDegree(): F64;
|
|
231
|
+
/**
|
|
232
|
+
* Sum of weights over each node's self-loop arcs (selfLoopsPerNode widened when unweighted).
|
|
233
|
+
* Cached and shared: call `.slice()` before writing.
|
|
234
|
+
* @returns Float64Array(n)
|
|
235
|
+
*/
|
|
236
|
+
selfLoopWeight(): F64;
|
|
237
|
+
/**
|
|
238
|
+
* Sum of weights over logical edges (each undirected edge once). Cached.
|
|
239
|
+
* @returns the total weight
|
|
240
|
+
*/
|
|
241
|
+
totalWeight(): number;
|
|
242
|
+
/**
|
|
243
|
+
* The arcs a with colIdx[a] === row(a), found by binary search per row. Cached and shared: call
|
|
244
|
+
* `.slice()` before writing.
|
|
245
|
+
* @returns Uint32Array(selfLoopCount)
|
|
246
|
+
*/
|
|
247
|
+
selfLoopArcs(): U32;
|
|
248
|
+
/**
|
|
249
|
+
* Self-loop arcs per node. Cached and shared: call `.slice()` before writing.
|
|
250
|
+
* @returns Uint32Array(n)
|
|
251
|
+
*/
|
|
252
|
+
selfLoopsPerNode(): U32;
|
|
253
|
+
/**
|
|
254
|
+
* Point query: self-loop arcs at one node, O(log d).
|
|
255
|
+
* @param u - the node index
|
|
256
|
+
* @returns the count
|
|
257
|
+
*/
|
|
258
|
+
selfLoopsAt(u: number): number;
|
|
259
|
+
/**
|
|
260
|
+
* For every arc, the arc storing the opposite orientation of the same edge (a self-loop maps to
|
|
261
|
+
* itself); the lockstep walk of design section 6.4. Undirected only. Cached and shared: call
|
|
262
|
+
* `.slice()` before writing.
|
|
263
|
+
* @returns Uint32Array(arcCount); E_DIRECTED on a directed snapshot
|
|
264
|
+
*/
|
|
265
|
+
mate(): U32;
|
|
266
|
+
/**
|
|
267
|
+
* Nodes ordered by descending out-degree of the forward or reverse adjacency with the cuGraph tier
|
|
268
|
+
* boundaries. Both variants cached; on an undirected snapshot they are the same object.
|
|
269
|
+
* @param options - which adjacency's degree to order by
|
|
270
|
+
* @returns the permutation and its tier offsets
|
|
271
|
+
*/
|
|
272
|
+
degreeOrder(options?: DegreeOrderOptions): DegreeOrderView;
|
|
273
|
+
/**
|
|
274
|
+
* Whether the arc set is closed under reversal with equal weights (forward row v equals reverse row
|
|
275
|
+
* v for every v); true without work when undirected. Cached.
|
|
276
|
+
* @returns true when symmetric
|
|
277
|
+
*/
|
|
278
|
+
isSymmetric(): boolean;
|
|
279
|
+
/**
|
|
280
|
+
* Compute a set of views eagerly (inside freeze() through FreezeOptions.prepare, or off the critical
|
|
281
|
+
* path).
|
|
282
|
+
* @param views - the views to materialise
|
|
283
|
+
* @returns this snapshot
|
|
284
|
+
*/
|
|
285
|
+
prepare(views: readonly ViewName[]): this;
|
|
286
|
+
/**
|
|
287
|
+
* Release every cached view (and every identity permutation materialised on demand) and every
|
|
288
|
+
* cached `gpuView()` f32 copy of an f64 column (design section 7.2); they are recomputed on
|
|
289
|
+
* demand. The checksum records of the dropped views are dropped with them.
|
|
290
|
+
*/
|
|
291
|
+
dropCaches(): void;
|
|
292
|
+
/**
|
|
293
|
+
* Which views are resident.
|
|
294
|
+
* @returns the names of the cached views, in the fixed ViewName order
|
|
295
|
+
*/
|
|
296
|
+
cachedViews(): readonly ViewName[];
|
|
297
|
+
/**
|
|
298
|
+
* Every directed edge becomes undirected; reciprocal pairs collapse to one edge keeping the lower
|
|
299
|
+
* index's row (keep-first). Returns `{ snapshot: this, null maps }` on an undirected snapshot.
|
|
300
|
+
* @param options - reciprocal filtering and the weight reducer
|
|
301
|
+
* @returns the derived graph
|
|
302
|
+
*/
|
|
303
|
+
toUndirected(options?: ToUndirectedOptions): DerivedGraph;
|
|
304
|
+
/**
|
|
305
|
+
* Orientation of every edge swapped: the reverse view's arrays become the core. Returns this on an
|
|
306
|
+
* undirected snapshot.
|
|
307
|
+
* @returns the derived graph (same node and edge spaces)
|
|
308
|
+
*/
|
|
309
|
+
transpose(): DerivedGraph;
|
|
310
|
+
/**
|
|
311
|
+
* One edge per (u, v) group (parallels are adjacent by invariant I4), survivor = lowest index;
|
|
312
|
+
* flags.multigraph is false afterwards.
|
|
313
|
+
* @param options - reducers and self-loop policy
|
|
314
|
+
* @returns the derived graph
|
|
315
|
+
*/
|
|
316
|
+
simplified(options?: SimplifyOptions): DerivedGraph;
|
|
317
|
+
/**
|
|
318
|
+
* Every edge with source !== target.
|
|
319
|
+
* @returns the derived graph
|
|
320
|
+
*/
|
|
321
|
+
withoutSelfLoops(): DerivedGraph;
|
|
322
|
+
/**
|
|
323
|
+
* Keep the logical edges whose mask bit is set.
|
|
324
|
+
* @param keep - packed bitmap over logical edges; E_MASK_LENGTH when shorter than ceil(edgeCount / 32) words
|
|
325
|
+
* @returns the derived graph
|
|
326
|
+
*/
|
|
327
|
+
filterEdges(keep: EdgeMask): DerivedGraph;
|
|
328
|
+
/**
|
|
329
|
+
* The subgraph induced by a node selection: an index list (order = new index order; E_INDEX_RANGE
|
|
330
|
+
* for an out-of-range or repeated index) or a packed mask (ascending order; E_MASK_LENGTH when
|
|
331
|
+
* short). Edges with both endpoints kept.
|
|
332
|
+
* @param selection - the node indices or a mask
|
|
333
|
+
* @returns the derived graph
|
|
334
|
+
*/
|
|
335
|
+
inducedSubgraph(selection: U32 | {
|
|
336
|
+
readonly mask: NodeMask;
|
|
337
|
+
}): DerivedGraph;
|
|
338
|
+
/**
|
|
339
|
+
* Contract the nodes of each partition block into one node (design section 7.3).
|
|
340
|
+
* @param partition - one label per node; E_PARTITION for a wrong length or an INVALID_INDEX label
|
|
341
|
+
* @param options - weight reducer, self-loop and parallel policies, column reducers
|
|
342
|
+
* @returns the derived graph with blockSizes and an identity id map
|
|
343
|
+
*/
|
|
344
|
+
contract(partition: U32, options?: ContractOptions): DerivedGraph;
|
|
345
|
+
/**
|
|
346
|
+
* Permute the node space: perm[newIndex] = oldIndex; the id map follows; edge order is preserved.
|
|
347
|
+
* @param perm - a permutation of 0..n-1; E_INVALID_PERMUTATION otherwise
|
|
348
|
+
* @returns the derived graph
|
|
349
|
+
*/
|
|
350
|
+
relabel(perm: U32): DerivedGraph;
|
|
351
|
+
/**
|
|
352
|
+
* A new snapshot object sharing the core, the id map and the serial with a CLONED column set plus
|
|
353
|
+
* the given columns (the only operation that clones the column set).
|
|
354
|
+
* @param nodes - node columns to add, keyed by name
|
|
355
|
+
* @param edges - edge columns to add, keyed by name
|
|
356
|
+
* @returns the new snapshot
|
|
357
|
+
*/
|
|
358
|
+
withColumns(nodes?: Readonly<Record<string, TypedArrayData | ColumnInput>>, edges?: Readonly<Record<string, TypedArrayData | ColumnInput>>): GraphSnapshot;
|
|
359
|
+
/**
|
|
360
|
+
* Resident bytes of the core (an identity permutation counts zero even when materialised), plus
|
|
361
|
+
* the side structures selected by the options.
|
|
362
|
+
* @param options - which side structures to include
|
|
363
|
+
* @returns the byte count
|
|
364
|
+
*/
|
|
365
|
+
byteLength(options?: ByteLengthOptions): number;
|
|
366
|
+
/**
|
|
367
|
+
* A 64-bit content hash of the core arrays (two 32-bit FNV-1a lanes) as 16 hex characters,
|
|
368
|
+
* computed lazily and cached (design section 9.3).
|
|
369
|
+
* @returns the hash
|
|
370
|
+
*/
|
|
371
|
+
contentHash(): string;
|
|
372
|
+
/**
|
|
373
|
+
* The distinct, exclusively owned backing buffers: the postMessage transfer list (design section
|
|
374
|
+
* 9.1). Buffers shared with another holder (a withColumns() sibling, a derived graph sharing the
|
|
375
|
+
* node table) are excluded.
|
|
376
|
+
* @returns the buffers
|
|
377
|
+
*/
|
|
378
|
+
transferables(): ArrayBuffer[];
|
|
379
|
+
/**
|
|
380
|
+
* The plain-object wire form (design section 9.1): a JSON-serialisable manifest plus the backing
|
|
381
|
+
* buffers. With `transfer: true` only exclusively owned buffers are listed as transferables and
|
|
382
|
+
* shared ones are copied.
|
|
383
|
+
* @param options - transfer mode, views and columns to include
|
|
384
|
+
* @returns the wire snapshot
|
|
385
|
+
*/
|
|
386
|
+
toWire(options?: ToWireOptions): WireSnapshot;
|
|
387
|
+
/**
|
|
388
|
+
* The GSNP byte container as one contiguous buffer (design section 9.2).
|
|
389
|
+
* @param options - views to include
|
|
390
|
+
* @returns the container bytes
|
|
391
|
+
*/
|
|
392
|
+
toBytes(options?: ToBytesOptions): U8;
|
|
393
|
+
/**
|
|
394
|
+
* The GSNP container as a sequence of chunks (design section 9.2): the header plus manifest,
|
|
395
|
+
* then one chunk per non-empty segment.
|
|
396
|
+
* @param options - views to include
|
|
397
|
+
* @returns the chunks
|
|
398
|
+
*/
|
|
399
|
+
toByteChunks(options?: ToBytesOptions): Iterable<U8>;
|
|
400
|
+
/**
|
|
401
|
+
* Check the invariants (design section 11.4): the recorded checksums first when `checksum` is set
|
|
402
|
+
* (a mutated frozen array is the most useful diagnosis, details.reason "checksum"; "no-checksum"
|
|
403
|
+
* when none were recorded), then "structure" or "full" (default) per the level table of design
|
|
404
|
+
* section 9.5. Throws E_INVALID_SNAPSHOT with details.invariant and the location on the first
|
|
405
|
+
* violation.
|
|
406
|
+
* @param options - level and checksum comparison
|
|
407
|
+
*/
|
|
408
|
+
validate(options?: ValidateOptions): void;
|
|
409
|
+
/**
|
|
410
|
+
* Throw E_DETACHED when the core was transferred away.
|
|
411
|
+
*/
|
|
412
|
+
private assertAttached;
|
|
413
|
+
/**
|
|
414
|
+
* Return the cached value of a view, computing and recording it on first use.
|
|
415
|
+
* @param name - the view name
|
|
416
|
+
* @param compute - the computation
|
|
417
|
+
* @returns the cached value
|
|
418
|
+
*/
|
|
419
|
+
private cached;
|
|
420
|
+
/**
|
|
421
|
+
* Compute both self-loop views in one pass and seed the slot the caller did not ask for.
|
|
422
|
+
* @returns the two views
|
|
423
|
+
*/
|
|
424
|
+
private materialiseSelfLoops;
|
|
425
|
+
/**
|
|
426
|
+
* Record the digests of a freshly materialised view when checksums are on.
|
|
427
|
+
* @param name - the view name
|
|
428
|
+
* @param value - the view
|
|
429
|
+
*/
|
|
430
|
+
private recordView;
|
|
431
|
+
/**
|
|
432
|
+
* Compare every recorded checksum with the current bytes (design section 5.8).
|
|
433
|
+
*/
|
|
434
|
+
private verifyChecksums;
|
|
435
|
+
/**
|
|
436
|
+
* The edge endpoints in declared orientation for the derived-graph functions: the cached edge list
|
|
437
|
+
* when resident, else a fresh one that is NOT cached (derived graphs must not grow the source's
|
|
438
|
+
* resident size, design section 7.3).
|
|
439
|
+
* @returns an edge list view
|
|
440
|
+
*/
|
|
441
|
+
private edgeEndpoints;
|
|
442
|
+
/**
|
|
443
|
+
* Wrap derived parts into a DerivedGraph, creating the new snapshot (with this snapshot's checksum
|
|
444
|
+
* setting) or returning this for the identity cases.
|
|
445
|
+
* @param derived - the derived parts
|
|
446
|
+
* @returns the derived graph
|
|
447
|
+
*/
|
|
448
|
+
private wrapDerived;
|
|
449
|
+
/**
|
|
450
|
+
* Materialise one named view (the prepare() dispatch).
|
|
451
|
+
* @param name - the view name
|
|
452
|
+
*/
|
|
453
|
+
private materialiseView;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Create a snapshot from prepared parts (design section 6.3 step 12): the constructor freezes the
|
|
457
|
+
* object, records checksums when `parts.checksum` is set and allocates the per-instance view cache.
|
|
458
|
+
* @param parts - the parts; I1-I13 established by the producer, O(1) length rules checked here
|
|
459
|
+
* @returns the frozen snapshot
|
|
460
|
+
*/
|
|
461
|
+
export declare function createSnapshot(parts: SnapshotParts): GraphSnapshot;
|
|
462
|
+
/**
|
|
463
|
+
* Structural check for a snapshot (design section 7.5): the SNAPSHOT_BRAND property plus the
|
|
464
|
+
* formatVersion, never instanceof, so a duplicated package copy still interoperates.
|
|
465
|
+
* @param x - any value
|
|
466
|
+
* @returns true when x is a GraphSnapshot of this format version
|
|
467
|
+
*/
|
|
468
|
+
export declare function isGraphSnapshot(x: unknown): x is GraphSnapshot;
|
|
469
|
+
/**
|
|
470
|
+
* Compare the core arrays and id maps of two snapshots element by element (design section 7.5):
|
|
471
|
+
* directedness, counts, rowPtr, colIdx, weights (both absent or equal), arcToEdge / edgeToArc
|
|
472
|
+
* (identity compared without materialising) and every id (SameValueZero).
|
|
473
|
+
* @param a - the first snapshot
|
|
474
|
+
* @param b - the second snapshot
|
|
475
|
+
* @returns true when the topologies and id maps are equal
|
|
476
|
+
*/
|
|
477
|
+
export declare function equalsTopology(a: GraphSnapshot, b: GraphSnapshot): boolean;
|
|
478
|
+
/**
|
|
479
|
+
* Install a view value the wire carried (`includeViews`, design section 9.1) into the snapshot's
|
|
480
|
+
* cache, so the receiver does not recompute it. The caller has already checked that the value has
|
|
481
|
+
* the shape of the view; the slot is only filled when it is still empty.
|
|
482
|
+
* @param snapshot - the snapshot
|
|
483
|
+
* @param name - the view name
|
|
484
|
+
* @param value - the view value
|
|
485
|
+
* @returns true when the view was installed, false when the slot was already resident
|
|
486
|
+
*/
|
|
487
|
+
export declare function seedView<K extends ViewName>(snapshot: GraphSnapshot, name: K, value: NonNullable<ViewCache[K]>): boolean;
|
|
488
|
+
/**
|
|
489
|
+
* The cached value of a view without computing it (for tests and for the wire module's
|
|
490
|
+
* `includeViews`).
|
|
491
|
+
* @param snapshot - the snapshot
|
|
492
|
+
* @param name - the view name
|
|
493
|
+
* @returns the cached value, or null when not resident
|
|
494
|
+
*/
|
|
495
|
+
export declare function peekView<K extends ViewName>(snapshot: GraphSnapshot, name: K): ViewCache[K];
|
|
496
|
+
/**
|
|
497
|
+
* Whether the snapshot's permutation arrays are held (materialised) rather than lazy, for tests of
|
|
498
|
+
* the identity rule and for the wire module (which never serialises an identity permutation).
|
|
499
|
+
* @param snapshot - the snapshot
|
|
500
|
+
* @returns true when arcToEdge has been materialised or was supplied
|
|
501
|
+
*/
|
|
502
|
+
export declare function permutationMaterialised(snapshot: GraphSnapshot): boolean;
|
|
503
|
+
/**
|
|
504
|
+
* Whether checksums were recorded at construction (design section 5.8).
|
|
505
|
+
* @param snapshot - the snapshot
|
|
506
|
+
* @returns true when validate({ checksum: true }) can compare
|
|
507
|
+
*/
|
|
508
|
+
export declare function hasChecksums(snapshot: GraphSnapshot): boolean;
|
|
509
|
+
//# sourceMappingURL=graph-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-snapshot.d.ts","sourceRoot":"","sources":["../../../src/snapshot/graph-snapshot.ts"],"names":[],"mappings":"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"}
|