@graphty/graph-samples 0.0.1 → 0.1.1

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.
Files changed (407) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +123 -0
  3. package/README.md +190 -1
  4. package/dist/chunks/build-DdCe60t3.js +47 -0
  5. package/dist/chunks/build-DdCe60t3.js.map +1 -0
  6. package/dist/chunks/meta-B6toBzaa.js +19 -0
  7. package/dist/chunks/meta-B6toBzaa.js.map +1 -0
  8. package/dist/chunks/meta-BM_YIhlA.js +28 -0
  9. package/dist/chunks/meta-BM_YIhlA.js.map +1 -0
  10. package/dist/chunks/meta-BMmtUpPx.js +30 -0
  11. package/dist/chunks/meta-BMmtUpPx.js.map +1 -0
  12. package/dist/chunks/meta-BXC7oi86.js +22 -0
  13. package/dist/chunks/meta-BXC7oi86.js.map +1 -0
  14. package/dist/chunks/meta-BaFPvhc1.js +19 -0
  15. package/dist/chunks/meta-BaFPvhc1.js.map +1 -0
  16. package/dist/chunks/meta-C58v1Oy0.js +28 -0
  17. package/dist/chunks/meta-C58v1Oy0.js.map +1 -0
  18. package/dist/chunks/meta-CQRXyexG.js +23 -0
  19. package/dist/chunks/meta-CQRXyexG.js.map +1 -0
  20. package/dist/chunks/meta-DrgM1eS0.js +23 -0
  21. package/dist/chunks/meta-DrgM1eS0.js.map +1 -0
  22. package/dist/chunks/meta-IhoaDXAV.js +19 -0
  23. package/dist/chunks/meta-IhoaDXAV.js.map +1 -0
  24. package/dist/chunks/meta-MQPbBUUB.js +29 -0
  25. package/dist/chunks/meta-MQPbBUUB.js.map +1 -0
  26. package/dist/chunks/meta-Qp4HNYAZ.js +24 -0
  27. package/dist/chunks/meta-Qp4HNYAZ.js.map +1 -0
  28. package/dist/chunks/meta-mns0uFIW.js +19 -0
  29. package/dist/chunks/meta-mns0uFIW.js.map +1 -0
  30. package/dist/datasets/celegans-neural.d.ts +1 -0
  31. package/dist/datasets/celegans-neural.js +7359 -0
  32. package/dist/datasets/celegans-neural.js.map +1 -0
  33. package/dist/datasets/contiguous-usa.d.ts +1 -0
  34. package/dist/datasets/contiguous-usa.js +501 -0
  35. package/dist/datasets/contiguous-usa.js.map +1 -0
  36. package/dist/datasets/davis-southern-women.d.ts +1 -0
  37. package/dist/datasets/davis-southern-women.js +235 -0
  38. package/dist/datasets/davis-southern-women.js.map +1 -0
  39. package/dist/datasets/dolphins.d.ts +1 -0
  40. package/dist/datasets/dolphins.js +406 -0
  41. package/dist/datasets/dolphins.js.map +1 -0
  42. package/dist/datasets/florentine-families.d.ts +1 -0
  43. package/dist/datasets/florentine-families.js +75 -0
  44. package/dist/datasets/florentine-families.js.map +1 -0
  45. package/dist/datasets/football.d.ts +1 -0
  46. package/dist/datasets/football.js +1508 -0
  47. package/dist/datasets/football.js.map +1 -0
  48. package/dist/datasets/karate.d.ts +1 -0
  49. package/dist/datasets/karate.js +295 -0
  50. package/dist/datasets/karate.js.map +1 -0
  51. package/dist/datasets/knuth-miles.d.ts +1 -0
  52. package/dist/datasets/knuth-miles.js +24933 -0
  53. package/dist/datasets/knuth-miles.js.map +1 -0
  54. package/dist/datasets/les-miserables.d.ts +1 -0
  55. package/dist/datasets/les-miserables.js +860 -0
  56. package/dist/datasets/les-miserables.js.map +1 -0
  57. package/dist/datasets/openflights.d.ts +1 -0
  58. package/dist/datasets/openflights.js +130277 -0
  59. package/dist/datasets/openflights.js.map +1 -0
  60. package/dist/datasets/political-blogs.d.ts +1 -0
  61. package/dist/datasets/political-blogs.js +42551 -0
  62. package/dist/datasets/political-blogs.js.map +1 -0
  63. package/dist/datasets/political-books.d.ts +1 -0
  64. package/dist/datasets/political-books.js +1124 -0
  65. package/dist/datasets/political-books.js.map +1 -0
  66. package/dist/generators.d.ts +1 -0
  67. package/dist/generators.js +4496 -0
  68. package/dist/generators.js.map +1 -0
  69. package/dist/graph-samples.d.ts +1 -0
  70. package/dist/graph-samples.js +142 -0
  71. package/dist/graph-samples.js.map +1 -0
  72. package/dist/src/datasets/build.d.ts +89 -0
  73. package/dist/src/datasets/build.d.ts.map +1 -0
  74. package/dist/src/datasets/build.js +53 -0
  75. package/dist/src/datasets/build.js.map +1 -0
  76. package/dist/src/datasets/catalog.d.ts +8 -0
  77. package/dist/src/datasets/catalog.d.ts.map +1 -0
  78. package/dist/src/datasets/catalog.js +34 -0
  79. package/dist/src/datasets/catalog.js.map +1 -0
  80. package/dist/src/datasets/celegans-neural/data.d.ts +3 -0
  81. package/dist/src/datasets/celegans-neural/data.d.ts.map +1 -0
  82. package/dist/src/datasets/celegans-neural/data.js +573 -0
  83. package/dist/src/datasets/celegans-neural/data.js.map +1 -0
  84. package/dist/src/datasets/celegans-neural/index.d.ts +11 -0
  85. package/dist/src/datasets/celegans-neural/index.d.ts.map +1 -0
  86. package/dist/src/datasets/celegans-neural/index.js +14 -0
  87. package/dist/src/datasets/celegans-neural/index.js.map +1 -0
  88. package/dist/src/datasets/celegans-neural/meta.d.ts +4 -0
  89. package/dist/src/datasets/celegans-neural/meta.d.ts.map +1 -0
  90. package/dist/src/datasets/celegans-neural/meta.js +21 -0
  91. package/dist/src/datasets/celegans-neural/meta.js.map +1 -0
  92. package/dist/src/datasets/contiguous-usa/data.d.ts +3 -0
  93. package/dist/src/datasets/contiguous-usa/data.d.ts.map +1 -0
  94. package/dist/src/datasets/contiguous-usa/data.js +162 -0
  95. package/dist/src/datasets/contiguous-usa/data.js.map +1 -0
  96. package/dist/src/datasets/contiguous-usa/index.d.ts +11 -0
  97. package/dist/src/datasets/contiguous-usa/index.d.ts.map +1 -0
  98. package/dist/src/datasets/contiguous-usa/index.js +14 -0
  99. package/dist/src/datasets/contiguous-usa/index.js.map +1 -0
  100. package/dist/src/datasets/contiguous-usa/meta.d.ts +4 -0
  101. package/dist/src/datasets/contiguous-usa/meta.d.ts.map +1 -0
  102. package/dist/src/datasets/contiguous-usa/meta.js +27 -0
  103. package/dist/src/datasets/contiguous-usa/meta.js.map +1 -0
  104. package/dist/src/datasets/davis-southern-women/data.d.ts +3 -0
  105. package/dist/src/datasets/davis-southern-women/data.d.ts.map +1 -0
  106. package/dist/src/datasets/davis-southern-women/data.js +57 -0
  107. package/dist/src/datasets/davis-southern-women/data.js.map +1 -0
  108. package/dist/src/datasets/davis-southern-women/index.d.ts +11 -0
  109. package/dist/src/datasets/davis-southern-women/index.d.ts.map +1 -0
  110. package/dist/src/datasets/davis-southern-women/index.js +14 -0
  111. package/dist/src/datasets/davis-southern-women/index.js.map +1 -0
  112. package/dist/src/datasets/davis-southern-women/meta.d.ts +4 -0
  113. package/dist/src/datasets/davis-southern-women/meta.d.ts.map +1 -0
  114. package/dist/src/datasets/davis-southern-women/meta.js +17 -0
  115. package/dist/src/datasets/davis-southern-women/meta.js.map +1 -0
  116. package/dist/src/datasets/dolphins/data.d.ts +3 -0
  117. package/dist/src/datasets/dolphins/data.d.ts.map +1 -0
  118. package/dist/src/datasets/dolphins/data.js +93 -0
  119. package/dist/src/datasets/dolphins/data.js.map +1 -0
  120. package/dist/src/datasets/dolphins/index.d.ts +11 -0
  121. package/dist/src/datasets/dolphins/index.d.ts.map +1 -0
  122. package/dist/src/datasets/dolphins/index.js +14 -0
  123. package/dist/src/datasets/dolphins/index.js.map +1 -0
  124. package/dist/src/datasets/dolphins/meta.d.ts +4 -0
  125. package/dist/src/datasets/dolphins/meta.d.ts.map +1 -0
  126. package/dist/src/datasets/dolphins/meta.js +17 -0
  127. package/dist/src/datasets/dolphins/meta.js.map +1 -0
  128. package/dist/src/datasets/florentine-families/data.d.ts +3 -0
  129. package/dist/src/datasets/florentine-families/data.d.ts.map +1 -0
  130. package/dist/src/datasets/florentine-families/data.js +31 -0
  131. package/dist/src/datasets/florentine-families/data.js.map +1 -0
  132. package/dist/src/datasets/florentine-families/index.d.ts +11 -0
  133. package/dist/src/datasets/florentine-families/index.d.ts.map +1 -0
  134. package/dist/src/datasets/florentine-families/index.js +14 -0
  135. package/dist/src/datasets/florentine-families/index.js.map +1 -0
  136. package/dist/src/datasets/florentine-families/meta.d.ts +4 -0
  137. package/dist/src/datasets/florentine-families/meta.d.ts.map +1 -0
  138. package/dist/src/datasets/florentine-families/meta.js +17 -0
  139. package/dist/src/datasets/florentine-families/meta.js.map +1 -0
  140. package/dist/src/datasets/football/data.d.ts +3 -0
  141. package/dist/src/datasets/football/data.d.ts.map +1 -0
  142. package/dist/src/datasets/football/data.js +210 -0
  143. package/dist/src/datasets/football/data.js.map +1 -0
  144. package/dist/src/datasets/football/index.d.ts +11 -0
  145. package/dist/src/datasets/football/index.d.ts.map +1 -0
  146. package/dist/src/datasets/football/index.js +14 -0
  147. package/dist/src/datasets/football/index.js.map +1 -0
  148. package/dist/src/datasets/football/meta.d.ts +4 -0
  149. package/dist/src/datasets/football/meta.d.ts.map +1 -0
  150. package/dist/src/datasets/football/meta.js +17 -0
  151. package/dist/src/datasets/football/meta.js.map +1 -0
  152. package/dist/src/datasets/hosted.d.ts +7 -0
  153. package/dist/src/datasets/hosted.d.ts.map +1 -0
  154. package/dist/src/datasets/hosted.js +80 -0
  155. package/dist/src/datasets/hosted.js.map +1 -0
  156. package/dist/src/datasets/karate/data.d.ts +3 -0
  157. package/dist/src/datasets/karate/data.d.ts.map +1 -0
  158. package/dist/src/datasets/karate/data.js +30 -0
  159. package/dist/src/datasets/karate/data.js.map +1 -0
  160. package/dist/src/datasets/karate/index.d.ts +11 -0
  161. package/dist/src/datasets/karate/index.d.ts.map +1 -0
  162. package/dist/src/datasets/karate/index.js +14 -0
  163. package/dist/src/datasets/karate/index.js.map +1 -0
  164. package/dist/src/datasets/karate/meta.d.ts +4 -0
  165. package/dist/src/datasets/karate/meta.d.ts.map +1 -0
  166. package/dist/src/datasets/karate/meta.js +22 -0
  167. package/dist/src/datasets/karate/meta.js.map +1 -0
  168. package/dist/src/datasets/knuth-miles/data.d.ts +3 -0
  169. package/dist/src/datasets/knuth-miles/data.d.ts.map +1 -0
  170. package/dist/src/datasets/knuth-miles/data.js +1203 -0
  171. package/dist/src/datasets/knuth-miles/data.js.map +1 -0
  172. package/dist/src/datasets/knuth-miles/index.d.ts +11 -0
  173. package/dist/src/datasets/knuth-miles/index.d.ts.map +1 -0
  174. package/dist/src/datasets/knuth-miles/index.js +14 -0
  175. package/dist/src/datasets/knuth-miles/index.js.map +1 -0
  176. package/dist/src/datasets/knuth-miles/meta.d.ts +4 -0
  177. package/dist/src/datasets/knuth-miles/meta.d.ts.map +1 -0
  178. package/dist/src/datasets/knuth-miles/meta.js +26 -0
  179. package/dist/src/datasets/knuth-miles/meta.js.map +1 -0
  180. package/dist/src/datasets/les-miserables/data.d.ts +3 -0
  181. package/dist/src/datasets/les-miserables/data.d.ts.map +1 -0
  182. package/dist/src/datasets/les-miserables/data.js +117 -0
  183. package/dist/src/datasets/les-miserables/data.js.map +1 -0
  184. package/dist/src/datasets/les-miserables/index.d.ts +11 -0
  185. package/dist/src/datasets/les-miserables/index.d.ts.map +1 -0
  186. package/dist/src/datasets/les-miserables/index.js +14 -0
  187. package/dist/src/datasets/les-miserables/index.js.map +1 -0
  188. package/dist/src/datasets/les-miserables/meta.d.ts +4 -0
  189. package/dist/src/datasets/les-miserables/meta.d.ts.map +1 -0
  190. package/dist/src/datasets/les-miserables/meta.js +21 -0
  191. package/dist/src/datasets/les-miserables/meta.js.map +1 -0
  192. package/dist/src/datasets/openflights/data.d.ts +3 -0
  193. package/dist/src/datasets/openflights/data.d.ts.map +1 -0
  194. package/dist/src/datasets/openflights/data.js +15457 -0
  195. package/dist/src/datasets/openflights/data.js.map +1 -0
  196. package/dist/src/datasets/openflights/index.d.ts +11 -0
  197. package/dist/src/datasets/openflights/index.d.ts.map +1 -0
  198. package/dist/src/datasets/openflights/index.js +14 -0
  199. package/dist/src/datasets/openflights/index.js.map +1 -0
  200. package/dist/src/datasets/openflights/meta.d.ts +4 -0
  201. package/dist/src/datasets/openflights/meta.d.ts.map +1 -0
  202. package/dist/src/datasets/openflights/meta.js +28 -0
  203. package/dist/src/datasets/openflights/meta.js.map +1 -0
  204. package/dist/src/datasets/political-blogs/data.d.ts +3 -0
  205. package/dist/src/datasets/political-blogs/data.d.ts.map +1 -0
  206. package/dist/src/datasets/political-blogs/data.js +4857 -0
  207. package/dist/src/datasets/political-blogs/data.js.map +1 -0
  208. package/dist/src/datasets/political-blogs/index.d.ts +11 -0
  209. package/dist/src/datasets/political-blogs/index.d.ts.map +1 -0
  210. package/dist/src/datasets/political-blogs/index.js +14 -0
  211. package/dist/src/datasets/political-blogs/index.js.map +1 -0
  212. package/dist/src/datasets/political-blogs/meta.d.ts +4 -0
  213. package/dist/src/datasets/political-blogs/meta.d.ts.map +1 -0
  214. package/dist/src/datasets/political-blogs/meta.js +26 -0
  215. package/dist/src/datasets/political-blogs/meta.js.map +1 -0
  216. package/dist/src/datasets/political-books/data.d.ts +3 -0
  217. package/dist/src/datasets/political-books/data.d.ts.map +1 -0
  218. package/dist/src/datasets/political-books/data.js +165 -0
  219. package/dist/src/datasets/political-books/data.js.map +1 -0
  220. package/dist/src/datasets/political-books/index.d.ts +11 -0
  221. package/dist/src/datasets/political-books/index.d.ts.map +1 -0
  222. package/dist/src/datasets/political-books/index.js +14 -0
  223. package/dist/src/datasets/political-books/index.js.map +1 -0
  224. package/dist/src/datasets/political-books/meta.d.ts +4 -0
  225. package/dist/src/datasets/political-books/meta.d.ts.map +1 -0
  226. package/dist/src/datasets/political-books/meta.js +20 -0
  227. package/dist/src/datasets/political-books/meta.js.map +1 -0
  228. package/dist/src/datasets/remote.d.ts +27 -0
  229. package/dist/src/datasets/remote.d.ts.map +1 -0
  230. package/dist/src/datasets/remote.js +30 -0
  231. package/dist/src/datasets/remote.js.map +1 -0
  232. package/dist/src/element.d.ts +20 -0
  233. package/dist/src/element.d.ts.map +1 -0
  234. package/dist/src/element.js +27 -0
  235. package/dist/src/element.js.map +1 -0
  236. package/dist/src/generators/bipartite.d.ts +51 -0
  237. package/dist/src/generators/bipartite.d.ts.map +1 -0
  238. package/dist/src/generators/bipartite.js +99 -0
  239. package/dist/src/generators/bipartite.js.map +1 -0
  240. package/dist/src/generators/block-model.d.ts +75 -0
  241. package/dist/src/generators/block-model.d.ts.map +1 -0
  242. package/dist/src/generators/block-model.js +116 -0
  243. package/dist/src/generators/block-model.js.map +1 -0
  244. package/dist/src/generators/classic.d.ts +208 -0
  245. package/dist/src/generators/classic.d.ts.map +1 -0
  246. package/dist/src/generators/classic.js +437 -0
  247. package/dist/src/generators/classic.js.map +1 -0
  248. package/dist/src/generators/degree-sequence.d.ts +273 -0
  249. package/dist/src/generators/degree-sequence.d.ts.map +1 -0
  250. package/dist/src/generators/degree-sequence.js +646 -0
  251. package/dist/src/generators/degree-sequence.js.map +1 -0
  252. package/dist/src/generators/directed.d.ts +141 -0
  253. package/dist/src/generators/directed.d.ts.map +1 -0
  254. package/dist/src/generators/directed.js +329 -0
  255. package/dist/src/generators/directed.js.map +1 -0
  256. package/dist/src/generators/erdos-renyi.d.ts +58 -0
  257. package/dist/src/generators/erdos-renyi.d.ts.map +1 -0
  258. package/dist/src/generators/erdos-renyi.js +154 -0
  259. package/dist/src/generators/erdos-renyi.js.map +1 -0
  260. package/dist/src/generators/flow.d.ts +153 -0
  261. package/dist/src/generators/flow.d.ts.map +1 -0
  262. package/dist/src/generators/flow.js +346 -0
  263. package/dist/src/generators/flow.js.map +1 -0
  264. package/dist/src/generators/geometric.d.ts +133 -0
  265. package/dist/src/generators/geometric.d.ts.map +1 -0
  266. package/dist/src/generators/geometric.js +495 -0
  267. package/dist/src/generators/geometric.js.map +1 -0
  268. package/dist/src/generators/growth.d.ts +187 -0
  269. package/dist/src/generators/growth.d.ts.map +1 -0
  270. package/dist/src/generators/growth.js +445 -0
  271. package/dist/src/generators/growth.js.map +1 -0
  272. package/dist/src/generators/hyperbolic.d.ts +84 -0
  273. package/dist/src/generators/hyperbolic.d.ts.map +1 -0
  274. package/dist/src/generators/hyperbolic.js +153 -0
  275. package/dist/src/generators/hyperbolic.js.map +1 -0
  276. package/dist/src/generators/index.d.ts +25 -0
  277. package/dist/src/generators/index.d.ts.map +1 -0
  278. package/dist/src/generators/index.js +24 -0
  279. package/dist/src/generators/index.js.map +1 -0
  280. package/dist/src/generators/lattices.d.ts +87 -0
  281. package/dist/src/generators/lattices.d.ts.map +1 -0
  282. package/dist/src/generators/lattices.js +237 -0
  283. package/dist/src/generators/lattices.js.map +1 -0
  284. package/dist/src/generators/lfr.d.ts +55 -0
  285. package/dist/src/generators/lfr.d.ts.map +1 -0
  286. package/dist/src/generators/lfr.js +178 -0
  287. package/dist/src/generators/lfr.js.map +1 -0
  288. package/dist/src/generators/named.d.ts +23 -0
  289. package/dist/src/generators/named.d.ts.map +1 -0
  290. package/dist/src/generators/named.js +191 -0
  291. package/dist/src/generators/named.js.map +1 -0
  292. package/dist/src/generators/preferential-attachment.d.ts +66 -0
  293. package/dist/src/generators/preferential-attachment.d.ts.map +1 -0
  294. package/dist/src/generators/preferential-attachment.js +157 -0
  295. package/dist/src/generators/preferential-attachment.js.map +1 -0
  296. package/dist/src/generators/trees-and-dags.d.ts +53 -0
  297. package/dist/src/generators/trees-and-dags.d.ts.map +1 -0
  298. package/dist/src/generators/trees-and-dags.js +108 -0
  299. package/dist/src/generators/trees-and-dags.js.map +1 -0
  300. package/dist/src/generators/util.d.ts +84 -0
  301. package/dist/src/generators/util.d.ts.map +1 -0
  302. package/dist/src/generators/util.js +138 -0
  303. package/dist/src/generators/util.js.map +1 -0
  304. package/dist/src/generators/variants.d.ts +85 -0
  305. package/dist/src/generators/variants.d.ts.map +1 -0
  306. package/dist/src/generators/variants.js +215 -0
  307. package/dist/src/generators/variants.js.map +1 -0
  308. package/dist/src/generators/weights.d.ts +65 -0
  309. package/dist/src/generators/weights.d.ts.map +1 -0
  310. package/dist/src/generators/weights.js +135 -0
  311. package/dist/src/generators/weights.js.map +1 -0
  312. package/dist/src/index.d.ts +12 -0
  313. package/dist/src/index.d.ts.map +1 -0
  314. package/dist/src/index.js +10 -0
  315. package/dist/src/index.js.map +1 -0
  316. package/dist/src/random/exp.d.ts +23 -0
  317. package/dist/src/random/exp.d.ts.map +1 -0
  318. package/dist/src/random/exp.js +101 -0
  319. package/dist/src/random/exp.js.map +1 -0
  320. package/dist/src/random/log.d.ts +19 -0
  321. package/dist/src/random/log.d.ts.map +1 -0
  322. package/dist/src/random/log.js +83 -0
  323. package/dist/src/random/log.js.map +1 -0
  324. package/dist/src/random/stream.d.ts +93 -0
  325. package/dist/src/random/stream.d.ts.map +1 -0
  326. package/dist/src/random/stream.js +154 -0
  327. package/dist/src/random/stream.js.map +1 -0
  328. package/dist/src/random/threefry.d.ts +19 -0
  329. package/dist/src/random/threefry.d.ts.map +1 -0
  330. package/dist/src/random/threefry.js +43 -0
  331. package/dist/src/random/threefry.js.map +1 -0
  332. package/dist/src/random/trig.d.ts +16 -0
  333. package/dist/src/random/trig.d.ts.map +1 -0
  334. package/dist/src/random/trig.js +78 -0
  335. package/dist/src/random/trig.js.map +1 -0
  336. package/dist/src/types.d.ts +28 -0
  337. package/dist/src/types.d.ts.map +1 -0
  338. package/dist/src/types.js +2 -0
  339. package/dist/src/types.js.map +1 -0
  340. package/package.json +102 -5
  341. package/src/datasets/build.ts +140 -0
  342. package/src/datasets/catalog.ts +35 -0
  343. package/src/datasets/celegans-neural/data.ts +575 -0
  344. package/src/datasets/celegans-neural/index.ts +17 -0
  345. package/src/datasets/celegans-neural/meta.ts +25 -0
  346. package/src/datasets/contiguous-usa/data.ts +164 -0
  347. package/src/datasets/contiguous-usa/index.ts +17 -0
  348. package/src/datasets/contiguous-usa/meta.ts +31 -0
  349. package/src/datasets/davis-southern-women/data.ts +59 -0
  350. package/src/datasets/davis-southern-women/index.ts +17 -0
  351. package/src/datasets/davis-southern-women/meta.ts +20 -0
  352. package/src/datasets/dolphins/data.ts +95 -0
  353. package/src/datasets/dolphins/index.ts +17 -0
  354. package/src/datasets/dolphins/meta.ts +21 -0
  355. package/src/datasets/florentine-families/data.ts +33 -0
  356. package/src/datasets/florentine-families/index.ts +17 -0
  357. package/src/datasets/florentine-families/meta.ts +20 -0
  358. package/src/datasets/football/data.ts +212 -0
  359. package/src/datasets/football/index.ts +17 -0
  360. package/src/datasets/football/meta.ts +20 -0
  361. package/src/datasets/hosted.ts +90 -0
  362. package/src/datasets/karate/data.ts +32 -0
  363. package/src/datasets/karate/index.ts +17 -0
  364. package/src/datasets/karate/meta.ts +25 -0
  365. package/src/datasets/knuth-miles/data.ts +1205 -0
  366. package/src/datasets/knuth-miles/index.ts +17 -0
  367. package/src/datasets/knuth-miles/meta.ts +29 -0
  368. package/src/datasets/les-miserables/data.ts +119 -0
  369. package/src/datasets/les-miserables/index.ts +17 -0
  370. package/src/datasets/les-miserables/meta.ts +24 -0
  371. package/src/datasets/openflights/data.ts +15459 -0
  372. package/src/datasets/openflights/index.ts +17 -0
  373. package/src/datasets/openflights/meta.ts +31 -0
  374. package/src/datasets/political-blogs/data.ts +4859 -0
  375. package/src/datasets/political-blogs/index.ts +17 -0
  376. package/src/datasets/political-blogs/meta.ts +30 -0
  377. package/src/datasets/political-books/data.ts +167 -0
  378. package/src/datasets/political-books/index.ts +17 -0
  379. package/src/datasets/political-books/meta.ts +23 -0
  380. package/src/datasets/remote.ts +42 -0
  381. package/src/element.ts +41 -0
  382. package/src/generators/bipartite.ts +127 -0
  383. package/src/generators/block-model.ts +160 -0
  384. package/src/generators/classic.ts +461 -0
  385. package/src/generators/degree-sequence.ts +807 -0
  386. package/src/generators/directed.ts +418 -0
  387. package/src/generators/erdos-renyi.ts +188 -0
  388. package/src/generators/flow.ts +443 -0
  389. package/src/generators/geometric.ts +591 -0
  390. package/src/generators/growth.ts +532 -0
  391. package/src/generators/hyperbolic.ts +193 -0
  392. package/src/generators/index.ts +133 -0
  393. package/src/generators/lattices.ts +290 -0
  394. package/src/generators/lfr.ts +227 -0
  395. package/src/generators/named.ts +198 -0
  396. package/src/generators/preferential-attachment.ts +188 -0
  397. package/src/generators/trees-and-dags.ts +139 -0
  398. package/src/generators/util.ts +167 -0
  399. package/src/generators/variants.ts +253 -0
  400. package/src/generators/weights.ts +177 -0
  401. package/src/index.ts +12 -0
  402. package/src/random/exp.ts +104 -0
  403. package/src/random/log.ts +86 -0
  404. package/src/random/stream.ts +169 -0
  405. package/src/random/threefry.ts +45 -0
  406. package/src/random/trig.ts +83 -0
  407. package/src/types.ts +28 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degree-sequence.js","sourceRoot":"","sources":["../../../src/generators/degree-sequence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Directed random graphs: stochastic Kronecker graphs and R-MAT (the recursive-matrix family behind
3
+ * the Graph500 benchmark), Price's citation network and the random-order DAG.
4
+ */
5
+ import { type SampleGraph } from "../types.js";
6
+ import { type EdgePolicy } from "./degree-sequence.js";
7
+ import { EdgeBuffer } from "./util.js";
8
+ import { type WeightOptions } from "./weights.js";
9
+ /** The options R-MAT and Kronecker graphs share. */
10
+ interface RecursiveOptions extends WeightOptions {
11
+ /** Self-loops: "keep" (the default) or "erase" them. */
12
+ selfLoops?: EdgePolicy | undefined;
13
+ /**
14
+ * Repeated pairs: "keep" (the default) or "erase" all but the first occurrence in edge order.
15
+ * For an undirected graph (u, v) and (v, u) are the same pair.
16
+ */
17
+ multiEdges?: EdgePolicy | undefined;
18
+ /** Relabel the nodes by a uniformly random permutation, as Graph500 does; default false. */
19
+ permute?: boolean | undefined;
20
+ /** Whether the graph is directed; default true. */
21
+ directed?: boolean | undefined;
22
+ /** The seed, an integer in [0, 2^53); default 0. */
23
+ seed?: number | undefined;
24
+ }
25
+ /** Options of {@link kroneckerGraph}. */
26
+ export interface KroneckerOptions extends RecursiveOptions {
27
+ /** The k x k initiator matrix, k >= 1, entries in [0, 1]. */
28
+ initiator: readonly (readonly number[])[];
29
+ /** The Kronecker power, in [1, 64]; the graph has k^power nodes. */
30
+ power: number;
31
+ /** The number of edges to sample; default round((sum of the initiator)^power). */
32
+ edges?: number | undefined;
33
+ }
34
+ /**
35
+ * A stochastic Kronecker graph (J. Leskovec, D. Chakrabarti, J. Kleinberg, C. Faloutsos and
36
+ * Z. Ghahramani, "Kronecker graphs: an approach to modeling networks", JMLR 11, 985-1042, 2010)
37
+ * by their fast O(E power) sampling: n = k^power nodes and E = round(S^power) edges, S the sum of
38
+ * the initiator (S^power by repeated multiplication), unless `edges` is given. Edge e draws from
39
+ * stream (seed, "kronecker", e): `power` descents, most significant first, each drawing
40
+ * u = nextFloat() and picking the first initiator cell (row-major) whose cumulative entry over S
41
+ * exceeds u; cell (r, c) appends digit r to the source and c to the target in base k. Edges are
42
+ * listed in sampling order. A multigraph unless erased: see `selfLoops`, `multiEdges`, `permute`
43
+ * (stream (seed, "kronecker-permute", 0)) and `directed`.
44
+ * @param options - initiator, power, edges, the shared recursive options and seed
45
+ * @returns the graph
46
+ */
47
+ export declare function kroneckerGraph(options: KroneckerOptions): SampleGraph;
48
+ /** Options of {@link rmatGraph}. */
49
+ export interface RmatOptions extends RecursiveOptions {
50
+ /** log2 of the node count, in [0, 31]. */
51
+ scale: number;
52
+ /** Edges per node, an integer >= 0; default 16 (Graph500). */
53
+ edgeFactor?: number | undefined;
54
+ /** The top-left quadrant probability; default 0.57 (Graph500). */
55
+ a?: number | undefined;
56
+ /** The top-right quadrant probability; default 0.19. */
57
+ b?: number | undefined;
58
+ /** The bottom-left quadrant probability; default 0.19. */
59
+ c?: number | undefined;
60
+ /** The bottom-right quadrant probability; default 0.05. a + b + c + d must be 1. */
61
+ d?: number | undefined;
62
+ }
63
+ /**
64
+ * R-MAT (D. Chakrabarti, Y. Zhan and C. Faloutsos, "R-MAT: a recursive model for graph mining",
65
+ * SIAM SDM 2004, 442-446, doi:10.1137/1.9781611972740.43) with Graph500's defaults: n = 2^scale
66
+ * nodes and m = edgeFactor n edges in O(m scale). Edge e draws from stream (seed, "rmat", e):
67
+ * `scale` levels, most significant bit first, each comparing one nextFloat() with a, a + b and
68
+ * a + b + c to pick the top-left, top-right, bottom-left or else bottom-right quadrant (bit 0/1 of
69
+ * the source for top/bottom, of the target for left/right). Edges are listed in sampling order.
70
+ * A multigraph with self-loops unless erased: see `selfLoops`, `multiEdges`, `permute` (stream
71
+ * (seed, "rmat-permute", 0)) and `directed`.
72
+ *
73
+ * webgpu-graph-algorithms carries three private R-MAT copies on xorshift / LCG streams
74
+ * (benchmarks/datasets.ts, test/helpers/graphs.ts, demo/main.ts) that should move to this. Two
75
+ * of them move a self-loop to (u, (v + 1) mod n), keeping exactly m edges; `selfLoops: "erase"`
76
+ * drops the loop instead (about m / n^0.4 fewer edges at the defaults), and `weights: { kind:
77
+ * "integer", min: 1, max: 10 }` reproduces their 1..10 weights. The third keeps self-loops, which
78
+ * is this function's default.
79
+ * @param options - scale, edgeFactor, a, b, c, d, the shared recursive options and seed
80
+ * @returns the graph
81
+ */
82
+ export declare function rmatGraph(options: RmatOptions): SampleGraph;
83
+ /** Options of {@link priceGraph}. */
84
+ export interface PriceOptions extends WeightOptions {
85
+ /** The node count, >= 1. */
86
+ n: number;
87
+ /** The number of earlier nodes each new node cites, >= 1 (fewer while fewer exist). */
88
+ citations: number;
89
+ /** The attractiveness a > 0 added to every in-degree; default 1. */
90
+ attractiveness?: number | undefined;
91
+ /** The seed, an integer in [0, 2^53); default 0. */
92
+ seed?: number | undefined;
93
+ }
94
+ /**
95
+ * Price's citation network (D. J. de S. Price, "Networks of scientific papers", Science 149,
96
+ * 510-515, 1965, doi:10.1126/science.149.3683.510; "A general theory of bibliometric and other
97
+ * cumulative advantage processes", J. Am. Soc. Inf. Sci. 27, 292-306, 1976): a directed acyclic
98
+ * graph with arcs from the citing (newer) node to the cited (older) one, in-degrees following a
99
+ * power law with exponent 2 + a / m.
100
+ *
101
+ * Node t = 1 .. n - 1 cites min(m, t) distinct earlier nodes, each chosen with probability
102
+ * proportional to in-degree + a, the in-degrees as they were when t arrived. When t <= m it cites
103
+ * every earlier node, ascending, without drawing. Otherwise, with E arcs made before t, every draw
104
+ * takes x = nextFloat() * (E + a t) and then, if x < E, the target of a uniformly chosen earlier
105
+ * arc (nextBelow(E) into the list of cited targets), else a uniform node nextBelow(t); a node t
106
+ * already cites is redrawn. All draws come from the single stream (seed, "price", 0): the process
107
+ * is sequential. Arcs are listed by citing node, in draw order. O(n m) expected.
108
+ * @param options - n, citations, attractiveness and seed
109
+ * @returns the directed graph
110
+ */
111
+ export declare function priceGraph(options: PriceOptions): SampleGraph;
112
+ /** Options of {@link randomOrderDagGraph}. */
113
+ export interface RandomOrderDagOptions extends WeightOptions {
114
+ /** The node count, >= 0. */
115
+ n: number;
116
+ /** The probability of each arc i -> j, i < j, in [0, 1]. */
117
+ p: number;
118
+ /** The seed, an integer in [0, 2^53); default 0. */
119
+ seed?: number | undefined;
120
+ }
121
+ /**
122
+ * Rows [start, end) of the random-order DAG: row u draws from stream (seed, "order-dag", u) and
123
+ * holds the arcs u -> v, v = u + 1 .. n - 1 chosen, ascending. Any split of [0, n) into
124
+ * consecutive ranges concatenates to the whole graph's arc list.
125
+ * @param options - the generator's options (already checked)
126
+ * @param start - the first row
127
+ * @param end - one past the last row
128
+ * @param out - receives the arcs
129
+ */
130
+ export declare function orderDagRows(options: RandomOrderDagOptions, start: number, end: number, out: EdgeBuffer): void;
131
+ /**
132
+ * The random-order DAG: a directed G(n, p) restricted to the arcs i -> j with i < j, so node
133
+ * index order is a topological order (B. Karrer and M. E. J. Newman, "Random acyclic networks",
134
+ * Phys. Rev. Lett. 102, 128701, 2009, doi:10.1103/PhysRevLett.102.128701). O(n + m) by geometric
135
+ * skipping; arcs in row-major order, see {@link orderDagRows}.
136
+ * @param options - n, p and seed
137
+ * @returns the directed acyclic graph
138
+ */
139
+ export declare function randomOrderDagGraph(options: RandomOrderDagOptions): SampleGraph;
140
+ export {};
141
+ //# sourceMappingURL=directed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directed.d.ts","sourceRoot":"","sources":["../../../src/generators/directed.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAMH,UAAU,EAEb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,oDAAoD;AACpD,UAAU,gBAAiB,SAAQ,aAAa;IAC5C,wDAAwD;IACxD,SAAS,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACpC,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAkGD,yCAAyC;AACzC,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACtD,6DAA6D;IAC7D,SAAS,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC1C,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CA6DrE;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACjD,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,kEAAkE;IAClE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,wDAAwD;IACxD,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,0DAA0D;IAC1D,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,oFAAoF;IACpF,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAgD3D;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAa,SAAQ,aAAa;IAC/C,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW,CAmC7D;AAED,8CAA8C;AAC9C,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,4DAA4D;IAC5D,CAAC,EAAE,MAAM,CAAC;IACV,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAQ9G;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW,CAQ/E"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Directed random graphs: stochastic Kronecker graphs and R-MAT (the recursive-matrix family behind
3
+ * the Graph500 benchmark), Price's citation network and the random-order DAG.
4
+ */
5
+ import { detLog } from "../random/log.js";
6
+ import { RandomStream, resolveSeed } from "../random/stream.js";
7
+ import { bernoulliSegment, binomialBuffer, checkEdgeCount, checkInt, checkProbability, EdgeBuffer, toGraph, } from "./util.js";
8
+ import { applyWeights } from "./weights.js";
9
+ /**
10
+ * Throw unless `value` is undefined or a duplicate policy.
11
+ * @param name - the option name
12
+ * @param value - the value
13
+ */
14
+ function checkPolicy(name, value) {
15
+ if (value !== undefined && value !== "keep" && value !== "erase") {
16
+ throw new RangeError(`${name} must be "keep" or "erase", got ${String(value)}`);
17
+ }
18
+ }
19
+ /**
20
+ * Apply `permute`, `selfLoops` and `multiEdges` to freshly sampled edges, then build the graph.
21
+ * The permutation is a Fisher-Yates shuffle of 0 .. n - 1 (for i = n - 1 down to 1, swap i with
22
+ * nextBelow(i + 1)) from stream (seed, permuteDomain, 0); node u becomes perm[u]. Erasing keeps
23
+ * the first occurrence of a pair in edge order, and is not affected by the relabelling.
24
+ * @param n - the node count
25
+ * @param src - the sources, in edge order
26
+ * @param dst - the targets
27
+ * @param options - the options
28
+ * @param seed - the resolved seed
29
+ * @param permuteDomain - the permutation's stream domain
30
+ * @returns the graph (before weights)
31
+ */
32
+ function finishRecursive(n, src, dst, options, seed, permuteDomain) {
33
+ const directed = options.directed ?? true;
34
+ const m = src.length;
35
+ if (options.permute === true) {
36
+ const perm = new Uint32Array(n);
37
+ for (let i = 0; i < n; i++) {
38
+ perm[i] = i;
39
+ }
40
+ const stream = new RandomStream(seed, permuteDomain, 0);
41
+ for (let i = n - 1; i > 0; i--) {
42
+ const j = stream.nextBelow(i + 1);
43
+ const t = perm[i];
44
+ perm[i] = perm[j];
45
+ perm[j] = t;
46
+ }
47
+ for (let e = 0; e < m; e++) {
48
+ src[e] = perm[src[e]];
49
+ dst[e] = perm[dst[e]];
50
+ }
51
+ }
52
+ const keep = new Uint8Array(m).fill(1);
53
+ if (options.selfLoops === "erase") {
54
+ for (let e = 0; e < m; e++) {
55
+ if (src[e] === dst[e]) {
56
+ keep[e] = 0;
57
+ }
58
+ }
59
+ }
60
+ if (options.multiEdges === "erase") {
61
+ const lo = directed ? src : src.map((u, e) => Math.min(u, dst[e]));
62
+ const hi = directed ? dst : src.map((u, e) => Math.max(u, dst[e]));
63
+ // ponytail: O(m log m) comparator sort of edge indices; a hash set if erasing 100M+ edges matters
64
+ const order = new Uint32Array(m);
65
+ for (let e = 0; e < m; e++) {
66
+ order[e] = e;
67
+ }
68
+ order.sort((a, b) => lo[a] - lo[b] || hi[a] - hi[b] || a - b);
69
+ for (let i = 1; i < m; i++) {
70
+ const a = order[i - 1];
71
+ const b = order[i];
72
+ if (lo[a] === lo[b] && hi[a] === hi[b]) {
73
+ keep[b] = 0;
74
+ }
75
+ }
76
+ }
77
+ const out = new EdgeBuffer(m);
78
+ for (let e = 0; e < m; e++) {
79
+ if (keep[e] === 1) {
80
+ out.push(src[e], dst[e]);
81
+ }
82
+ }
83
+ return toGraph(n, out, directed);
84
+ }
85
+ /**
86
+ * Check the options R-MAT and Kronecker graphs share.
87
+ * @param options - the options
88
+ * @returns the resolved seed
89
+ */
90
+ function checkRecursive(options) {
91
+ checkPolicy("selfLoops", options.selfLoops);
92
+ checkPolicy("multiEdges", options.multiEdges);
93
+ return resolveSeed(options.seed);
94
+ }
95
+ /**
96
+ * A stochastic Kronecker graph (J. Leskovec, D. Chakrabarti, J. Kleinberg, C. Faloutsos and
97
+ * Z. Ghahramani, "Kronecker graphs: an approach to modeling networks", JMLR 11, 985-1042, 2010)
98
+ * by their fast O(E power) sampling: n = k^power nodes and E = round(S^power) edges, S the sum of
99
+ * the initiator (S^power by repeated multiplication), unless `edges` is given. Edge e draws from
100
+ * stream (seed, "kronecker", e): `power` descents, most significant first, each drawing
101
+ * u = nextFloat() and picking the first initiator cell (row-major) whose cumulative entry over S
102
+ * exceeds u; cell (r, c) appends digit r to the source and c to the target in base k. Edges are
103
+ * listed in sampling order. A multigraph unless erased: see `selfLoops`, `multiEdges`, `permute`
104
+ * (stream (seed, "kronecker-permute", 0)) and `directed`.
105
+ * @param options - initiator, power, edges, the shared recursive options and seed
106
+ * @returns the graph
107
+ */
108
+ export function kroneckerGraph(options) {
109
+ const { initiator, power } = options;
110
+ const k = initiator.length;
111
+ checkInt("initiator.length", k, 1);
112
+ let sum = 0;
113
+ for (let r = 0; r < k; r++) {
114
+ checkInt(`initiator[${r}].length`, initiator[r].length, k, k);
115
+ for (const value of initiator[r]) {
116
+ checkProbability(`initiator[${r}] entries`, value);
117
+ sum += value;
118
+ }
119
+ }
120
+ checkInt("power", power, 1, 64);
121
+ let n = 1;
122
+ let mean = 1;
123
+ for (let i = 0; i < power; i++) {
124
+ n *= k;
125
+ mean *= sum;
126
+ }
127
+ checkInt("k^power (the node count)", n, 1);
128
+ const m = options.edges ?? Math.round(mean);
129
+ checkEdgeCount(m);
130
+ checkInt("edges", m, 0);
131
+ if (m > 0 && sum === 0) {
132
+ throw new RangeError("edges must be 0 when the initiator is all zeros");
133
+ }
134
+ const seed = checkRecursive(options);
135
+ // cumulative table over S; from the last positive cell on it is exactly 1, so u < 1 always hits
136
+ const cells = k * k;
137
+ const cumulative = new Float64Array(cells);
138
+ let partial = 0;
139
+ let lastPositive = 0;
140
+ for (let i = 0; i < cells; i++) {
141
+ const value = initiator[Math.floor(i / k)][i % k];
142
+ partial += value;
143
+ cumulative[i] = partial / sum;
144
+ if (value > 0) {
145
+ lastPositive = i;
146
+ }
147
+ }
148
+ cumulative.fill(1, lastPositive);
149
+ const src = new Uint32Array(m);
150
+ const dst = new Uint32Array(m);
151
+ const stream = new RandomStream(seed, "kronecker", 0);
152
+ for (let e = 0; e < m; e++) {
153
+ stream.reset(e);
154
+ let u = 0;
155
+ let v = 0;
156
+ for (let level = 0; level < power; level++) {
157
+ const x = stream.nextFloat();
158
+ let cell = 0;
159
+ while (x >= cumulative[cell]) {
160
+ cell++;
161
+ }
162
+ u = u * k + Math.floor(cell / k);
163
+ v = v * k + (cell % k);
164
+ }
165
+ src[e] = u;
166
+ dst[e] = v;
167
+ }
168
+ return applyWeights(finishRecursive(n, src, dst, options, seed, "kronecker-permute"), options);
169
+ }
170
+ /**
171
+ * R-MAT (D. Chakrabarti, Y. Zhan and C. Faloutsos, "R-MAT: a recursive model for graph mining",
172
+ * SIAM SDM 2004, 442-446, doi:10.1137/1.9781611972740.43) with Graph500's defaults: n = 2^scale
173
+ * nodes and m = edgeFactor n edges in O(m scale). Edge e draws from stream (seed, "rmat", e):
174
+ * `scale` levels, most significant bit first, each comparing one nextFloat() with a, a + b and
175
+ * a + b + c to pick the top-left, top-right, bottom-left or else bottom-right quadrant (bit 0/1 of
176
+ * the source for top/bottom, of the target for left/right). Edges are listed in sampling order.
177
+ * A multigraph with self-loops unless erased: see `selfLoops`, `multiEdges`, `permute` (stream
178
+ * (seed, "rmat-permute", 0)) and `directed`.
179
+ *
180
+ * webgpu-graph-algorithms carries three private R-MAT copies on xorshift / LCG streams
181
+ * (benchmarks/datasets.ts, test/helpers/graphs.ts, demo/main.ts) that should move to this. Two
182
+ * of them move a self-loop to (u, (v + 1) mod n), keeping exactly m edges; `selfLoops: "erase"`
183
+ * drops the loop instead (about m / n^0.4 fewer edges at the defaults), and `weights: { kind:
184
+ * "integer", min: 1, max: 10 }` reproduces their 1..10 weights. The third keeps self-loops, which
185
+ * is this function's default.
186
+ * @param options - scale, edgeFactor, a, b, c, d, the shared recursive options and seed
187
+ * @returns the graph
188
+ */
189
+ export function rmatGraph(options) {
190
+ const { scale } = options;
191
+ const edgeFactor = options.edgeFactor ?? 16;
192
+ const a = options.a ?? 0.57;
193
+ const b = options.b ?? 0.19;
194
+ const c = options.c ?? 0.19;
195
+ const d = options.d ?? 0.05;
196
+ checkInt("scale", scale, 0, 31);
197
+ checkInt("edgeFactor", edgeFactor, 0);
198
+ checkProbability("a", a);
199
+ checkProbability("b", b);
200
+ checkProbability("c", c);
201
+ checkProbability("d", d);
202
+ if (Math.abs(a + b + c + d - 1) > 1e-9) {
203
+ throw new RangeError(`a + b + c + d must be 1, got ${a + b + c + d}`);
204
+ }
205
+ const n = 2 ** scale;
206
+ const m = edgeFactor * n;
207
+ checkEdgeCount(m);
208
+ const seed = checkRecursive(options);
209
+ const ab = a + b;
210
+ const abc = a + b + c;
211
+ const src = new Uint32Array(m);
212
+ const dst = new Uint32Array(m);
213
+ const stream = new RandomStream(seed, "rmat", 0);
214
+ for (let e = 0; e < m; e++) {
215
+ stream.reset(e);
216
+ let u = 0;
217
+ let v = 0;
218
+ for (let level = 0; level < scale; level++) {
219
+ const x = stream.nextFloat();
220
+ u *= 2;
221
+ v *= 2;
222
+ if (x < a) {
223
+ // top-left
224
+ }
225
+ else if (x < ab) {
226
+ v += 1;
227
+ }
228
+ else if (x < abc) {
229
+ u += 1;
230
+ }
231
+ else {
232
+ u += 1;
233
+ v += 1;
234
+ }
235
+ }
236
+ src[e] = u;
237
+ dst[e] = v;
238
+ }
239
+ return applyWeights(finishRecursive(n, src, dst, options, seed, "rmat-permute"), options);
240
+ }
241
+ /**
242
+ * Price's citation network (D. J. de S. Price, "Networks of scientific papers", Science 149,
243
+ * 510-515, 1965, doi:10.1126/science.149.3683.510; "A general theory of bibliometric and other
244
+ * cumulative advantage processes", J. Am. Soc. Inf. Sci. 27, 292-306, 1976): a directed acyclic
245
+ * graph with arcs from the citing (newer) node to the cited (older) one, in-degrees following a
246
+ * power law with exponent 2 + a / m.
247
+ *
248
+ * Node t = 1 .. n - 1 cites min(m, t) distinct earlier nodes, each chosen with probability
249
+ * proportional to in-degree + a, the in-degrees as they were when t arrived. When t <= m it cites
250
+ * every earlier node, ascending, without drawing. Otherwise, with E arcs made before t, every draw
251
+ * takes x = nextFloat() * (E + a t) and then, if x < E, the target of a uniformly chosen earlier
252
+ * arc (nextBelow(E) into the list of cited targets), else a uniform node nextBelow(t); a node t
253
+ * already cites is redrawn. All draws come from the single stream (seed, "price", 0): the process
254
+ * is sequential. Arcs are listed by citing node, in draw order. O(n m) expected.
255
+ * @param options - n, citations, attractiveness and seed
256
+ * @returns the directed graph
257
+ */
258
+ export function priceGraph(options) {
259
+ const { n, citations: m } = options;
260
+ const attractiveness = options.attractiveness ?? 1;
261
+ checkInt("n", n, 1);
262
+ checkInt("citations", m, 1);
263
+ if (!(attractiveness > 0 && Number.isFinite(attractiveness))) {
264
+ throw new RangeError(`attractiveness must be a positive number, got ${String(attractiveness)}`);
265
+ }
266
+ const seed = resolveSeed(options.seed);
267
+ const full = Math.min(m, n);
268
+ const edgeCount = (full * (full - 1)) / 2 + (n - full) * m;
269
+ checkEdgeCount(edgeCount);
270
+ const stream = new RandomStream(seed, "price", 0);
271
+ const out = new EdgeBuffer(edgeCount);
272
+ const citedBy = new Int32Array(n).fill(-1);
273
+ for (let t = 1; t < n; t++) {
274
+ const arcs = out.length;
275
+ if (t <= m) {
276
+ for (let v = 0; v < t; v++) {
277
+ out.push(t, v);
278
+ }
279
+ continue;
280
+ }
281
+ const total = arcs + attractiveness * t;
282
+ for (let found = 0; found < m;) {
283
+ const x = stream.nextFloat() * total;
284
+ const v = x < arcs ? out.dst[stream.nextBelow(arcs)] : stream.nextBelow(t);
285
+ if (citedBy[v] !== t) {
286
+ citedBy[v] = t;
287
+ out.push(t, v);
288
+ found++;
289
+ }
290
+ }
291
+ }
292
+ return applyWeights(toGraph(n, out, true), options);
293
+ }
294
+ /**
295
+ * Rows [start, end) of the random-order DAG: row u draws from stream (seed, "order-dag", u) and
296
+ * holds the arcs u -> v, v = u + 1 .. n - 1 chosen, ascending. Any split of [0, n) into
297
+ * consecutive ranges concatenates to the whole graph's arc list.
298
+ * @param options - the generator's options (already checked)
299
+ * @param start - the first row
300
+ * @param end - one past the last row
301
+ * @param out - receives the arcs
302
+ */
303
+ export function orderDagRows(options, start, end, out) {
304
+ const { n, p } = options;
305
+ const logQ = detLog(1 - p);
306
+ const stream = new RandomStream(resolveSeed(options.seed), "order-dag", 0);
307
+ for (let u = start; u < end; u++) {
308
+ stream.reset(u);
309
+ bernoulliSegment(stream, p, logQ, u, u + 1, n, out);
310
+ }
311
+ }
312
+ /**
313
+ * The random-order DAG: a directed G(n, p) restricted to the arcs i -> j with i < j, so node
314
+ * index order is a topological order (B. Karrer and M. E. J. Newman, "Random acyclic networks",
315
+ * Phys. Rev. Lett. 102, 128701, 2009, doi:10.1103/PhysRevLett.102.128701). O(n + m) by geometric
316
+ * skipping; arcs in row-major order, see {@link orderDagRows}.
317
+ * @param options - n, p and seed
318
+ * @returns the directed acyclic graph
319
+ */
320
+ export function randomOrderDagGraph(options) {
321
+ const { n, p } = options;
322
+ checkInt("n", n, 0);
323
+ checkProbability("p", p);
324
+ resolveSeed(options.seed);
325
+ const out = binomialBuffer((n * (n - 1)) / 2, p);
326
+ orderDagRows(options, 0, n, out);
327
+ return applyWeights(toGraph(n, out, true), options);
328
+ }
329
+ //# sourceMappingURL=directed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directed.js","sourceRoot":"","sources":["../../../src/generators/directed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Erdos-Renyi random graphs: Gilbert's G(n, p) (every pair independently with probability p) and
3
+ * Erdos-Renyi's G(n, m) (m pairs uniformly without replacement).
4
+ */
5
+ import { type SampleGraph } from "../types.js";
6
+ import { EdgeBuffer } from "./util.js";
7
+ import { type WeightOptions } from "./weights.js";
8
+ /** Options of {@link erdosRenyiGraph}. */
9
+ export interface ErdosRenyiOptions extends WeightOptions {
10
+ /** The node count, >= 0. */
11
+ n: number;
12
+ /** The probability of each pair, in [0, 1]. */
13
+ p: number;
14
+ /**
15
+ * Directed: every ordered pair (u, v), u != v, is an arc independently with probability p.
16
+ * Default false (unordered pairs).
17
+ */
18
+ directed?: boolean | undefined;
19
+ /** The seed, an integer in [0, 2^53); default 0. */
20
+ seed?: number | undefined;
21
+ }
22
+ /**
23
+ * Rows [start, end) of G(n, p): row u draws from stream (seed, "gnp", u) and holds the pairs
24
+ * (u, v), v = u + 1 .. n - 1, in ascending v. Concatenating any split of [0, n) into consecutive
25
+ * ranges gives exactly the whole graph's edge list.
26
+ * @param options - the generator's options (already checked)
27
+ * @param start - the first row
28
+ * @param end - one past the last row
29
+ * @param out - receives the edges
30
+ */
31
+ export declare function erdosRenyiRows(options: ErdosRenyiOptions, start: number, end: number, out: EdgeBuffer): void;
32
+ /**
33
+ * Gilbert's G(n, p) in O(n + m) by geometric skipping (Batagelj and Brandes 2005). Edges are the
34
+ * pairs (u, v), u < v, in row-major order; row u draws from its own stream, so the graph does not
35
+ * depend on how the rows are split between workers. With `directed: true`, the arcs (u, v) of
36
+ * every ordered pair u != v, by u then v ascending, each row from stream (seed, "gnp-directed", u).
37
+ * @param options - n, p and seed
38
+ * @returns the undirected graph
39
+ */
40
+ export declare function erdosRenyiGraph(options: ErdosRenyiOptions): SampleGraph;
41
+ /** Options of {@link erdosRenyiGnmGraph}. */
42
+ export interface ErdosRenyiGnmOptions extends WeightOptions {
43
+ /** The node count, >= 0. */
44
+ n: number;
45
+ /** The edge count, in [0, n (n - 1) / 2]. */
46
+ m: number;
47
+ /** The seed, an integer in [0, 2^53); default 0. */
48
+ seed?: number | undefined;
49
+ }
50
+ /**
51
+ * Erdos-Renyi's G(n, m): m distinct pairs chosen uniformly, by Floyd's sampling over the pair
52
+ * indices 0 .. n (n - 1) / 2 - 1 (exactly m draws from stream (seed, "gnm", 0), no rejection
53
+ * loop), in O(m log m). Edges are the pairs (u, v), u < v, in row-major order.
54
+ * @param options - n, m and seed
55
+ * @returns the undirected graph
56
+ */
57
+ export declare function erdosRenyiGnmGraph(options: ErdosRenyiGnmOptions): SampleGraph;
58
+ //# sourceMappingURL=erdos-renyi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erdos-renyi.d.ts","sourceRoot":"","sources":["../../../src/generators/erdos-renyi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAgE,UAAU,EAAW,MAAM,WAAW,CAAC;AAC9G,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhE,0CAA0C;AAC1C,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACpD,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,+CAA+C;IAC/C,CAAC,EAAE,MAAM,CAAC;IACV;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAY5G;AA6BD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAUvE;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACvD,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,6CAA6C;IAC7C,CAAC,EAAE,MAAM,CAAC;IACV,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AA2CD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,CAiC7E"}