@graphty/graph-samples 0.0.1 → 0.1.2
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/NOTICE +123 -0
- package/README.md +190 -1
- package/dist/chunks/build-DdCe60t3.js +47 -0
- package/dist/chunks/build-DdCe60t3.js.map +1 -0
- package/dist/chunks/meta-B6toBzaa.js +19 -0
- package/dist/chunks/meta-B6toBzaa.js.map +1 -0
- package/dist/chunks/meta-BM_YIhlA.js +28 -0
- package/dist/chunks/meta-BM_YIhlA.js.map +1 -0
- package/dist/chunks/meta-BMmtUpPx.js +30 -0
- package/dist/chunks/meta-BMmtUpPx.js.map +1 -0
- package/dist/chunks/meta-BXC7oi86.js +22 -0
- package/dist/chunks/meta-BXC7oi86.js.map +1 -0
- package/dist/chunks/meta-BaFPvhc1.js +19 -0
- package/dist/chunks/meta-BaFPvhc1.js.map +1 -0
- package/dist/chunks/meta-C58v1Oy0.js +28 -0
- package/dist/chunks/meta-C58v1Oy0.js.map +1 -0
- package/dist/chunks/meta-CQRXyexG.js +23 -0
- package/dist/chunks/meta-CQRXyexG.js.map +1 -0
- package/dist/chunks/meta-DrgM1eS0.js +23 -0
- package/dist/chunks/meta-DrgM1eS0.js.map +1 -0
- package/dist/chunks/meta-IhoaDXAV.js +19 -0
- package/dist/chunks/meta-IhoaDXAV.js.map +1 -0
- package/dist/chunks/meta-MQPbBUUB.js +29 -0
- package/dist/chunks/meta-MQPbBUUB.js.map +1 -0
- package/dist/chunks/meta-Qp4HNYAZ.js +24 -0
- package/dist/chunks/meta-Qp4HNYAZ.js.map +1 -0
- package/dist/chunks/meta-mns0uFIW.js +19 -0
- package/dist/chunks/meta-mns0uFIW.js.map +1 -0
- package/dist/datasets/celegans-neural.d.ts +1 -0
- package/dist/datasets/celegans-neural.js +7359 -0
- package/dist/datasets/celegans-neural.js.map +1 -0
- package/dist/datasets/contiguous-usa.d.ts +1 -0
- package/dist/datasets/contiguous-usa.js +501 -0
- package/dist/datasets/contiguous-usa.js.map +1 -0
- package/dist/datasets/davis-southern-women.d.ts +1 -0
- package/dist/datasets/davis-southern-women.js +235 -0
- package/dist/datasets/davis-southern-women.js.map +1 -0
- package/dist/datasets/dolphins.d.ts +1 -0
- package/dist/datasets/dolphins.js +406 -0
- package/dist/datasets/dolphins.js.map +1 -0
- package/dist/datasets/florentine-families.d.ts +1 -0
- package/dist/datasets/florentine-families.js +75 -0
- package/dist/datasets/florentine-families.js.map +1 -0
- package/dist/datasets/football.d.ts +1 -0
- package/dist/datasets/football.js +1508 -0
- package/dist/datasets/football.js.map +1 -0
- package/dist/datasets/karate.d.ts +1 -0
- package/dist/datasets/karate.js +295 -0
- package/dist/datasets/karate.js.map +1 -0
- package/dist/datasets/knuth-miles.d.ts +1 -0
- package/dist/datasets/knuth-miles.js +24933 -0
- package/dist/datasets/knuth-miles.js.map +1 -0
- package/dist/datasets/les-miserables.d.ts +1 -0
- package/dist/datasets/les-miserables.js +860 -0
- package/dist/datasets/les-miserables.js.map +1 -0
- package/dist/datasets/openflights.d.ts +1 -0
- package/dist/datasets/openflights.js +130277 -0
- package/dist/datasets/openflights.js.map +1 -0
- package/dist/datasets/political-blogs.d.ts +1 -0
- package/dist/datasets/political-blogs.js +42551 -0
- package/dist/datasets/political-blogs.js.map +1 -0
- package/dist/datasets/political-books.d.ts +1 -0
- package/dist/datasets/political-books.js +1124 -0
- package/dist/datasets/political-books.js.map +1 -0
- package/dist/generators.d.ts +1 -0
- package/dist/generators.js +4496 -0
- package/dist/generators.js.map +1 -0
- package/dist/graph-samples.d.ts +1 -0
- package/dist/graph-samples.js +142 -0
- package/dist/graph-samples.js.map +1 -0
- package/dist/src/datasets/build.d.ts +89 -0
- package/dist/src/datasets/build.d.ts.map +1 -0
- package/dist/src/datasets/build.js +53 -0
- package/dist/src/datasets/build.js.map +1 -0
- package/dist/src/datasets/catalog.d.ts +8 -0
- package/dist/src/datasets/catalog.d.ts.map +1 -0
- package/dist/src/datasets/catalog.js +34 -0
- package/dist/src/datasets/catalog.js.map +1 -0
- package/dist/src/datasets/celegans-neural/data.d.ts +3 -0
- package/dist/src/datasets/celegans-neural/data.d.ts.map +1 -0
- package/dist/src/datasets/celegans-neural/data.js +573 -0
- package/dist/src/datasets/celegans-neural/data.js.map +1 -0
- package/dist/src/datasets/celegans-neural/index.d.ts +11 -0
- package/dist/src/datasets/celegans-neural/index.d.ts.map +1 -0
- package/dist/src/datasets/celegans-neural/index.js +14 -0
- package/dist/src/datasets/celegans-neural/index.js.map +1 -0
- package/dist/src/datasets/celegans-neural/meta.d.ts +4 -0
- package/dist/src/datasets/celegans-neural/meta.d.ts.map +1 -0
- package/dist/src/datasets/celegans-neural/meta.js +21 -0
- package/dist/src/datasets/celegans-neural/meta.js.map +1 -0
- package/dist/src/datasets/contiguous-usa/data.d.ts +3 -0
- package/dist/src/datasets/contiguous-usa/data.d.ts.map +1 -0
- package/dist/src/datasets/contiguous-usa/data.js +162 -0
- package/dist/src/datasets/contiguous-usa/data.js.map +1 -0
- package/dist/src/datasets/contiguous-usa/index.d.ts +11 -0
- package/dist/src/datasets/contiguous-usa/index.d.ts.map +1 -0
- package/dist/src/datasets/contiguous-usa/index.js +14 -0
- package/dist/src/datasets/contiguous-usa/index.js.map +1 -0
- package/dist/src/datasets/contiguous-usa/meta.d.ts +4 -0
- package/dist/src/datasets/contiguous-usa/meta.d.ts.map +1 -0
- package/dist/src/datasets/contiguous-usa/meta.js +27 -0
- package/dist/src/datasets/contiguous-usa/meta.js.map +1 -0
- package/dist/src/datasets/davis-southern-women/data.d.ts +3 -0
- package/dist/src/datasets/davis-southern-women/data.d.ts.map +1 -0
- package/dist/src/datasets/davis-southern-women/data.js +57 -0
- package/dist/src/datasets/davis-southern-women/data.js.map +1 -0
- package/dist/src/datasets/davis-southern-women/index.d.ts +11 -0
- package/dist/src/datasets/davis-southern-women/index.d.ts.map +1 -0
- package/dist/src/datasets/davis-southern-women/index.js +14 -0
- package/dist/src/datasets/davis-southern-women/index.js.map +1 -0
- package/dist/src/datasets/davis-southern-women/meta.d.ts +4 -0
- package/dist/src/datasets/davis-southern-women/meta.d.ts.map +1 -0
- package/dist/src/datasets/davis-southern-women/meta.js +17 -0
- package/dist/src/datasets/davis-southern-women/meta.js.map +1 -0
- package/dist/src/datasets/dolphins/data.d.ts +3 -0
- package/dist/src/datasets/dolphins/data.d.ts.map +1 -0
- package/dist/src/datasets/dolphins/data.js +93 -0
- package/dist/src/datasets/dolphins/data.js.map +1 -0
- package/dist/src/datasets/dolphins/index.d.ts +11 -0
- package/dist/src/datasets/dolphins/index.d.ts.map +1 -0
- package/dist/src/datasets/dolphins/index.js +14 -0
- package/dist/src/datasets/dolphins/index.js.map +1 -0
- package/dist/src/datasets/dolphins/meta.d.ts +4 -0
- package/dist/src/datasets/dolphins/meta.d.ts.map +1 -0
- package/dist/src/datasets/dolphins/meta.js +17 -0
- package/dist/src/datasets/dolphins/meta.js.map +1 -0
- package/dist/src/datasets/florentine-families/data.d.ts +3 -0
- package/dist/src/datasets/florentine-families/data.d.ts.map +1 -0
- package/dist/src/datasets/florentine-families/data.js +31 -0
- package/dist/src/datasets/florentine-families/data.js.map +1 -0
- package/dist/src/datasets/florentine-families/index.d.ts +11 -0
- package/dist/src/datasets/florentine-families/index.d.ts.map +1 -0
- package/dist/src/datasets/florentine-families/index.js +14 -0
- package/dist/src/datasets/florentine-families/index.js.map +1 -0
- package/dist/src/datasets/florentine-families/meta.d.ts +4 -0
- package/dist/src/datasets/florentine-families/meta.d.ts.map +1 -0
- package/dist/src/datasets/florentine-families/meta.js +17 -0
- package/dist/src/datasets/florentine-families/meta.js.map +1 -0
- package/dist/src/datasets/football/data.d.ts +3 -0
- package/dist/src/datasets/football/data.d.ts.map +1 -0
- package/dist/src/datasets/football/data.js +210 -0
- package/dist/src/datasets/football/data.js.map +1 -0
- package/dist/src/datasets/football/index.d.ts +11 -0
- package/dist/src/datasets/football/index.d.ts.map +1 -0
- package/dist/src/datasets/football/index.js +14 -0
- package/dist/src/datasets/football/index.js.map +1 -0
- package/dist/src/datasets/football/meta.d.ts +4 -0
- package/dist/src/datasets/football/meta.d.ts.map +1 -0
- package/dist/src/datasets/football/meta.js +17 -0
- package/dist/src/datasets/football/meta.js.map +1 -0
- package/dist/src/datasets/hosted.d.ts +7 -0
- package/dist/src/datasets/hosted.d.ts.map +1 -0
- package/dist/src/datasets/hosted.js +80 -0
- package/dist/src/datasets/hosted.js.map +1 -0
- package/dist/src/datasets/karate/data.d.ts +3 -0
- package/dist/src/datasets/karate/data.d.ts.map +1 -0
- package/dist/src/datasets/karate/data.js +30 -0
- package/dist/src/datasets/karate/data.js.map +1 -0
- package/dist/src/datasets/karate/index.d.ts +11 -0
- package/dist/src/datasets/karate/index.d.ts.map +1 -0
- package/dist/src/datasets/karate/index.js +14 -0
- package/dist/src/datasets/karate/index.js.map +1 -0
- package/dist/src/datasets/karate/meta.d.ts +4 -0
- package/dist/src/datasets/karate/meta.d.ts.map +1 -0
- package/dist/src/datasets/karate/meta.js +22 -0
- package/dist/src/datasets/karate/meta.js.map +1 -0
- package/dist/src/datasets/knuth-miles/data.d.ts +3 -0
- package/dist/src/datasets/knuth-miles/data.d.ts.map +1 -0
- package/dist/src/datasets/knuth-miles/data.js +1203 -0
- package/dist/src/datasets/knuth-miles/data.js.map +1 -0
- package/dist/src/datasets/knuth-miles/index.d.ts +11 -0
- package/dist/src/datasets/knuth-miles/index.d.ts.map +1 -0
- package/dist/src/datasets/knuth-miles/index.js +14 -0
- package/dist/src/datasets/knuth-miles/index.js.map +1 -0
- package/dist/src/datasets/knuth-miles/meta.d.ts +4 -0
- package/dist/src/datasets/knuth-miles/meta.d.ts.map +1 -0
- package/dist/src/datasets/knuth-miles/meta.js +26 -0
- package/dist/src/datasets/knuth-miles/meta.js.map +1 -0
- package/dist/src/datasets/les-miserables/data.d.ts +3 -0
- package/dist/src/datasets/les-miserables/data.d.ts.map +1 -0
- package/dist/src/datasets/les-miserables/data.js +117 -0
- package/dist/src/datasets/les-miserables/data.js.map +1 -0
- package/dist/src/datasets/les-miserables/index.d.ts +11 -0
- package/dist/src/datasets/les-miserables/index.d.ts.map +1 -0
- package/dist/src/datasets/les-miserables/index.js +14 -0
- package/dist/src/datasets/les-miserables/index.js.map +1 -0
- package/dist/src/datasets/les-miserables/meta.d.ts +4 -0
- package/dist/src/datasets/les-miserables/meta.d.ts.map +1 -0
- package/dist/src/datasets/les-miserables/meta.js +21 -0
- package/dist/src/datasets/les-miserables/meta.js.map +1 -0
- package/dist/src/datasets/openflights/data.d.ts +3 -0
- package/dist/src/datasets/openflights/data.d.ts.map +1 -0
- package/dist/src/datasets/openflights/data.js +15457 -0
- package/dist/src/datasets/openflights/data.js.map +1 -0
- package/dist/src/datasets/openflights/index.d.ts +11 -0
- package/dist/src/datasets/openflights/index.d.ts.map +1 -0
- package/dist/src/datasets/openflights/index.js +14 -0
- package/dist/src/datasets/openflights/index.js.map +1 -0
- package/dist/src/datasets/openflights/meta.d.ts +4 -0
- package/dist/src/datasets/openflights/meta.d.ts.map +1 -0
- package/dist/src/datasets/openflights/meta.js +28 -0
- package/dist/src/datasets/openflights/meta.js.map +1 -0
- package/dist/src/datasets/political-blogs/data.d.ts +3 -0
- package/dist/src/datasets/political-blogs/data.d.ts.map +1 -0
- package/dist/src/datasets/political-blogs/data.js +4857 -0
- package/dist/src/datasets/political-blogs/data.js.map +1 -0
- package/dist/src/datasets/political-blogs/index.d.ts +11 -0
- package/dist/src/datasets/political-blogs/index.d.ts.map +1 -0
- package/dist/src/datasets/political-blogs/index.js +14 -0
- package/dist/src/datasets/political-blogs/index.js.map +1 -0
- package/dist/src/datasets/political-blogs/meta.d.ts +4 -0
- package/dist/src/datasets/political-blogs/meta.d.ts.map +1 -0
- package/dist/src/datasets/political-blogs/meta.js +26 -0
- package/dist/src/datasets/political-blogs/meta.js.map +1 -0
- package/dist/src/datasets/political-books/data.d.ts +3 -0
- package/dist/src/datasets/political-books/data.d.ts.map +1 -0
- package/dist/src/datasets/political-books/data.js +165 -0
- package/dist/src/datasets/political-books/data.js.map +1 -0
- package/dist/src/datasets/political-books/index.d.ts +11 -0
- package/dist/src/datasets/political-books/index.d.ts.map +1 -0
- package/dist/src/datasets/political-books/index.js +14 -0
- package/dist/src/datasets/political-books/index.js.map +1 -0
- package/dist/src/datasets/political-books/meta.d.ts +4 -0
- package/dist/src/datasets/political-books/meta.d.ts.map +1 -0
- package/dist/src/datasets/political-books/meta.js +20 -0
- package/dist/src/datasets/political-books/meta.js.map +1 -0
- package/dist/src/datasets/remote.d.ts +27 -0
- package/dist/src/datasets/remote.d.ts.map +1 -0
- package/dist/src/datasets/remote.js +30 -0
- package/dist/src/datasets/remote.js.map +1 -0
- package/dist/src/element.d.ts +20 -0
- package/dist/src/element.d.ts.map +1 -0
- package/dist/src/element.js +27 -0
- package/dist/src/element.js.map +1 -0
- package/dist/src/generators/bipartite.d.ts +51 -0
- package/dist/src/generators/bipartite.d.ts.map +1 -0
- package/dist/src/generators/bipartite.js +99 -0
- package/dist/src/generators/bipartite.js.map +1 -0
- package/dist/src/generators/block-model.d.ts +75 -0
- package/dist/src/generators/block-model.d.ts.map +1 -0
- package/dist/src/generators/block-model.js +116 -0
- package/dist/src/generators/block-model.js.map +1 -0
- package/dist/src/generators/classic.d.ts +208 -0
- package/dist/src/generators/classic.d.ts.map +1 -0
- package/dist/src/generators/classic.js +437 -0
- package/dist/src/generators/classic.js.map +1 -0
- package/dist/src/generators/degree-sequence.d.ts +273 -0
- package/dist/src/generators/degree-sequence.d.ts.map +1 -0
- package/dist/src/generators/degree-sequence.js +646 -0
- package/dist/src/generators/degree-sequence.js.map +1 -0
- package/dist/src/generators/directed.d.ts +141 -0
- package/dist/src/generators/directed.d.ts.map +1 -0
- package/dist/src/generators/directed.js +329 -0
- package/dist/src/generators/directed.js.map +1 -0
- package/dist/src/generators/erdos-renyi.d.ts +58 -0
- package/dist/src/generators/erdos-renyi.d.ts.map +1 -0
- package/dist/src/generators/erdos-renyi.js +154 -0
- package/dist/src/generators/erdos-renyi.js.map +1 -0
- package/dist/src/generators/flow.d.ts +153 -0
- package/dist/src/generators/flow.d.ts.map +1 -0
- package/dist/src/generators/flow.js +346 -0
- package/dist/src/generators/flow.js.map +1 -0
- package/dist/src/generators/geometric.d.ts +133 -0
- package/dist/src/generators/geometric.d.ts.map +1 -0
- package/dist/src/generators/geometric.js +495 -0
- package/dist/src/generators/geometric.js.map +1 -0
- package/dist/src/generators/growth.d.ts +187 -0
- package/dist/src/generators/growth.d.ts.map +1 -0
- package/dist/src/generators/growth.js +445 -0
- package/dist/src/generators/growth.js.map +1 -0
- package/dist/src/generators/hyperbolic.d.ts +84 -0
- package/dist/src/generators/hyperbolic.d.ts.map +1 -0
- package/dist/src/generators/hyperbolic.js +153 -0
- package/dist/src/generators/hyperbolic.js.map +1 -0
- package/dist/src/generators/index.d.ts +25 -0
- package/dist/src/generators/index.d.ts.map +1 -0
- package/dist/src/generators/index.js +24 -0
- package/dist/src/generators/index.js.map +1 -0
- package/dist/src/generators/lattices.d.ts +87 -0
- package/dist/src/generators/lattices.d.ts.map +1 -0
- package/dist/src/generators/lattices.js +237 -0
- package/dist/src/generators/lattices.js.map +1 -0
- package/dist/src/generators/lfr.d.ts +55 -0
- package/dist/src/generators/lfr.d.ts.map +1 -0
- package/dist/src/generators/lfr.js +178 -0
- package/dist/src/generators/lfr.js.map +1 -0
- package/dist/src/generators/named.d.ts +23 -0
- package/dist/src/generators/named.d.ts.map +1 -0
- package/dist/src/generators/named.js +191 -0
- package/dist/src/generators/named.js.map +1 -0
- package/dist/src/generators/preferential-attachment.d.ts +66 -0
- package/dist/src/generators/preferential-attachment.d.ts.map +1 -0
- package/dist/src/generators/preferential-attachment.js +157 -0
- package/dist/src/generators/preferential-attachment.js.map +1 -0
- package/dist/src/generators/trees-and-dags.d.ts +53 -0
- package/dist/src/generators/trees-and-dags.d.ts.map +1 -0
- package/dist/src/generators/trees-and-dags.js +108 -0
- package/dist/src/generators/trees-and-dags.js.map +1 -0
- package/dist/src/generators/util.d.ts +84 -0
- package/dist/src/generators/util.d.ts.map +1 -0
- package/dist/src/generators/util.js +138 -0
- package/dist/src/generators/util.js.map +1 -0
- package/dist/src/generators/variants.d.ts +85 -0
- package/dist/src/generators/variants.d.ts.map +1 -0
- package/dist/src/generators/variants.js +215 -0
- package/dist/src/generators/variants.js.map +1 -0
- package/dist/src/generators/weights.d.ts +65 -0
- package/dist/src/generators/weights.d.ts.map +1 -0
- package/dist/src/generators/weights.js +135 -0
- package/dist/src/generators/weights.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/random/exp.d.ts +23 -0
- package/dist/src/random/exp.d.ts.map +1 -0
- package/dist/src/random/exp.js +101 -0
- package/dist/src/random/exp.js.map +1 -0
- package/dist/src/random/log.d.ts +19 -0
- package/dist/src/random/log.d.ts.map +1 -0
- package/dist/src/random/log.js +83 -0
- package/dist/src/random/log.js.map +1 -0
- package/dist/src/random/stream.d.ts +93 -0
- package/dist/src/random/stream.d.ts.map +1 -0
- package/dist/src/random/stream.js +154 -0
- package/dist/src/random/stream.js.map +1 -0
- package/dist/src/random/threefry.d.ts +19 -0
- package/dist/src/random/threefry.d.ts.map +1 -0
- package/dist/src/random/threefry.js +43 -0
- package/dist/src/random/threefry.js.map +1 -0
- package/dist/src/random/trig.d.ts +16 -0
- package/dist/src/random/trig.d.ts.map +1 -0
- package/dist/src/random/trig.js +78 -0
- package/dist/src/random/trig.js.map +1 -0
- package/dist/src/types.d.ts +28 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +102 -5
- package/src/datasets/build.ts +140 -0
- package/src/datasets/catalog.ts +35 -0
- package/src/datasets/celegans-neural/data.ts +575 -0
- package/src/datasets/celegans-neural/index.ts +17 -0
- package/src/datasets/celegans-neural/meta.ts +25 -0
- package/src/datasets/contiguous-usa/data.ts +164 -0
- package/src/datasets/contiguous-usa/index.ts +17 -0
- package/src/datasets/contiguous-usa/meta.ts +31 -0
- package/src/datasets/davis-southern-women/data.ts +59 -0
- package/src/datasets/davis-southern-women/index.ts +17 -0
- package/src/datasets/davis-southern-women/meta.ts +20 -0
- package/src/datasets/dolphins/data.ts +95 -0
- package/src/datasets/dolphins/index.ts +17 -0
- package/src/datasets/dolphins/meta.ts +21 -0
- package/src/datasets/florentine-families/data.ts +33 -0
- package/src/datasets/florentine-families/index.ts +17 -0
- package/src/datasets/florentine-families/meta.ts +20 -0
- package/src/datasets/football/data.ts +212 -0
- package/src/datasets/football/index.ts +17 -0
- package/src/datasets/football/meta.ts +20 -0
- package/src/datasets/hosted.ts +90 -0
- package/src/datasets/karate/data.ts +32 -0
- package/src/datasets/karate/index.ts +17 -0
- package/src/datasets/karate/meta.ts +25 -0
- package/src/datasets/knuth-miles/data.ts +1205 -0
- package/src/datasets/knuth-miles/index.ts +17 -0
- package/src/datasets/knuth-miles/meta.ts +29 -0
- package/src/datasets/les-miserables/data.ts +119 -0
- package/src/datasets/les-miserables/index.ts +17 -0
- package/src/datasets/les-miserables/meta.ts +24 -0
- package/src/datasets/openflights/data.ts +15459 -0
- package/src/datasets/openflights/index.ts +17 -0
- package/src/datasets/openflights/meta.ts +31 -0
- package/src/datasets/political-blogs/data.ts +4859 -0
- package/src/datasets/political-blogs/index.ts +17 -0
- package/src/datasets/political-blogs/meta.ts +30 -0
- package/src/datasets/political-books/data.ts +167 -0
- package/src/datasets/political-books/index.ts +17 -0
- package/src/datasets/political-books/meta.ts +23 -0
- package/src/datasets/remote.ts +42 -0
- package/src/element.ts +41 -0
- package/src/generators/bipartite.ts +127 -0
- package/src/generators/block-model.ts +160 -0
- package/src/generators/classic.ts +461 -0
- package/src/generators/degree-sequence.ts +807 -0
- package/src/generators/directed.ts +418 -0
- package/src/generators/erdos-renyi.ts +188 -0
- package/src/generators/flow.ts +443 -0
- package/src/generators/geometric.ts +591 -0
- package/src/generators/growth.ts +532 -0
- package/src/generators/hyperbolic.ts +193 -0
- package/src/generators/index.ts +133 -0
- package/src/generators/lattices.ts +290 -0
- package/src/generators/lfr.ts +227 -0
- package/src/generators/named.ts +198 -0
- package/src/generators/preferential-attachment.ts +188 -0
- package/src/generators/trees-and-dags.ts +139 -0
- package/src/generators/util.ts +167 -0
- package/src/generators/variants.ts +253 -0
- package/src/generators/weights.ts +177 -0
- package/src/index.ts +12 -0
- package/src/random/exp.ts +104 -0
- package/src/random/log.ts +86 -0
- package/src/random/stream.ts +169 -0
- package/src/random/threefry.ts +45 -0
- package/src/random/trig.ts +83 -0
- package/src/types.ts +28 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graphty/graph-samples/datasets/political-blogs`: US political blogs, 2004.
|
|
3
|
+
*/
|
|
4
|
+
import { type SampleGraph } from "../../types.js";
|
|
5
|
+
export { politicalBlogsMeta } from "./meta.js";
|
|
6
|
+
/**
|
|
7
|
+
* US political blogs, 2004: 1,490 blogs, 19,022 directed links, and each blog's political lean (`lean`).
|
|
8
|
+
* @returns a fresh copy of the graph as typed arrays
|
|
9
|
+
*/
|
|
10
|
+
export declare function politicalBlogs(): SampleGraph;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/datasets/political-blogs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graphty/graph-samples/datasets/political-blogs`: US political blogs, 2004.
|
|
3
|
+
*/
|
|
4
|
+
import { buildDataset } from "../build.js";
|
|
5
|
+
import { DATA } from "./data.js";
|
|
6
|
+
export { politicalBlogsMeta } from "./meta.js";
|
|
7
|
+
/**
|
|
8
|
+
* US political blogs, 2004: 1,490 blogs, 19,022 directed links, and each blog's political lean (`lean`).
|
|
9
|
+
* @returns a fresh copy of the graph as typed arrays
|
|
10
|
+
*/
|
|
11
|
+
export function politicalBlogs() {
|
|
12
|
+
return buildDataset(DATA);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/datasets/political-blogs/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/datasets/political-blogs/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,EAAE,WA0BhC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** What the politicalBlogs dataset is, where it came from and under which terms. */
|
|
2
|
+
export const politicalBlogsMeta = {
|
|
3
|
+
name: "political-blogs",
|
|
4
|
+
title: "US political blogs, 2004",
|
|
5
|
+
description: "Hyperlinks between US political weblogs, crawled from their front pages in February 2005, with each blog labelled liberal or conservative from blog directories and by hand. Directed; 266 blogs have no links. The crawl recorded 65 links twice and 3 blogs linking to themselves: each link is kept once and the self-links are dropped.",
|
|
6
|
+
citation: "L. A. Adamic and N. Glance, The political blogosphere and the 2004 U.S. election: divided they blog, Proceedings of the 3rd International Workshop on Link Discovery (LinkKDD 2005), 36-43. doi:10.1145/1134271.1134277",
|
|
7
|
+
source: "https://web.archive.org/web/20240730122800id_/https://public.websites.umich.edu/~mejn/netdata/polblogs.zip",
|
|
8
|
+
license: 'unclear: posted on Mark Newman\'s data page with the authors\' permission, "free for scientific use"; the SuiteSparse Matrix Collection republishes the graph under CC BY 4.0.',
|
|
9
|
+
nodes: 1490,
|
|
10
|
+
edges: 19022,
|
|
11
|
+
directed: true,
|
|
12
|
+
weighted: false,
|
|
13
|
+
attributes: {
|
|
14
|
+
label: "string: the blog's address",
|
|
15
|
+
lean: "dict: liberal or conservative (ground truth)",
|
|
16
|
+
directory: "string: the blog directories the label came from",
|
|
17
|
+
},
|
|
18
|
+
groundTruth: "lean",
|
|
19
|
+
showcases: [
|
|
20
|
+
"two-way community detection against the political lean",
|
|
21
|
+
"PageRank and HITS on a directed graph",
|
|
22
|
+
"degree-corrected block models",
|
|
23
|
+
"force-directed layouts coloured by lean",
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/datasets/political-blogs/meta.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC3C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACP,6UAA6U;IACjV,QAAQ,EACJ,yNAAyN;IAC7N,MAAM,EAAE,4GAA4G;IACpH,OAAO,EACH,gLAAgL;IACpL,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE;QACR,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,8CAA8C;QACpD,SAAS,EAAE,kDAAkD;KAChE;IACD,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE;QACP,wDAAwD;QACxD,uCAAuC;QACvC,+BAA+B;QAC/B,yCAAyC;KAC5C;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../src/datasets/political-books/data.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,IAAI,EAAE,WAgKlB,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
// THIS FILE IS AUTO GENERATED: DO NOT EDIT THIS FILE. INSTEAD EDIT graph-samples/scripts/convert-datasets.mjs
|
|
2
|
+
// Source: https://web.archive.org/web/20240730210010id_/https://public.websites.umich.edu/~mejn/netdata/polbooks.zip
|
|
3
|
+
// sha256: b8e37351ae9ae8ee39f8b75ed52170d2435f290855605680c9b4f4c8b46b3c37
|
|
4
|
+
export const DATA = {
|
|
5
|
+
directed: false,
|
|
6
|
+
nodeCount: 105,
|
|
7
|
+
ids: null,
|
|
8
|
+
edges: [
|
|
9
|
+
1, 0, 2, 0, 3, 0, 3, 1, 4, 0, 4, 2, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 6, 0, 6, 1, 6, 4, 6, 5, 7, 2, 7, 5, 7, 6, 8,
|
|
10
|
+
3, 9, 3, 9, 8, 10, 3, 10, 6, 10, 8, 11, 3, 11, 8, 11, 9, 11, 10, 12, 3, 12, 6, 12, 8, 12, 9, 12, 10, 12, 11, 13,
|
|
11
|
+
3, 13, 8, 13, 11, 13, 12, 14, 3, 14, 8, 14, 9, 14, 11, 14, 12, 14, 7, 15, 3, 15, 10, 15, 12, 16, 3, 16, 10, 16,
|
|
12
|
+
15, 17, 3, 17, 11, 17, 12, 17, 13, 18, 3, 18, 6, 18, 12, 19, 3, 19, 10, 20, 3, 20, 8, 20, 9, 20, 11, 21, 3, 21,
|
|
13
|
+
8, 21, 10, 21, 11, 22, 3, 22, 6, 22, 8, 22, 11, 23, 3, 23, 8, 23, 12, 23, 21, 24, 3, 24, 8, 24, 9, 24, 12, 24,
|
|
14
|
+
20, 25, 3, 25, 6, 25, 14, 25, 22, 26, 3, 26, 8, 26, 11, 26, 14, 26, 24, 27, 3, 27, 8, 27, 9, 27, 11, 27, 23, 28,
|
|
15
|
+
4, 29, 4, 29, 6, 29, 11, 29, 13, 30, 4, 30, 7, 31, 4, 31, 30, 32, 8, 32, 12, 32, 13, 32, 23, 33, 32, 33, 8, 33,
|
|
16
|
+
10, 33, 12, 33, 23, 35, 34, 35, 8, 35, 10, 36, 34, 36, 35, 36, 12, 37, 34, 37, 8, 37, 10, 37, 35, 37, 33, 38,
|
|
17
|
+
34, 38, 10, 38, 35, 38, 12, 38, 37, 38, 33, 39, 34, 39, 10, 39, 35, 39, 12, 39, 38, 39, 33, 40, 8, 40, 35, 40,
|
|
18
|
+
12, 40, 13, 40, 20, 40, 22, 40, 39, 40, 24, 40, 25, 40, 26, 40, 27, 41, 8, 41, 9, 41, 40, 41, 12, 41, 36, 41,
|
|
19
|
+
27, 42, 8, 42, 40, 42, 13, 42, 39, 43, 8, 43, 35, 43, 13, 43, 42, 44, 8, 44, 40, 44, 35, 44, 12, 44, 13, 45, 8,
|
|
20
|
+
45, 9, 45, 40, 45, 11, 45, 26, 46, 8, 46, 12, 47, 9, 47, 40, 47, 41, 47, 11, 47, 12, 47, 13, 47, 42, 47, 36, 47,
|
|
21
|
+
37, 47, 17, 47, 33, 47, 45, 47, 46, 47, 23, 47, 24, 47, 26, 47, 27, 48, 9, 48, 20, 49, 9, 49, 20, 49, 31, 49,
|
|
22
|
+
48, 50, 9, 50, 11, 51, 9, 52, 9, 52, 22, 52, 51, 53, 40, 53, 20, 53, 24, 53, 26, 54, 40, 54, 41, 54, 12, 54, 47,
|
|
23
|
+
54, 23, 54, 27, 55, 10, 55, 12, 55, 15, 55, 19, 56, 11, 56, 19, 56, 43, 57, 13, 57, 56, 57, 20, 57, 48, 57, 49,
|
|
24
|
+
58, 14, 58, 7, 58, 30, 58, 49, 58, 50, 58, 51, 58, 52, 60, 59, 61, 59, 62, 59, 62, 60, 63, 59, 63, 60, 63, 62,
|
|
25
|
+
64, 58, 64, 51, 64, 52, 65, 64, 65, 58, 65, 51, 66, 64, 66, 28, 66, 30, 67, 64, 67, 65, 67, 66, 67, 30, 68, 64,
|
|
26
|
+
68, 58, 68, 65, 69, 64, 69, 58, 69, 65, 69, 51, 70, 64, 70, 66, 70, 30, 71, 7, 71, 68, 71, 70, 72, 71, 72, 28,
|
|
27
|
+
72, 66, 72, 49, 72, 70, 73, 71, 73, 72, 73, 66, 73, 30, 73, 31, 74, 71, 74, 72, 74, 73, 74, 66, 74, 30, 74, 31,
|
|
28
|
+
75, 71, 75, 72, 75, 73, 75, 74, 75, 30, 75, 31, 75, 70, 76, 71, 76, 72, 76, 75, 76, 66, 76, 30, 76, 31, 76, 49,
|
|
29
|
+
76, 53, 77, 71, 77, 75, 77, 58, 77, 30, 77, 19, 77, 31, 77, 76, 78, 71, 78, 72, 78, 74, 78, 75, 78, 31, 79, 71,
|
|
30
|
+
79, 72, 79, 74, 79, 75, 79, 30, 80, 71, 80, 72, 80, 66, 80, 30, 81, 71, 82, 71, 82, 72, 82, 73, 82, 74, 82, 75,
|
|
31
|
+
82, 30, 82, 31, 82, 76, 83, 71, 83, 73, 83, 75, 83, 30, 83, 76, 84, 72, 84, 74, 84, 75, 84, 66, 84, 73, 84, 60,
|
|
32
|
+
84, 30, 84, 62, 84, 76, 84, 79, 84, 81, 84, 82, 84, 83, 85, 72, 85, 7, 85, 58, 85, 65, 85, 66, 86, 72, 86, 73,
|
|
33
|
+
86, 66, 86, 84, 86, 60, 86, 30, 86, 61, 86, 76, 86, 81, 87, 72, 87, 74, 87, 84, 87, 83, 88, 72, 88, 74, 88, 66,
|
|
34
|
+
88, 84, 89, 72, 89, 73, 89, 66, 89, 84, 89, 86, 89, 88, 90, 72, 90, 66, 90, 70, 91, 72, 91, 74, 91, 75, 91, 31,
|
|
35
|
+
91, 90, 91, 79, 92, 72, 92, 73, 92, 75, 93, 73, 93, 66, 93, 86, 93, 30, 94, 73, 94, 84, 94, 93, 95, 73, 95, 94,
|
|
36
|
+
95, 61, 96, 73, 96, 66, 96, 84, 96, 94, 97, 73, 97, 66, 97, 84, 97, 86, 97, 96, 97, 81, 98, 73, 98, 74, 98, 87,
|
|
37
|
+
98, 91, 99, 73, 99, 74, 99, 66, 99, 84, 99, 93, 99, 60, 99, 59, 99, 30, 99, 62, 99, 63, 99, 90, 100, 73, 100,
|
|
38
|
+
66, 100, 84, 100, 86, 100, 96, 100, 98, 100, 99, 100, 62, 100, 79, 100, 91, 100, 83, 101, 84, 101, 86, 101, 94,
|
|
39
|
+
101, 100, 101, 61, 102, 93, 102, 94, 102, 95, 102, 46, 103, 67, 104, 67, 104, 69, 104, 103,
|
|
40
|
+
],
|
|
41
|
+
weights: null,
|
|
42
|
+
columns: {
|
|
43
|
+
label: {
|
|
44
|
+
dtype: "string",
|
|
45
|
+
role: "label",
|
|
46
|
+
values: [
|
|
47
|
+
"1000 Years for Revenge",
|
|
48
|
+
"Bush vs. the Beltway",
|
|
49
|
+
"Charlie Wilson's War",
|
|
50
|
+
"Losing Bin Laden",
|
|
51
|
+
"Sleeping With the Devil",
|
|
52
|
+
"The Man Who Warned America",
|
|
53
|
+
"Why America Slept",
|
|
54
|
+
"Ghost Wars",
|
|
55
|
+
"A National Party No More",
|
|
56
|
+
"Bush Country",
|
|
57
|
+
"Dereliction of Duty",
|
|
58
|
+
"Legacy",
|
|
59
|
+
"Off with Their Heads",
|
|
60
|
+
"Persecution",
|
|
61
|
+
"Rumsfeld's War",
|
|
62
|
+
"Breakdown",
|
|
63
|
+
"Betrayal",
|
|
64
|
+
"Shut Up and Sing",
|
|
65
|
+
"Meant To Be",
|
|
66
|
+
"The Right Man",
|
|
67
|
+
"Ten Minutes from Normal",
|
|
68
|
+
"Hillary's Scheme",
|
|
69
|
+
"The French Betrayal of America",
|
|
70
|
+
"Tales from the Left Coast",
|
|
71
|
+
"Hating America",
|
|
72
|
+
"The Third Terrorist",
|
|
73
|
+
"Endgame",
|
|
74
|
+
"Spin Sisters",
|
|
75
|
+
"All the Shah's Men",
|
|
76
|
+
"Dangerous Dimplomacy",
|
|
77
|
+
"The Price of Loyalty",
|
|
78
|
+
"House of Bush, House of Saud",
|
|
79
|
+
"The Death of Right and Wrong",
|
|
80
|
+
"Useful Idiots",
|
|
81
|
+
"The O'Reilly Factor",
|
|
82
|
+
"Let Freedom Ring",
|
|
83
|
+
"Those Who Trespass",
|
|
84
|
+
"Bias",
|
|
85
|
+
"Slander",
|
|
86
|
+
"The Savage Nation",
|
|
87
|
+
"Deliver Us from Evil",
|
|
88
|
+
"Give Me a Break",
|
|
89
|
+
"The Enemy Within",
|
|
90
|
+
"The Real America",
|
|
91
|
+
"Who's Looking Out for You?",
|
|
92
|
+
"The Official Handbook Vast Right Wing Conspiracy",
|
|
93
|
+
"Power Plays",
|
|
94
|
+
"Arrogance",
|
|
95
|
+
"The Perfect Wife",
|
|
96
|
+
"The Bushes",
|
|
97
|
+
"Things Worth Fighting For",
|
|
98
|
+
"Surprise, Security, the American Experience",
|
|
99
|
+
"Allies",
|
|
100
|
+
"Why Courage Matters",
|
|
101
|
+
"Hollywood Interrupted",
|
|
102
|
+
"Fighting Back",
|
|
103
|
+
"We Will Prevail",
|
|
104
|
+
"The Faith of George W Bush",
|
|
105
|
+
"Rise of the Vulcans",
|
|
106
|
+
"Downsize This!",
|
|
107
|
+
"Stupid White Men",
|
|
108
|
+
"Rush Limbaugh Is a Big Fat Idiot",
|
|
109
|
+
"The Best Democracy Money Can Buy",
|
|
110
|
+
"The Culture of Fear",
|
|
111
|
+
"America Unbound",
|
|
112
|
+
"The Choice",
|
|
113
|
+
"The Great Unraveling",
|
|
114
|
+
"Rogue Nation",
|
|
115
|
+
"Soft Power",
|
|
116
|
+
"Colossus",
|
|
117
|
+
"The Sorrows of Empire",
|
|
118
|
+
"Against All Enemies",
|
|
119
|
+
"American Dynasty",
|
|
120
|
+
"Big Lies",
|
|
121
|
+
"The Lies of George W. Bush",
|
|
122
|
+
"Worse Than Watergate",
|
|
123
|
+
"Plan of Attack",
|
|
124
|
+
"Bush at War",
|
|
125
|
+
"The New Pearl Harbor",
|
|
126
|
+
"Bushwomen",
|
|
127
|
+
"The Bubble of American Supremacy",
|
|
128
|
+
"Living History",
|
|
129
|
+
"The Politics of Truth",
|
|
130
|
+
"Fanatics and Fools",
|
|
131
|
+
"Bushwhacked",
|
|
132
|
+
"Disarming Iraq",
|
|
133
|
+
"Lies and the Lying Liars Who Tell Them",
|
|
134
|
+
"MoveOn's 50 Ways to Love Your Country",
|
|
135
|
+
"The Buying of the President 2004",
|
|
136
|
+
"Perfectly Legal",
|
|
137
|
+
"Hegemony or Survival",
|
|
138
|
+
"The Exception to the Rulers",
|
|
139
|
+
"Freethinkers",
|
|
140
|
+
"Had Enough?",
|
|
141
|
+
"It's Still the Economy, Stupid!",
|
|
142
|
+
"We're Right They're Wrong",
|
|
143
|
+
"What Liberal Media?",
|
|
144
|
+
"The Clinton Wars",
|
|
145
|
+
"Weapons of Mass Deception",
|
|
146
|
+
"Dude, Where's My Country?",
|
|
147
|
+
"Thieves in High Places",
|
|
148
|
+
"Shrub",
|
|
149
|
+
"Buck Up Suck Up",
|
|
150
|
+
"The Future of Freedom",
|
|
151
|
+
"Empire",
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
lean: {
|
|
155
|
+
dtype: "dict",
|
|
156
|
+
categories: ["liberal", "conservative", "neutral"],
|
|
157
|
+
codes: [
|
|
158
|
+
2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 0, 0, 1, 1, 1,
|
|
159
|
+
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
|
|
160
|
+
0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../src/datasets/political-books/data.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,qHAAqH;AACrH,2EAA2E;AAI3E,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC7B,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,GAAG;IACd,GAAG,EAAE,IAAI;IACT,KAAK,EAAE;QACH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7G,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/G,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9G,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7G,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/G,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5G,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC9G,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC5G,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC/G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC7G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9G,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;QAC5G,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QAC9G,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;KAC7F;IACD,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACL,KAAK,EAAE;YACH,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACJ,wBAAwB;gBACxB,sBAAsB;gBACtB,sBAAsB;gBACtB,kBAAkB;gBAClB,yBAAyB;gBACzB,4BAA4B;gBAC5B,mBAAmB;gBACnB,YAAY;gBACZ,0BAA0B;gBAC1B,cAAc;gBACd,qBAAqB;gBACrB,QAAQ;gBACR,sBAAsB;gBACtB,aAAa;gBACb,gBAAgB;gBAChB,WAAW;gBACX,UAAU;gBACV,kBAAkB;gBAClB,aAAa;gBACb,eAAe;gBACf,yBAAyB;gBACzB,kBAAkB;gBAClB,gCAAgC;gBAChC,2BAA2B;gBAC3B,gBAAgB;gBAChB,qBAAqB;gBACrB,SAAS;gBACT,cAAc;gBACd,oBAAoB;gBACpB,sBAAsB;gBACtB,sBAAsB;gBACtB,8BAA8B;gBAC9B,8BAA8B;gBAC9B,eAAe;gBACf,qBAAqB;gBACrB,kBAAkB;gBAClB,oBAAoB;gBACpB,MAAM;gBACN,SAAS;gBACT,mBAAmB;gBACnB,sBAAsB;gBACtB,iBAAiB;gBACjB,kBAAkB;gBAClB,kBAAkB;gBAClB,4BAA4B;gBAC5B,kDAAkD;gBAClD,aAAa;gBACb,WAAW;gBACX,kBAAkB;gBAClB,YAAY;gBACZ,2BAA2B;gBAC3B,6CAA6C;gBAC7C,QAAQ;gBACR,qBAAqB;gBACrB,uBAAuB;gBACvB,eAAe;gBACf,iBAAiB;gBACjB,4BAA4B;gBAC5B,qBAAqB;gBACrB,gBAAgB;gBAChB,kBAAkB;gBAClB,kCAAkC;gBAClC,kCAAkC;gBAClC,qBAAqB;gBACrB,iBAAiB;gBACjB,YAAY;gBACZ,sBAAsB;gBACtB,cAAc;gBACd,YAAY;gBACZ,UAAU;gBACV,uBAAuB;gBACvB,qBAAqB;gBACrB,kBAAkB;gBAClB,UAAU;gBACV,4BAA4B;gBAC5B,sBAAsB;gBACtB,gBAAgB;gBAChB,aAAa;gBACb,sBAAsB;gBACtB,WAAW;gBACX,kCAAkC;gBAClC,gBAAgB;gBAChB,uBAAuB;gBACvB,oBAAoB;gBACpB,aAAa;gBACb,gBAAgB;gBAChB,wCAAwC;gBACxC,uCAAuC;gBACvC,kCAAkC;gBAClC,iBAAiB;gBACjB,sBAAsB;gBACtB,6BAA6B;gBAC7B,cAAc;gBACd,aAAa;gBACb,iCAAiC;gBACjC,2BAA2B;gBAC3B,qBAAqB;gBACrB,kBAAkB;gBAClB,2BAA2B;gBAC3B,2BAA2B;gBAC3B,wBAAwB;gBACxB,OAAO;gBACP,iBAAiB;gBACjB,uBAAuB;gBACvB,QAAQ;aACX;SACJ;QACD,IAAI,EAAE;YACF,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC;YAClD,KAAK,EAAE;gBACH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;aAC1G;SACJ;KACJ;CACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graphty/graph-samples/datasets/political-books`: Books about US politics.
|
|
3
|
+
*/
|
|
4
|
+
import { type SampleGraph } from "../../types.js";
|
|
5
|
+
export { politicalBooksMeta } from "./meta.js";
|
|
6
|
+
/**
|
|
7
|
+
* The political books co-purchase network: 105 books, 441 co-purchases, each book's `label` and political `lean`.
|
|
8
|
+
* @returns a fresh copy of the graph as typed arrays
|
|
9
|
+
*/
|
|
10
|
+
export declare function politicalBooks(): SampleGraph;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/datasets/political-books/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@graphty/graph-samples/datasets/political-books`: Books about US politics.
|
|
3
|
+
*/
|
|
4
|
+
import { buildDataset } from "../build.js";
|
|
5
|
+
import { DATA } from "./data.js";
|
|
6
|
+
export { politicalBooksMeta } from "./meta.js";
|
|
7
|
+
/**
|
|
8
|
+
* The political books co-purchase network: 105 books, 441 co-purchases, each book's `label` and political `lean`.
|
|
9
|
+
* @returns a fresh copy of the graph as typed arrays
|
|
10
|
+
*/
|
|
11
|
+
export function politicalBooks() {
|
|
12
|
+
return buildDataset(DATA);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/datasets/political-books/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC1B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/datasets/political-books/meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,oFAAoF;AACpF,eAAO,MAAM,kBAAkB,EAAE,WAmBhC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** What the politicalBooks dataset is, where it came from and under which terms. */
|
|
2
|
+
export const politicalBooksMeta = {
|
|
3
|
+
name: "political-books",
|
|
4
|
+
title: "Books about US politics",
|
|
5
|
+
description: "Books about US politics sold by Amazon.com around the 2004 election, joined when the same buyers frequently bought both. Mark Newman labelled each book liberal, neutral or conservative from its descriptions and reviews.",
|
|
6
|
+
citation: "V. Krebs, unpublished (compiled 2004), http://www.orgnet.com/; labels by M. E. J. Newman.",
|
|
7
|
+
source: "https://web.archive.org/web/20240730210010id_/https://public.websites.umich.edu/~mejn/netdata/polbooks.zip",
|
|
8
|
+
license: 'unclear: Mark Newman\'s data page says only "free for scientific use to the best of my knowledge"; the SuiteSparse Matrix Collection republishes the graph under CC BY 4.0.',
|
|
9
|
+
nodes: 105,
|
|
10
|
+
edges: 441,
|
|
11
|
+
directed: false,
|
|
12
|
+
weighted: false,
|
|
13
|
+
attributes: { label: "string: the book title", lean: "dict: liberal, conservative or neutral (ground truth)" },
|
|
14
|
+
groundTruth: "lean",
|
|
15
|
+
showcases: [
|
|
16
|
+
"two- and three-way community detection against the political lean",
|
|
17
|
+
"force-directed layouts coloured by lean",
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../src/datasets/political-books/meta.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC3C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACP,6NAA6N;IACjO,QAAQ,EAAE,2FAA2F;IACrG,MAAM,EAAE,4GAA4G;IACpH,OAAO,EACH,6KAA6K;IACjL,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,uDAAuD,EAAE;IAC9G,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE;QACP,mEAAmE;QACnE,yCAAyC;KAC5C;CACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Datasets too large to bundle (over about 5,000 nodes) are hosted on graphty.app as
|
|
3
|
+
* graph-format wire bytes and fetched at runtime.
|
|
4
|
+
*/
|
|
5
|
+
import { type GraphSnapshot } from "@graphty/graph-format";
|
|
6
|
+
/**
|
|
7
|
+
* Where hosted datasets live: `<base><name>.gsnp.gz`, a gzipped graph-format wire container.
|
|
8
|
+
* The `v1` segment is the hosting layout's version, independent of the package version.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_DATASET_BASE_URL = "https://graphty.app/data/graph-samples/v1/";
|
|
11
|
+
/** Options of {@link fetchDataset}. */
|
|
12
|
+
export interface FetchDatasetOptions {
|
|
13
|
+
/** Serve the files from elsewhere (self-hosting, a mirror, a test server). */
|
|
14
|
+
baseUrl?: string | undefined;
|
|
15
|
+
/** The fetch implementation; the global `fetch` by default. */
|
|
16
|
+
fetch?: typeof fetch | undefined;
|
|
17
|
+
/** Cancels the download. */
|
|
18
|
+
signal?: AbortSignal | undefined;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Download a hosted dataset and decode it.
|
|
22
|
+
* @param name - the dataset name: lowercase letters, digits and dashes
|
|
23
|
+
* @param options - the base URL, fetch implementation and abort signal
|
|
24
|
+
* @returns the graph as a frozen graph-format snapshot
|
|
25
|
+
*/
|
|
26
|
+
export declare function fetchDataset(name: string, options?: FetchDatasetOptions): Promise<GraphSnapshot>;
|
|
27
|
+
//# sourceMappingURL=remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../src/datasets/remote.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,+CAA+C,CAAC;AAErF,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAChC,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IACjC,4BAA4B;IAC5B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,CAY1G"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Datasets too large to bundle (over about 5,000 nodes) are hosted on graphty.app as
|
|
3
|
+
* graph-format wire bytes and fetched at runtime.
|
|
4
|
+
*/
|
|
5
|
+
import { fromBytes } from "@graphty/graph-format";
|
|
6
|
+
/**
|
|
7
|
+
* Where hosted datasets live: `<base><name>.gsnp.gz`, a gzipped graph-format wire container.
|
|
8
|
+
* The `v1` segment is the hosting layout's version, independent of the package version.
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_DATASET_BASE_URL = "https://graphty.app/data/graph-samples/v1/";
|
|
11
|
+
/**
|
|
12
|
+
* Download a hosted dataset and decode it.
|
|
13
|
+
* @param name - the dataset name: lowercase letters, digits and dashes
|
|
14
|
+
* @param options - the base URL, fetch implementation and abort signal
|
|
15
|
+
* @returns the graph as a frozen graph-format snapshot
|
|
16
|
+
*/
|
|
17
|
+
export async function fetchDataset(name, options = {}) {
|
|
18
|
+
if (!/^[a-z0-9][a-z0-9-]*$/.test(name)) {
|
|
19
|
+
throw new RangeError(`not a dataset name: ${JSON.stringify(name)}`);
|
|
20
|
+
}
|
|
21
|
+
const base = options.baseUrl ?? DEFAULT_DATASET_BASE_URL;
|
|
22
|
+
const url = new URL(`${name}.gsnp.gz`, base.endsWith("/") ? base : `${base}/`);
|
|
23
|
+
const response = await (options.fetch ?? fetch)(url, { signal: options.signal ?? null });
|
|
24
|
+
if (!response.ok || response.body === null) {
|
|
25
|
+
throw new Error(`fetching ${url.href} failed: HTTP ${response.status}`);
|
|
26
|
+
}
|
|
27
|
+
const unzipped = response.body.pipeThrough(new DecompressionStream("gzip"));
|
|
28
|
+
return fromBytes(new Uint8Array(await new Response(unzipped).arrayBuffer()));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=remote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../src/datasets/remote.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAsB,MAAM,uBAAuB,CAAC;AAEtE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,4CAA4C,CAAC;AAYrF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,UAA+B,EAAE;IAC9E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,wBAAwB,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,OAAO,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Records for graphty-element's `nodeData` / `edgeData` properties.
|
|
3
|
+
*/
|
|
4
|
+
import { type SampleGraph } from "./types.js";
|
|
5
|
+
/** The node and edge records graphty-element loads. */
|
|
6
|
+
export interface ElementData {
|
|
7
|
+
/** One record per node: `id` plus one field per node column. */
|
|
8
|
+
readonly nodes: Record<string, unknown>[];
|
|
9
|
+
/** One record per edge: `source`, `target` and, when weighted, `weight`. */
|
|
10
|
+
readonly edges: Record<string, unknown>[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Turn a graph into the plain records `<graphty-element>` takes as `nodeData` and `edgeData`.
|
|
14
|
+
* A node's id is its external id when the graph has them, else its index. Builds one object per
|
|
15
|
+
* node and edge, so it is meant for graphs a browser draws, not for millions of edges.
|
|
16
|
+
* @param graph - a generator's or dataset's graph
|
|
17
|
+
* @returns the node and edge records
|
|
18
|
+
*/
|
|
19
|
+
export declare function toElementData(graph: SampleGraph): ElementData;
|
|
20
|
+
//# sourceMappingURL=element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../src/element.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,uDAAuD;AACvD,MAAM,WAAW,WAAW;IACxB,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1C,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAmB7D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Records for graphty-element's `nodeData` / `edgeData` properties.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Turn a graph into the plain records `<graphty-element>` takes as `nodeData` and `edgeData`.
|
|
6
|
+
* A node's id is its external id when the graph has them, else its index. Builds one object per
|
|
7
|
+
* node and edge, so it is meant for graphs a browser draws, not for millions of edges.
|
|
8
|
+
* @param graph - a generator's or dataset's graph
|
|
9
|
+
* @returns the node and edge records
|
|
10
|
+
*/
|
|
11
|
+
export function toElementData(graph) {
|
|
12
|
+
const { ids, src, dst, weights } = graph;
|
|
13
|
+
const columns = Object.entries(graph.nodeColumns ?? {}).map(([name, column]) => [name, ArrayBuffer.isView(column) ? column : column.data]);
|
|
14
|
+
const idOf = (i) => (ids === undefined ? i : ids[i]);
|
|
15
|
+
const nodes = Array.from({ length: graph.nodeCount }, (_, i) => {
|
|
16
|
+
const record = { id: idOf(i) };
|
|
17
|
+
for (const [name, data] of columns) {
|
|
18
|
+
record[name] = data[i];
|
|
19
|
+
}
|
|
20
|
+
return record;
|
|
21
|
+
});
|
|
22
|
+
const edges = Array.from(src, (u, e) => weights === undefined
|
|
23
|
+
? { source: idOf(u), target: idOf(dst[e]) }
|
|
24
|
+
: { source: idOf(u), target: idOf(dst[e]), weight: weights[e] });
|
|
25
|
+
return { nodes, edges };
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/element.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CACvD,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAU,CACzF,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAmB,EAAE,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3D,MAAM,MAAM,GAA4B,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnC,OAAO,KAAK,SAAS;QACjB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CACtE,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The random bipartite graph G(n1, n2, p), optionally with a planted perfect matching.
|
|
3
|
+
*/
|
|
4
|
+
import { type U32 } from "@graphty/graph-format";
|
|
5
|
+
import { type SampleGraph } from "../types.js";
|
|
6
|
+
import { type EdgeBuffer } from "./util.js";
|
|
7
|
+
import { type WeightOptions } from "./weights.js";
|
|
8
|
+
/** Options of {@link randomBipartiteGraph}. */
|
|
9
|
+
export interface RandomBipartiteOptions extends WeightOptions {
|
|
10
|
+
/** The left side's size, >= 0. */
|
|
11
|
+
n1: number;
|
|
12
|
+
/** The right side's size, >= 0. */
|
|
13
|
+
n2: number;
|
|
14
|
+
/** The probability of each left-right pair, in [0, 1]. */
|
|
15
|
+
p: number;
|
|
16
|
+
/**
|
|
17
|
+
* Plant a perfect matching: left node i is always joined to right node `matching[i]` of a
|
|
18
|
+
* uniformly random permutation, so a perfect matching is guaranteed. Needs n1 === n2.
|
|
19
|
+
*/
|
|
20
|
+
perfectMatching?: boolean | undefined;
|
|
21
|
+
/** The seed, an integer in [0, 2^53); default 0. */
|
|
22
|
+
seed?: number | undefined;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The planted matching: a Fisher-Yates shuffle of 0 .. n - 1 from stream (seed,
|
|
26
|
+
* "bipartite-matching", 0), drawing nextBelow(i + 1) for i = n - 1 down to 1.
|
|
27
|
+
* @param n - the side size
|
|
28
|
+
* @param seed - the seed
|
|
29
|
+
* @returns match[i] = the right-side offset joined to left node i
|
|
30
|
+
*/
|
|
31
|
+
export declare function plantedMatching(n: number, seed: number): U32;
|
|
32
|
+
/**
|
|
33
|
+
* Rows [start, end) of the bipartite graph: left node u draws from stream (seed, "bipartite", u)
|
|
34
|
+
* and holds (u, n1 + j) for the chosen right offsets j in ascending order, with the planted match
|
|
35
|
+
* merged in at its place (never twice).
|
|
36
|
+
* @param options - the checked options
|
|
37
|
+
* @param match - the planted matching, or null
|
|
38
|
+
* @param start - the first row
|
|
39
|
+
* @param end - one past the last row
|
|
40
|
+
* @param out - receives the edges
|
|
41
|
+
*/
|
|
42
|
+
export declare function bipartiteRows(options: RandomBipartiteOptions, match: U32 | null, start: number, end: number, out: EdgeBuffer): void;
|
|
43
|
+
/**
|
|
44
|
+
* The random bipartite graph G(n1, n2, p) in O(n + m): left nodes 0 .. n1 - 1, right nodes
|
|
45
|
+
* n1 .. n1 + n2 - 1, each left-right pair independently with probability p; edges row by row from
|
|
46
|
+
* the left side, right ends ascending. Node column `side` (u8): 0 left, 1 right.
|
|
47
|
+
* @param options - n1, n2, p, perfectMatching and seed
|
|
48
|
+
* @returns the undirected graph
|
|
49
|
+
*/
|
|
50
|
+
export declare function randomBipartiteGraph(options: RandomBipartiteOptions): SampleGraph;
|
|
51
|
+
//# sourceMappingURL=bipartite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bipartite.d.ts","sourceRoot":"","sources":["../../../src/generators/bipartite.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAA8C,KAAK,UAAU,EAAW,MAAM,WAAW,CAAC;AACjG,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,+CAA+C;AAC/C,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IACzD,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,CAAC,EAAE,MAAM,CAAC;IACV;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAa5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CACzB,OAAO,EAAE,sBAAsB,EAC/B,KAAK,EAAE,GAAG,GAAG,IAAI,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,UAAU,GAChB,IAAI,CAgCN;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CAkBjF"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The random bipartite graph G(n1, n2, p), optionally with a planted perfect matching.
|
|
3
|
+
*/
|
|
4
|
+
import { detLog } from "../random/log.js";
|
|
5
|
+
import { RandomStream, resolveSeed } from "../random/stream.js";
|
|
6
|
+
import { binomialBuffer, checkInt, checkProbability, toGraph } from "./util.js";
|
|
7
|
+
import { applyWeights } from "./weights.js";
|
|
8
|
+
/**
|
|
9
|
+
* The planted matching: a Fisher-Yates shuffle of 0 .. n - 1 from stream (seed,
|
|
10
|
+
* "bipartite-matching", 0), drawing nextBelow(i + 1) for i = n - 1 down to 1.
|
|
11
|
+
* @param n - the side size
|
|
12
|
+
* @param seed - the seed
|
|
13
|
+
* @returns match[i] = the right-side offset joined to left node i
|
|
14
|
+
*/
|
|
15
|
+
export function plantedMatching(n, seed) {
|
|
16
|
+
const stream = new RandomStream(seed, "bipartite-matching", 0);
|
|
17
|
+
const match = new Uint32Array(n);
|
|
18
|
+
for (let i = 0; i < n; i++) {
|
|
19
|
+
match[i] = i;
|
|
20
|
+
}
|
|
21
|
+
for (let i = n - 1; i > 0; i--) {
|
|
22
|
+
const j = stream.nextBelow(i + 1);
|
|
23
|
+
const t = match[i];
|
|
24
|
+
match[i] = match[j];
|
|
25
|
+
match[j] = t;
|
|
26
|
+
}
|
|
27
|
+
return match;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Rows [start, end) of the bipartite graph: left node u draws from stream (seed, "bipartite", u)
|
|
31
|
+
* and holds (u, n1 + j) for the chosen right offsets j in ascending order, with the planted match
|
|
32
|
+
* merged in at its place (never twice).
|
|
33
|
+
* @param options - the checked options
|
|
34
|
+
* @param match - the planted matching, or null
|
|
35
|
+
* @param start - the first row
|
|
36
|
+
* @param end - one past the last row
|
|
37
|
+
* @param out - receives the edges
|
|
38
|
+
*/
|
|
39
|
+
export function bipartiteRows(options, match, start, end, out) {
|
|
40
|
+
const { n1, n2, p } = options;
|
|
41
|
+
const seed = resolveSeed(options.seed);
|
|
42
|
+
const logQ = detLog(1 - p);
|
|
43
|
+
const stream = new RandomStream(seed, "bipartite", 0);
|
|
44
|
+
for (let u = start; u < end; u++) {
|
|
45
|
+
stream.reset(u);
|
|
46
|
+
let pending = match === null ? -1 : match[u];
|
|
47
|
+
const emit = (j) => {
|
|
48
|
+
if (pending >= 0 && pending < j) {
|
|
49
|
+
out.push(u, n1 + pending);
|
|
50
|
+
}
|
|
51
|
+
if (pending >= 0 && pending <= j) {
|
|
52
|
+
pending = -1;
|
|
53
|
+
}
|
|
54
|
+
out.push(u, n1 + j);
|
|
55
|
+
};
|
|
56
|
+
if (p === 1) {
|
|
57
|
+
for (let j = 0; j < n2; j++) {
|
|
58
|
+
emit(j);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (p > 0) {
|
|
62
|
+
let j = stream.nextSkip(logQ);
|
|
63
|
+
while (j < n2) {
|
|
64
|
+
emit(j);
|
|
65
|
+
j += 1 + stream.nextSkip(logQ);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (pending >= 0) {
|
|
69
|
+
out.push(u, n1 + pending);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The random bipartite graph G(n1, n2, p) in O(n + m): left nodes 0 .. n1 - 1, right nodes
|
|
75
|
+
* n1 .. n1 + n2 - 1, each left-right pair independently with probability p; edges row by row from
|
|
76
|
+
* the left side, right ends ascending. Node column `side` (u8): 0 left, 1 right.
|
|
77
|
+
* @param options - n1, n2, p, perfectMatching and seed
|
|
78
|
+
* @returns the undirected graph
|
|
79
|
+
*/
|
|
80
|
+
export function randomBipartiteGraph(options) {
|
|
81
|
+
const { n1, n2, p } = options;
|
|
82
|
+
checkInt("n1", n1, 0);
|
|
83
|
+
checkInt("n2", n2, 0);
|
|
84
|
+
checkInt("n1 + n2", n1 + n2, 0);
|
|
85
|
+
checkProbability("p", p);
|
|
86
|
+
const seed = resolveSeed(options.seed);
|
|
87
|
+
let match = null;
|
|
88
|
+
if (options.perfectMatching === true) {
|
|
89
|
+
if (n1 !== n2) {
|
|
90
|
+
throw new RangeError(`perfectMatching needs n1 === n2, got ${n1} and ${n2}`);
|
|
91
|
+
}
|
|
92
|
+
match = plantedMatching(n1, seed);
|
|
93
|
+
}
|
|
94
|
+
const out = binomialBuffer(n1 * n2, p);
|
|
95
|
+
bipartiteRows(options, match, 0, n1, out);
|
|
96
|
+
const side = new Uint8Array(n1 + n2).fill(1, n1);
|
|
97
|
+
return applyWeights(toGraph(n1 + n2, out, false, { side }), options);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=bipartite.js.map
|