@antv/layout 2.0.0-alpha.1 → 2.0.0-alpha.3
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/README.md +26 -301
- package/dist/index.js +815 -814
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -3
- package/dist/index.min.js.map +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/lib/_virtual/index.js +1 -1
- package/lib/_virtual/index2.js +1 -1
- package/lib/_virtual/index3.js +1 -1
- package/lib/_virtual/matrix.js +1 -1
- package/lib/algorithm/antv-dagre/acyclic.js.map +1 -0
- package/lib/algorithm/antv-dagre/add-border-segments.js.map +1 -0
- package/lib/algorithm/antv-dagre/coordinate-system.js.map +1 -0
- package/lib/algorithm/antv-dagre/data/list.js.map +1 -0
- package/lib/algorithm/antv-dagre/graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/greedy-fas.js.map +1 -0
- package/lib/algorithm/antv-dagre/index.d.ts +15 -0
- package/lib/algorithm/antv-dagre/index.js +339 -0
- package/lib/algorithm/antv-dagre/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/layout.js +471 -0
- package/lib/algorithm/antv-dagre/layout.js.map +1 -0
- package/lib/algorithm/antv-dagre/nesting-graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/normalize.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/barycenter.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/build-layer-graph.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/cross-count.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/index.js +94 -0
- package/lib/algorithm/antv-dagre/order/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/init-data-order.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/init-order.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/resolve-conflicts.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/sort-subgraph.js.map +1 -0
- package/lib/algorithm/antv-dagre/order/sort.js.map +1 -0
- package/lib/algorithm/antv-dagre/parent-dummy-chains.js.map +1 -0
- package/lib/algorithm/antv-dagre/position/bk.js.map +1 -0
- package/lib/algorithm/antv-dagre/position/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/feasible-tree.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/index.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/network-simplex.js.map +1 -0
- package/lib/algorithm/antv-dagre/rank/util.js.map +1 -0
- package/lib/algorithm/antv-dagre/types.d.ts +192 -0
- package/lib/algorithm/antv-dagre/util.js +265 -0
- package/lib/algorithm/antv-dagre/util.js.map +1 -0
- package/lib/algorithm/base-layout.d.ts +49 -0
- package/lib/algorithm/base-layout.js +89 -0
- package/lib/algorithm/base-layout.js.map +1 -0
- package/lib/algorithm/base-simulation.d.ts +20 -0
- package/lib/algorithm/base-simulation.js +75 -0
- package/lib/algorithm/base-simulation.js.map +1 -0
- package/lib/algorithm/circular/index.d.ts +15 -0
- package/lib/algorithm/circular/index.js +108 -0
- package/lib/algorithm/circular/index.js.map +1 -0
- package/lib/algorithm/circular/types.d.ts +105 -0
- package/lib/algorithm/combo-combined/index.d.ts +33 -0
- package/lib/algorithm/combo-combined/index.js +303 -0
- package/lib/algorithm/combo-combined/index.js.map +1 -0
- package/lib/algorithm/combo-combined/types.d.ts +37 -0
- package/lib/algorithm/concentric/index.d.ts +15 -0
- package/lib/algorithm/concentric/index.js +192 -0
- package/lib/algorithm/concentric/index.js.map +1 -0
- package/lib/algorithm/concentric/types.d.ts +92 -0
- package/lib/algorithm/d3-force/force-in-a-box.js +343 -0
- package/lib/algorithm/d3-force/force-in-a-box.js.map +1 -0
- package/lib/algorithm/d3-force/index.d.ts +53 -0
- package/lib/algorithm/d3-force/index.js +514 -0
- package/lib/algorithm/d3-force/index.js.map +1 -0
- package/lib/algorithm/d3-force/types.d.ts +336 -0
- package/lib/algorithm/d3-force-3d/index.js +73 -0
- package/lib/algorithm/d3-force-3d/index.js.map +1 -0
- package/lib/algorithm/dagre/index.d.ts +22 -0
- package/lib/algorithm/dagre/index.js +142 -0
- package/lib/algorithm/dagre/index.js.map +1 -0
- package/lib/algorithm/dagre/types.d.ts +79 -0
- package/lib/algorithm/force/attractive.js.map +1 -0
- package/lib/algorithm/force/centripetal.js +87 -0
- package/lib/algorithm/force/centripetal.js.map +1 -0
- package/lib/algorithm/force/collide.js +172 -0
- package/lib/algorithm/force/collide.js.map +1 -0
- package/lib/algorithm/force/gravity.js.map +1 -0
- package/lib/algorithm/force/index.d.ts +87 -0
- package/lib/algorithm/force/index.js +450 -0
- package/lib/algorithm/force/index.js.map +1 -0
- package/lib/algorithm/force/repulsive.js +142 -0
- package/lib/algorithm/force/repulsive.js.map +1 -0
- package/lib/algorithm/force/simulation.d.ts +23 -0
- package/lib/algorithm/force/simulation.js +137 -0
- package/lib/algorithm/force/simulation.js.map +1 -0
- package/lib/algorithm/force/types.d.ts +252 -0
- package/lib/algorithm/force-atlas2/body.js.map +1 -0
- package/lib/algorithm/force-atlas2/index.d.ts +22 -0
- package/lib/algorithm/force-atlas2/index.js +155 -0
- package/lib/algorithm/force-atlas2/index.js.map +1 -0
- package/lib/algorithm/force-atlas2/quad-tree.js.map +1 -0
- package/lib/algorithm/force-atlas2/quad.js.map +1 -0
- package/lib/algorithm/force-atlas2/simulation.d.ts +39 -0
- package/lib/algorithm/force-atlas2/simulation.js +388 -0
- package/lib/algorithm/force-atlas2/simulation.js.map +1 -0
- package/lib/algorithm/force-atlas2/types.d.ts +109 -0
- package/lib/algorithm/fruchterman/index.d.ts +20 -0
- package/lib/algorithm/fruchterman/index.js +93 -0
- package/lib/algorithm/fruchterman/index.js.map +1 -0
- package/lib/algorithm/fruchterman/simulation.js +356 -0
- package/lib/algorithm/fruchterman/simulation.js.map +1 -0
- package/lib/algorithm/fruchterman/types.d.ts +48 -0
- package/lib/algorithm/grid/index.d.ts +16 -0
- package/lib/algorithm/grid/index.js +243 -0
- package/lib/algorithm/grid/index.js.map +1 -0
- package/lib/algorithm/grid/types.d.ts +85 -0
- package/lib/algorithm/mds/index.d.ts +15 -0
- package/lib/algorithm/mds/index.js +127 -0
- package/lib/algorithm/mds/index.js.map +1 -0
- package/lib/algorithm/mds/types.d.ts +25 -0
- package/lib/algorithm/radial/index.d.ts +16 -0
- package/lib/algorithm/radial/index.js +275 -0
- package/lib/algorithm/radial/index.js.map +1 -0
- package/lib/algorithm/radial/radial-nonoverlap-force.js +129 -0
- package/lib/algorithm/radial/radial-nonoverlap-force.js.map +1 -0
- package/lib/algorithm/radial/types.d.ts +103 -0
- package/lib/algorithm/random/index.d.ts +15 -0
- package/lib/algorithm/random/index.js +41 -0
- package/lib/algorithm/random/index.js.map +1 -0
- package/lib/algorithm/random/types.d.ts +11 -0
- package/lib/algorithm/types.d.ts +142 -0
- package/lib/index.d.ts +36 -33
- package/lib/index.js +19 -17
- package/lib/index.js.map +1 -1
- package/lib/model/data.d.ts +46 -0
- package/lib/model/data.js +281 -0
- package/lib/model/data.js.map +1 -0
- package/lib/node_modules/@antv/event-emitter/esm/index.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/clone.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/deep-mix.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/each.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/get-type.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/get.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-array-like.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-array.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-boolean.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-empty.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-function.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-nil.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-number.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-object-like.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-object.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-prototype.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-string.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/is-type.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/pick.js.map +1 -0
- package/lib/node_modules/@antv/util/esm/lodash/set.js.map +1 -0
- package/lib/node_modules/comlink/dist/esm/comlink.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/add.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/binarytree.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/data.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/find.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/half.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/root.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/size.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-binarytree/src/x.js.map +1 -0
- package/lib/node_modules/d3-dispatch/src/dispatch.js.map +1 -0
- package/lib/node_modules/d3-force/src/center.js.map +1 -0
- package/lib/node_modules/d3-force/src/collide.js +103 -0
- package/lib/node_modules/d3-force/src/collide.js.map +1 -0
- package/lib/node_modules/d3-force/src/constant.js.map +1 -0
- package/lib/node_modules/d3-force/src/jiggle.js.map +1 -0
- package/lib/node_modules/d3-force/src/lcg.js.map +1 -0
- package/lib/node_modules/d3-force/src/link.js.map +1 -0
- package/lib/node_modules/d3-force/src/manyBody.js +119 -0
- package/lib/node_modules/d3-force/src/manyBody.js.map +1 -0
- package/lib/node_modules/d3-force/src/radial.js.map +1 -0
- package/lib/node_modules/d3-force/src/simulation.js +159 -0
- package/lib/node_modules/d3-force/src/simulation.js.map +1 -0
- package/lib/node_modules/d3-force/src/x.js.map +1 -0
- package/lib/node_modules/d3-force/src/y.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/center.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/collide.js +135 -0
- package/lib/node_modules/d3-force-3d/src/collide.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/constant.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/jiggle.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/lcg.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/link.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/manyBody.js +142 -0
- package/lib/node_modules/d3-force-3d/src/manyBody.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/radial.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/simulation.js +202 -0
- package/lib/node_modules/d3-force-3d/src/simulation.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/x.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/y.js.map +1 -0
- package/lib/node_modules/d3-force-3d/src/z.js.map +1 -0
- package/lib/node_modules/d3-octree/src/add.js.map +1 -0
- package/lib/node_modules/d3-octree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-octree/src/data.js.map +1 -0
- package/lib/node_modules/d3-octree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-octree/src/find.js.map +1 -0
- package/lib/node_modules/d3-octree/src/findAll.js.map +1 -0
- package/lib/node_modules/d3-octree/src/octant.js.map +1 -0
- package/lib/node_modules/d3-octree/src/octree.js.map +1 -0
- package/lib/node_modules/d3-octree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-octree/src/root.js.map +1 -0
- package/lib/node_modules/d3-octree/src/size.js.map +1 -0
- package/lib/node_modules/d3-octree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-octree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-octree/src/x.js.map +1 -0
- package/lib/node_modules/d3-octree/src/y.js.map +1 -0
- package/lib/node_modules/d3-octree/src/z.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/add.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/cover.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/data.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/extent.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/find.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/quad.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/quadtree.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/remove.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/root.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/size.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/visit.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/visitAfter.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/x.js.map +1 -0
- package/lib/node_modules/d3-quadtree/src/y.js.map +1 -0
- package/lib/node_modules/d3-timer/src/timer.js.map +1 -0
- package/lib/node_modules/dagre/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/acyclic.js.map +1 -0
- package/lib/node_modules/dagre/lib/add-border-segments.js.map +1 -0
- package/lib/node_modules/dagre/lib/coordinate-system.js.map +1 -0
- package/lib/node_modules/dagre/lib/data/list.js.map +1 -0
- package/lib/node_modules/dagre/lib/debug.js.map +1 -0
- package/lib/node_modules/dagre/lib/graphlib.js +31 -0
- package/lib/node_modules/dagre/lib/graphlib.js.map +1 -0
- package/lib/node_modules/dagre/lib/greedy-fas.js.map +1 -0
- package/lib/node_modules/dagre/lib/layout.js.map +1 -0
- package/lib/node_modules/dagre/lib/lodash.js +83 -0
- package/lib/node_modules/dagre/lib/lodash.js.map +1 -0
- package/lib/node_modules/dagre/lib/nesting-graph.js.map +1 -0
- package/lib/node_modules/dagre/lib/normalize.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/barycenter.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/build-layer-graph.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/cross-count.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/init-order.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/resolve-conflicts.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/sort-subgraph.js.map +1 -0
- package/lib/node_modules/dagre/lib/order/sort.js.map +1 -0
- package/lib/node_modules/dagre/lib/parent-dummy-chains.js.map +1 -0
- package/lib/node_modules/dagre/lib/position/bk.js.map +1 -0
- package/lib/node_modules/dagre/lib/position/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/feasible-tree.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/index.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/network-simplex.js.map +1 -0
- package/lib/node_modules/dagre/lib/rank/util.js.map +1 -0
- package/lib/node_modules/dagre/lib/util.js.map +1 -0
- package/lib/node_modules/dagre/lib/version.js.map +1 -0
- package/lib/node_modules/graphlib/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/components.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dfs.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dijkstra-all.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/dijkstra.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/find-cycles.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/floyd-warshall.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/is-acyclic.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/postorder.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/preorder.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/prim.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/tarjan.js.map +1 -0
- package/lib/node_modules/graphlib/lib/alg/topsort.js.map +1 -0
- package/lib/node_modules/graphlib/lib/data/priority-queue.js.map +1 -0
- package/lib/node_modules/graphlib/lib/graph.js.map +1 -0
- package/lib/node_modules/graphlib/lib/index.js.map +1 -0
- package/lib/node_modules/graphlib/lib/json.js.map +1 -0
- package/lib/node_modules/graphlib/lib/lodash.js +63 -0
- package/lib/node_modules/graphlib/lib/lodash.js.map +1 -0
- package/lib/node_modules/graphlib/lib/version.js.map +1 -0
- package/lib/node_modules/is-any-array/lib-esm/index.js.map +1 -0
- package/lib/node_modules/lodash/_DataView.js.map +1 -0
- package/lib/node_modules/lodash/_Hash.js.map +1 -0
- package/lib/node_modules/lodash/_ListCache.js.map +1 -0
- package/lib/node_modules/lodash/_Map.js.map +1 -0
- package/lib/node_modules/lodash/_MapCache.js.map +1 -0
- package/lib/node_modules/lodash/_Promise.js.map +1 -0
- package/lib/node_modules/lodash/_Set.js.map +1 -0
- package/lib/node_modules/lodash/_SetCache.js.map +1 -0
- package/lib/node_modules/lodash/_Stack.js.map +1 -0
- package/lib/node_modules/lodash/_Symbol.js.map +1 -0
- package/lib/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/lib/node_modules/lodash/_WeakMap.js.map +1 -0
- package/lib/node_modules/lodash/_apply.js.map +1 -0
- package/lib/node_modules/lodash/_arrayEach.js.map +1 -0
- package/lib/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/lib/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/lib/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/lib/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/lib/node_modules/lodash/_arrayMap.js.map +1 -0
- package/lib/node_modules/lodash/_arrayPush.js.map +1 -0
- package/lib/node_modules/lodash/_arrayReduce.js.map +1 -0
- package/lib/node_modules/lodash/_arraySome.js.map +1 -0
- package/lib/node_modules/lodash/_asciiSize.js.map +1 -0
- package/lib/node_modules/lodash/_assignMergeValue.js.map +1 -0
- package/lib/node_modules/lodash/_assignValue.js.map +1 -0
- package/lib/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssign.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssignIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/lib/node_modules/lodash/_baseClone.js.map +1 -0
- package/lib/node_modules/lodash/_baseCreate.js.map +1 -0
- package/lib/node_modules/lodash/_baseEach.js.map +1 -0
- package/lib/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/lib/node_modules/lodash/_baseFilter.js.map +1 -0
- package/lib/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/lib/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/lib/node_modules/lodash/_baseFor.js.map +1 -0
- package/lib/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/lib/node_modules/lodash/_baseGet.js.map +1 -0
- package/lib/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/lib/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/lib/node_modules/lodash/_baseGt.js.map +1 -0
- package/lib/node_modules/lodash/_baseHas.js.map +1 -0
- package/lib/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsMap.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsSet.js.map +1 -0
- package/lib/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/lib/node_modules/lodash/_baseKeys.js.map +1 -0
- package/lib/node_modules/lodash/_baseKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_baseLt.js.map +1 -0
- package/lib/node_modules/lodash/_baseMap.js.map +1 -0
- package/lib/node_modules/lodash/_baseMatches.js.map +1 -0
- package/lib/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/lib/node_modules/lodash/_baseMerge.js.map +1 -0
- package/lib/node_modules/lodash/_baseMergeDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/lib/node_modules/lodash/_basePick.js.map +1 -0
- package/lib/node_modules/lodash/_basePickBy.js.map +1 -0
- package/lib/node_modules/lodash/_baseProperty.js.map +1 -0
- package/lib/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/lib/node_modules/lodash/_baseRange.js.map +1 -0
- package/lib/node_modules/lodash/_baseReduce.js.map +1 -0
- package/lib/node_modules/lodash/_baseRest.js.map +1 -0
- package/lib/node_modules/lodash/_baseSet.js.map +1 -0
- package/lib/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/lib/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/lib/node_modules/lodash/_baseTimes.js.map +1 -0
- package/lib/node_modules/lodash/_baseToString.js.map +1 -0
- package/lib/node_modules/lodash/_baseTrim.js.map +1 -0
- package/lib/node_modules/lodash/_baseUnary.js.map +1 -0
- package/lib/node_modules/lodash/_baseUniq.js.map +1 -0
- package/lib/node_modules/lodash/_baseValues.js.map +1 -0
- package/lib/node_modules/lodash/_baseZipObject.js.map +1 -0
- package/lib/node_modules/lodash/_cacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_castFunction.js.map +1 -0
- package/lib/node_modules/lodash/_castPath.js.map +1 -0
- package/lib/node_modules/lodash/_cloneArrayBuffer.js.map +1 -0
- package/lib/node_modules/lodash/_cloneBuffer.js +52 -0
- package/lib/node_modules/lodash/_cloneBuffer.js.map +1 -0
- package/lib/node_modules/lodash/_cloneDataView.js.map +1 -0
- package/lib/node_modules/lodash/_cloneRegExp.js.map +1 -0
- package/lib/node_modules/lodash/_cloneSymbol.js.map +1 -0
- package/lib/node_modules/lodash/_cloneTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/_compareAscending.js.map +1 -0
- package/lib/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/lib/node_modules/lodash/_copyArray.js.map +1 -0
- package/lib/node_modules/lodash/_copyObject.js.map +1 -0
- package/lib/node_modules/lodash/_copySymbols.js.map +1 -0
- package/lib/node_modules/lodash/_copySymbolsIn.js.map +1 -0
- package/lib/node_modules/lodash/_coreJsData.js.map +1 -0
- package/lib/node_modules/lodash/_createAssigner.js.map +1 -0
- package/lib/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/lib/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/lib/node_modules/lodash/_createFind.js.map +1 -0
- package/lib/node_modules/lodash/_createRange.js.map +1 -0
- package/lib/node_modules/lodash/_createSet.js.map +1 -0
- package/lib/node_modules/lodash/_defineProperty.js.map +1 -0
- package/lib/node_modules/lodash/_equalArrays.js.map +1 -0
- package/lib/node_modules/lodash/_equalByTag.js.map +1 -0
- package/lib/node_modules/lodash/_equalObjects.js.map +1 -0
- package/lib/node_modules/lodash/_flatRest.js.map +1 -0
- package/lib/node_modules/lodash/_freeGlobal.js +18 -0
- package/lib/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/lib/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/lib/node_modules/lodash/_getAllKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_getMapData.js.map +1 -0
- package/lib/node_modules/lodash/_getMatchData.js.map +1 -0
- package/lib/node_modules/lodash/_getNative.js.map +1 -0
- package/lib/node_modules/lodash/_getPrototype.js.map +1 -0
- package/lib/node_modules/lodash/_getRawTag.js.map +1 -0
- package/lib/node_modules/lodash/_getSymbols.js.map +1 -0
- package/lib/node_modules/lodash/_getSymbolsIn.js.map +1 -0
- package/lib/node_modules/lodash/_getTag.js.map +1 -0
- package/lib/node_modules/lodash/_getValue.js.map +1 -0
- package/lib/node_modules/lodash/_hasPath.js.map +1 -0
- package/lib/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/lib/node_modules/lodash/_hashClear.js.map +1 -0
- package/lib/node_modules/lodash/_hashDelete.js.map +1 -0
- package/lib/node_modules/lodash/_hashGet.js.map +1 -0
- package/lib/node_modules/lodash/_hashHas.js.map +1 -0
- package/lib/node_modules/lodash/_hashSet.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneArray.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneByTag.js.map +1 -0
- package/lib/node_modules/lodash/_initCloneObject.js.map +1 -0
- package/lib/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/lib/node_modules/lodash/_isIndex.js.map +1 -0
- package/lib/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/lib/node_modules/lodash/_isKey.js.map +1 -0
- package/lib/node_modules/lodash/_isKeyable.js.map +1 -0
- package/lib/node_modules/lodash/_isMasked.js.map +1 -0
- package/lib/node_modules/lodash/_isPrototype.js.map +1 -0
- package/lib/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/lib/node_modules/lodash/_mapToArray.js.map +1 -0
- package/lib/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/lib/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/lib/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/lib/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/lib/node_modules/lodash/_nativeKeysIn.js.map +1 -0
- package/lib/node_modules/lodash/_nodeUtil.js +47 -0
- package/lib/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/lib/node_modules/lodash/_objectToString.js.map +1 -0
- package/lib/node_modules/lodash/_overArg.js.map +1 -0
- package/lib/node_modules/lodash/_overRest.js.map +1 -0
- package/lib/node_modules/lodash/_root.js.map +1 -0
- package/lib/node_modules/lodash/_safeGet.js.map +1 -0
- package/lib/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/lib/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/lib/node_modules/lodash/_setToArray.js.map +1 -0
- package/lib/node_modules/lodash/_setToString.js.map +1 -0
- package/lib/node_modules/lodash/_shortOut.js.map +1 -0
- package/lib/node_modules/lodash/_stackClear.js.map +1 -0
- package/lib/node_modules/lodash/_stackDelete.js.map +1 -0
- package/lib/node_modules/lodash/_stackGet.js.map +1 -0
- package/lib/node_modules/lodash/_stackHas.js.map +1 -0
- package/lib/node_modules/lodash/_stackSet.js.map +1 -0
- package/lib/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/lib/node_modules/lodash/_stringSize.js.map +1 -0
- package/lib/node_modules/lodash/_stringToPath.js.map +1 -0
- package/lib/node_modules/lodash/_toKey.js.map +1 -0
- package/lib/node_modules/lodash/_toSource.js.map +1 -0
- package/lib/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/lib/node_modules/lodash/_unicodeSize.js.map +1 -0
- package/lib/node_modules/lodash/clone.js.map +1 -0
- package/lib/node_modules/lodash/cloneDeep.js.map +1 -0
- package/lib/node_modules/lodash/constant.js.map +1 -0
- package/lib/node_modules/lodash/defaults.js.map +1 -0
- package/lib/node_modules/lodash/each.js.map +1 -0
- package/lib/node_modules/lodash/eq.js.map +1 -0
- package/lib/node_modules/lodash/filter.js.map +1 -0
- package/lib/node_modules/lodash/find.js.map +1 -0
- package/lib/node_modules/lodash/findIndex.js.map +1 -0
- package/lib/node_modules/lodash/flatten.js.map +1 -0
- package/lib/node_modules/lodash/forEach.js.map +1 -0
- package/lib/node_modules/lodash/forIn.js.map +1 -0
- package/lib/node_modules/lodash/get.js.map +1 -0
- package/lib/node_modules/lodash/has.js.map +1 -0
- package/lib/node_modules/lodash/hasIn.js.map +1 -0
- package/lib/node_modules/lodash/identity.js.map +1 -0
- package/lib/node_modules/lodash/isArguments.js.map +1 -0
- package/lib/node_modules/lodash/isArray.js.map +1 -0
- package/lib/node_modules/lodash/isArrayLike.js.map +1 -0
- package/lib/node_modules/lodash/isArrayLikeObject.js.map +1 -0
- package/lib/node_modules/lodash/isBuffer.js +56 -0
- package/lib/node_modules/lodash/isBuffer.js.map +1 -0
- package/lib/node_modules/lodash/isEmpty.js.map +1 -0
- package/lib/node_modules/lodash/isFunction.js.map +1 -0
- package/lib/node_modules/lodash/isLength.js.map +1 -0
- package/lib/node_modules/lodash/isMap.js.map +1 -0
- package/lib/node_modules/lodash/isObject.js.map +1 -0
- package/lib/node_modules/lodash/isObjectLike.js.map +1 -0
- package/lib/node_modules/lodash/isPlainObject.js.map +1 -0
- package/lib/node_modules/lodash/isSet.js.map +1 -0
- package/lib/node_modules/lodash/isString.js.map +1 -0
- package/lib/node_modules/lodash/isSymbol.js.map +1 -0
- package/lib/node_modules/lodash/isTypedArray.js.map +1 -0
- package/lib/node_modules/lodash/isUndefined.js.map +1 -0
- package/lib/node_modules/lodash/keys.js.map +1 -0
- package/lib/node_modules/lodash/keysIn.js.map +1 -0
- package/lib/node_modules/lodash/last.js.map +1 -0
- package/lib/node_modules/lodash/map.js.map +1 -0
- package/lib/node_modules/lodash/mapValues.js.map +1 -0
- package/lib/node_modules/lodash/max.js.map +1 -0
- package/lib/node_modules/lodash/memoize.js.map +1 -0
- package/lib/node_modules/lodash/merge.js.map +1 -0
- package/lib/node_modules/lodash/min.js.map +1 -0
- package/lib/node_modules/lodash/minBy.js.map +1 -0
- package/lib/node_modules/lodash/noop.js.map +1 -0
- package/lib/node_modules/lodash/now.js.map +1 -0
- package/lib/node_modules/lodash/pick.js.map +1 -0
- package/lib/node_modules/lodash/property.js.map +1 -0
- package/lib/node_modules/lodash/range.js.map +1 -0
- package/lib/node_modules/lodash/reduce.js.map +1 -0
- package/lib/node_modules/lodash/size.js.map +1 -0
- package/lib/node_modules/lodash/sortBy.js.map +1 -0
- package/lib/node_modules/lodash/stubArray.js.map +1 -0
- package/lib/node_modules/lodash/stubFalse.js.map +1 -0
- package/lib/node_modules/lodash/toFinite.js.map +1 -0
- package/lib/node_modules/lodash/toInteger.js.map +1 -0
- package/lib/node_modules/lodash/toNumber.js.map +1 -0
- package/lib/node_modules/lodash/toPlainObject.js.map +1 -0
- package/lib/node_modules/lodash/toString.js.map +1 -0
- package/lib/node_modules/lodash/transform.js.map +1 -0
- package/lib/node_modules/lodash/union.js.map +1 -0
- package/lib/node_modules/lodash/uniqueId.js.map +1 -0
- package/lib/node_modules/lodash/values.js.map +1 -0
- package/lib/node_modules/lodash/zipObject.js.map +1 -0
- package/lib/node_modules/ml-array-max/lib-es6/index.js +37 -0
- package/lib/node_modules/ml-array-max/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-array-min/lib-es6/index.js +37 -0
- package/lib/node_modules/ml-array-min/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-array-rescale/lib-es6/index.js +52 -0
- package/lib/node_modules/ml-array-rescale/lib-es6/index.js.map +1 -0
- package/lib/node_modules/ml-matrix/matrix.js +8 -0
- package/lib/node_modules/ml-matrix/matrix.js.map +1 -0
- package/lib/node_modules/ml-matrix/matrix2.js +5660 -0
- package/lib/node_modules/ml-matrix/matrix2.js.map +1 -0
- package/lib/node_modules/tslib/tslib.es6.js.map +1 -0
- package/lib/registry.js +13 -13
- package/lib/runtime/context.d.ts +15 -0
- package/lib/runtime/context.js +29 -0
- package/lib/runtime/context.js.map +1 -0
- package/lib/runtime/supervisor.d.ts +25 -0
- package/lib/runtime/supervisor.js +75 -0
- package/lib/runtime/supervisor.js.map +1 -0
- package/lib/types/data.d.ts +13 -10
- package/lib/types/edge-label.d.ts +6 -0
- package/lib/types/force.d.ts +1 -2
- package/lib/util/common.d.ts +2 -2
- package/lib/util/common.js.map +1 -1
- package/lib/util/format.js +3 -3
- package/lib/util/math.d.ts +3 -3
- package/lib/util/math.js +1 -1
- package/lib/util/math.js.map +1 -1
- package/lib/util/object.d.ts +1 -2
- package/lib/util/object.js +3 -6
- package/lib/util/object.js.map +1 -1
- package/lib/util/order.d.ts +5 -5
- package/lib/util/order.js +2 -8
- package/lib/util/order.js.map +1 -1
- package/lib/util/size.js +1 -1
- package/lib/worker.js +462 -463
- package/lib/worker.js.map +1 -1
- package/package.json +30 -11
- package/src/algorithm/antv-dagre/acyclic.ts +70 -0
- package/src/algorithm/antv-dagre/add-border-segments.ts +55 -0
- package/src/algorithm/antv-dagre/coordinate-system.ts +77 -0
- package/src/algorithm/antv-dagre/graph.ts +533 -0
- package/src/algorithm/antv-dagre/greedy-fas.ts +185 -0
- package/src/algorithm/antv-dagre/index.ts +619 -0
- package/src/algorithm/antv-dagre/layout.ts +622 -0
- package/src/algorithm/antv-dagre/nesting-graph.ts +184 -0
- package/src/algorithm/antv-dagre/normalize.ts +125 -0
- package/src/algorithm/antv-dagre/order/add-subgraph-constraints.ts +51 -0
- package/src/algorithm/antv-dagre/order/barycenter.ts +26 -0
- package/src/algorithm/antv-dagre/order/build-layer-graph.ts +109 -0
- package/src/algorithm/antv-dagre/order/cross-count.ts +76 -0
- package/src/algorithm/antv-dagre/order/index.ts +123 -0
- package/src/algorithm/antv-dagre/order/init-data-order.ts +29 -0
- package/src/algorithm/antv-dagre/order/init-order.ts +59 -0
- package/src/algorithm/antv-dagre/order/resolve-conflicts.ts +153 -0
- package/src/algorithm/antv-dagre/order/sort-subgraph.ts +111 -0
- package/src/algorithm/antv-dagre/order/sort.ts +94 -0
- package/src/algorithm/antv-dagre/parent-dummy-chains.ts +111 -0
- package/src/algorithm/antv-dagre/position/bk.ts +560 -0
- package/src/algorithm/antv-dagre/position/index.ts +109 -0
- package/src/algorithm/antv-dagre/rank/feasible-tree.ts +179 -0
- package/src/algorithm/antv-dagre/rank/network-simplex.ts +282 -0
- package/src/algorithm/antv-dagre/rank/util.ts +157 -0
- package/src/algorithm/antv-dagre/types.ts +197 -0
- package/src/algorithm/antv-dagre/util.ts +359 -0
- package/src/algorithm/base-layout.ts +137 -0
- package/src/algorithm/base-simulation.ts +94 -0
- package/src/algorithm/circular/index.ts +123 -0
- package/src/algorithm/circular/types.ts +105 -0
- package/src/algorithm/combo-combined/index.ts +412 -0
- package/src/algorithm/combo-combined/types.ts +39 -0
- package/src/algorithm/concentric/index.ts +234 -0
- package/src/algorithm/concentric/types.ts +89 -0
- package/src/algorithm/d3-force/force-in-a-box.ts +404 -0
- package/src/algorithm/d3-force/index.ts +592 -0
- package/src/algorithm/d3-force/types.ts +378 -0
- package/src/algorithm/dagre/index.ts +172 -0
- package/src/algorithm/dagre/types.ts +84 -0
- package/src/algorithm/force/attractive.ts +71 -0
- package/src/algorithm/force/centripetal.ts +133 -0
- package/src/algorithm/force/collide.ts +219 -0
- package/src/algorithm/force/gravity.ts +61 -0
- package/src/algorithm/force/index.ts +541 -0
- package/src/algorithm/force/repulsive.ts +200 -0
- package/src/algorithm/force/simulation.ts +172 -0
- package/src/algorithm/force/types.ts +265 -0
- package/src/algorithm/force-atlas2/index.ts +189 -0
- package/src/algorithm/force-atlas2/quad.ts +117 -0
- package/src/algorithm/force-atlas2/simulation.ts +445 -0
- package/src/algorithm/force-atlas2/types.ts +106 -0
- package/src/algorithm/fruchterman/index.ts +116 -0
- package/src/algorithm/fruchterman/simulation.ts +447 -0
- package/src/algorithm/fruchterman/types.ts +47 -0
- package/src/algorithm/grid/index.ts +305 -0
- package/src/algorithm/grid/types.ts +120 -0
- package/src/algorithm/index.ts +29 -0
- package/src/algorithm/mds/index.ts +143 -0
- package/src/algorithm/mds/types.ts +23 -0
- package/src/algorithm/radial/index.ts +346 -0
- package/src/algorithm/radial/radial-nonoverlap-force.ts +210 -0
- package/src/algorithm/radial/types.ts +100 -0
- package/src/algorithm/random/index.ts +41 -0
- package/src/algorithm/random/types.ts +8 -0
- package/src/algorithm/types.ts +172 -0
- package/src/index.ts +3 -25
- package/src/model/data.ts +381 -0
- package/src/model/index.ts +1 -0
- package/src/registry.ts +13 -13
- package/src/runtime/context.ts +49 -0
- package/src/runtime/index.ts +2 -0
- package/src/runtime/supervisor.ts +80 -0
- package/src/types/data.ts +20 -13
- package/src/types/edge-label.ts +5 -0
- package/src/types/force.ts +2 -2
- package/src/types/index.ts +1 -0
- package/src/util/common.ts +2 -2
- package/src/util/index.ts +0 -1
- package/src/util/math.ts +3 -3
- package/src/util/object.ts +0 -4
- package/src/util/order.ts +13 -20
- package/src/worker.ts +2 -2
- package/lib/antv-dagre/acyclic.js.map +0 -1
- package/lib/antv-dagre/add-border-segments.js.map +0 -1
- package/lib/antv-dagre/coordinate-system.js.map +0 -1
- package/lib/antv-dagre/data/list.js.map +0 -1
- package/lib/antv-dagre/graph.js.map +0 -1
- package/lib/antv-dagre/greedy-fas.js.map +0 -1
- package/lib/antv-dagre/index.d.ts +0 -15
- package/lib/antv-dagre/index.js +0 -337
- package/lib/antv-dagre/index.js.map +0 -1
- package/lib/antv-dagre/layout.js +0 -471
- package/lib/antv-dagre/layout.js.map +0 -1
- package/lib/antv-dagre/nesting-graph.js.map +0 -1
- package/lib/antv-dagre/normalize.js.map +0 -1
- package/lib/antv-dagre/order/add-subgraph-constraints.js.map +0 -1
- package/lib/antv-dagre/order/barycenter.js.map +0 -1
- package/lib/antv-dagre/order/build-layer-graph.js.map +0 -1
- package/lib/antv-dagre/order/cross-count.js.map +0 -1
- package/lib/antv-dagre/order/index.js +0 -94
- package/lib/antv-dagre/order/index.js.map +0 -1
- package/lib/antv-dagre/order/init-data-order.js.map +0 -1
- package/lib/antv-dagre/order/init-order.js.map +0 -1
- package/lib/antv-dagre/order/resolve-conflicts.js.map +0 -1
- package/lib/antv-dagre/order/sort-subgraph.js.map +0 -1
- package/lib/antv-dagre/order/sort.js.map +0 -1
- package/lib/antv-dagre/parent-dummy-chains.js.map +0 -1
- package/lib/antv-dagre/position/bk.js.map +0 -1
- package/lib/antv-dagre/position/index.js.map +0 -1
- package/lib/antv-dagre/rank/feasible-tree.js.map +0 -1
- package/lib/antv-dagre/rank/index.js.map +0 -1
- package/lib/antv-dagre/rank/network-simplex.js.map +0 -1
- package/lib/antv-dagre/rank/util.js.map +0 -1
- package/lib/antv-dagre/types.d.ts +0 -170
- package/lib/antv-dagre/util.js +0 -265
- package/lib/antv-dagre/util.js.map +0 -1
- package/lib/circular/index.d.ts +0 -15
- package/lib/circular/index.js +0 -108
- package/lib/circular/index.js.map +0 -1
- package/lib/circular/types.d.ts +0 -105
- package/lib/combo-combined/index.d.ts +0 -33
- package/lib/combo-combined/index.js +0 -303
- package/lib/combo-combined/index.js.map +0 -1
- package/lib/combo-combined/types.d.ts +0 -37
- package/lib/concentric/index.d.ts +0 -15
- package/lib/concentric/index.js +0 -192
- package/lib/concentric/index.js.map +0 -1
- package/lib/concentric/types.d.ts +0 -92
- package/lib/core/base-layout.d.ts +0 -40
- package/lib/core/base-layout.js +0 -88
- package/lib/core/base-layout.js.map +0 -1
- package/lib/core/base-simulation.d.ts +0 -43
- package/lib/core/base-simulation.js +0 -75
- package/lib/core/base-simulation.js.map +0 -1
- package/lib/core/types.d.ts +0 -89
- package/lib/d3-force/force-in-a-box.js +0 -343
- package/lib/d3-force/force-in-a-box.js.map +0 -1
- package/lib/d3-force/index.d.ts +0 -53
- package/lib/d3-force/index.js +0 -552
- package/lib/d3-force/index.js.map +0 -1
- package/lib/d3-force/types.d.ts +0 -336
- package/lib/d3-force-3d/index.js +0 -73
- package/lib/d3-force-3d/index.js.map +0 -1
- package/lib/dagre/index.d.ts +0 -22
- package/lib/dagre/index.js +0 -142
- package/lib/dagre/index.js.map +0 -1
- package/lib/dagre/types.d.ts +0 -79
- package/lib/force/attractive.js.map +0 -1
- package/lib/force/centripetal.js +0 -87
- package/lib/force/centripetal.js.map +0 -1
- package/lib/force/collide.js +0 -172
- package/lib/force/collide.js.map +0 -1
- package/lib/force/gravity.js.map +0 -1
- package/lib/force/index.d.ts +0 -87
- package/lib/force/index.js +0 -450
- package/lib/force/index.js.map +0 -1
- package/lib/force/repulsive.js +0 -142
- package/lib/force/repulsive.js.map +0 -1
- package/lib/force/simulation.d.ts +0 -23
- package/lib/force/simulation.js +0 -137
- package/lib/force/simulation.js.map +0 -1
- package/lib/force/types.d.ts +0 -252
- package/lib/force-atlas2/body.js.map +0 -1
- package/lib/force-atlas2/index.d.ts +0 -22
- package/lib/force-atlas2/index.js +0 -155
- package/lib/force-atlas2/index.js.map +0 -1
- package/lib/force-atlas2/quad-tree.js.map +0 -1
- package/lib/force-atlas2/quad.js.map +0 -1
- package/lib/force-atlas2/simulation.d.ts +0 -39
- package/lib/force-atlas2/simulation.js +0 -388
- package/lib/force-atlas2/simulation.js.map +0 -1
- package/lib/force-atlas2/types.d.ts +0 -109
- package/lib/fruchterman/index.d.ts +0 -20
- package/lib/fruchterman/index.js +0 -93
- package/lib/fruchterman/index.js.map +0 -1
- package/lib/fruchterman/simulation.js +0 -356
- package/lib/fruchterman/simulation.js.map +0 -1
- package/lib/fruchterman/types.d.ts +0 -48
- package/lib/grid/index.d.ts +0 -16
- package/lib/grid/index.js +0 -243
- package/lib/grid/index.js.map +0 -1
- package/lib/grid/types.d.ts +0 -85
- package/lib/mds/index.d.ts +0 -15
- package/lib/mds/index.js +0 -127
- package/lib/mds/index.js.map +0 -1
- package/lib/mds/types.d.ts +0 -25
- package/lib/node_modules/.pnpm/@antv_event-emitter@0.1.3/node_modules/@antv/event-emitter/esm/index.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/clone.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/deep-mix.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/each.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/get-type.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/get.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-array-like.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-array.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-boolean.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-empty.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-function.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-nil.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-number.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-object-like.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-object.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-plain-object.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-prototype.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-string.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/is-type.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/pick.js.map +0 -1
- package/lib/node_modules/.pnpm/@antv_util@3.3.11/node_modules/@antv/util/esm/lodash/set.js.map +0 -1
- package/lib/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.54.0_tslib@2.8.1_typescript@4.9.5/node_modules/tslib/tslib.es6.js.map +0 -1
- package/lib/node_modules/.pnpm/comlink@4.4.2/node_modules/comlink/dist/esm/comlink.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/binarytree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/half.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/center.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/collide.js +0 -135
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/collide.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/jiggle.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/lcg.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/link.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/manyBody.js +0 -142
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/manyBody.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/radial.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/simulation.js +0 -202
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/simulation.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d/src/z.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/center.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/collide.js +0 -103
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/collide.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/jiggle.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/lcg.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/link.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/manyBody.js +0 -119
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/manyBody.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/radial.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/simulation.js +0 -159
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/simulation.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-force@3.0.0/node_modules/d3-force/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/findAll.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/octant.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/octree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-octree@1.1.0/node_modules/d3-octree/src/z.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/add.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/cover.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/data.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/extent.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/find.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quad.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/remove.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/root.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/size.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visit.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/x.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree/src/y.js.map +0 -1
- package/lib/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/acyclic.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/add-border-segments.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/coordinate-system.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/data/list.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/debug.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/graphlib.js +0 -31
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/graphlib.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/greedy-fas.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/layout.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/lodash.js +0 -83
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/lodash.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/nesting-graph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/normalize.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/barycenter.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/build-layer-graph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/cross-count.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/init-order.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/resolve-conflicts.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort-subgraph.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/order/sort.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/parent-dummy-chains.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/bk.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/position/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/feasible-tree.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/index.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/network-simplex.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/rank/util.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/util.js.map +0 -1
- package/lib/node_modules/.pnpm/dagre@0.8.5/node_modules/dagre/lib/version.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/components.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dfs.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra-all.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/dijkstra.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/find-cycles.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/floyd-warshall.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/is-acyclic.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/postorder.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/preorder.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/prim.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/tarjan.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/alg/topsort.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/data/priority-queue.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/graph.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/index.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/json.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/lodash.js +0 -63
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/lodash.js.map +0 -1
- package/lib/node_modules/.pnpm/graphlib@2.1.8/node_modules/graphlib/lib/version.js.map +0 -1
- package/lib/node_modules/.pnpm/is-any-array@2.0.1/node_modules/is-any-array/lib-esm/index.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludes.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayReduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignMergeValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssign.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseClone.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseExtremum.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFilter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFindIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFlatten.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGt.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNaN.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLt.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMerge.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMergeDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePick.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePickBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRange.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseReduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUniq.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseValues.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseZipObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castFunction.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneArrayBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js +0 -52
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneDataView.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneRegExp.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneSymbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbols.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbolsIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createAssigner.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createFind.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRange.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_flatRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js +0 -18
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbolsIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneByTag.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isFlattenable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIterateeCall.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js +0 -47
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_safeGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_strictIndexOf.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeSize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/clone.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/cloneDeep.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/defaults.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/each.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/filter.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/find.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/findIndex.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatten.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forEach.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/forIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/has.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLikeObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js +0 -56
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEmpty.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isMap.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSet.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isUndefined.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keysIn.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/last.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapValues.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/max.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/merge.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/min.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/minBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/noop.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/pick.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/range.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/reduce.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/size.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sortBy.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toFinite.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toInteger.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toPlainObject.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/transform.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/union.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqueId.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/values.js.map +0 -1
- package/lib/node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/zipObject.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib-es6/index.js +0 -37
- package/lib/node_modules/.pnpm/ml-array-max@1.2.4/node_modules/ml-array-max/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib-es6/index.js +0 -37
- package/lib/node_modules/.pnpm/ml-array-min@1.2.3/node_modules/ml-array-min/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib-es6/index.js +0 -52
- package/lib/node_modules/.pnpm/ml-array-rescale@1.3.7/node_modules/ml-array-rescale/lib-es6/index.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js +0 -8
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix.js.map +0 -1
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix2.js +0 -5660
- package/lib/node_modules/.pnpm/ml-matrix@6.12.1/node_modules/ml-matrix/matrix2.js.map +0 -1
- package/lib/radial/index.d.ts +0 -16
- package/lib/radial/index.js +0 -275
- package/lib/radial/index.js.map +0 -1
- package/lib/radial/radial-nonoverlap-force.js +0 -129
- package/lib/radial/radial-nonoverlap-force.js.map +0 -1
- package/lib/radial/types.d.ts +0 -103
- package/lib/random/index.d.ts +0 -15
- package/lib/random/index.js +0 -36
- package/lib/random/index.js.map +0 -1
- package/lib/random/types.d.ts +0 -11
- package/lib/supervisor.d.ts +0 -25
- package/lib/supervisor.js +0 -71
- package/lib/supervisor.js.map +0 -1
- package/lib/util/model.d.ts +0 -45
- package/lib/util/model.js +0 -273
- package/lib/util/model.js.map +0 -1
- package/src/antv-dagre/acyclic.ts +0 -70
- package/src/antv-dagre/add-border-segments.ts +0 -55
- package/src/antv-dagre/coordinate-system.ts +0 -77
- package/src/antv-dagre/graph.ts +0 -533
- package/src/antv-dagre/greedy-fas.ts +0 -185
- package/src/antv-dagre/index.ts +0 -620
- package/src/antv-dagre/layout.ts +0 -622
- package/src/antv-dagre/nesting-graph.ts +0 -184
- package/src/antv-dagre/normalize.ts +0 -125
- package/src/antv-dagre/order/add-subgraph-constraints.ts +0 -51
- package/src/antv-dagre/order/barycenter.ts +0 -26
- package/src/antv-dagre/order/build-layer-graph.ts +0 -109
- package/src/antv-dagre/order/cross-count.ts +0 -76
- package/src/antv-dagre/order/index.ts +0 -123
- package/src/antv-dagre/order/init-data-order.ts +0 -29
- package/src/antv-dagre/order/init-order.ts +0 -59
- package/src/antv-dagre/order/resolve-conflicts.ts +0 -153
- package/src/antv-dagre/order/sort-subgraph.ts +0 -111
- package/src/antv-dagre/order/sort.ts +0 -94
- package/src/antv-dagre/parent-dummy-chains.ts +0 -111
- package/src/antv-dagre/position/bk.ts +0 -560
- package/src/antv-dagre/position/index.ts +0 -109
- package/src/antv-dagre/rank/feasible-tree.ts +0 -179
- package/src/antv-dagre/rank/network-simplex.ts +0 -282
- package/src/antv-dagre/rank/util.ts +0 -157
- package/src/antv-dagre/types.ts +0 -175
- package/src/antv-dagre/util.ts +0 -359
- package/src/circular/index.ts +0 -123
- package/src/circular/types.ts +0 -105
- package/src/combo-combined/index.ts +0 -412
- package/src/combo-combined/types.ts +0 -39
- package/src/concentric/index.ts +0 -234
- package/src/concentric/types.ts +0 -89
- package/src/core/base-layout.ts +0 -126
- package/src/core/base-simulation.ts +0 -115
- package/src/core/types.ts +0 -145
- package/src/d3-force/force-in-a-box.ts +0 -404
- package/src/d3-force/index.ts +0 -642
- package/src/d3-force/types.ts +0 -378
- package/src/dagre/index.ts +0 -172
- package/src/dagre/types.ts +0 -85
- package/src/force/attractive.ts +0 -71
- package/src/force/centripetal.ts +0 -133
- package/src/force/collide.ts +0 -219
- package/src/force/gravity.ts +0 -61
- package/src/force/index.ts +0 -539
- package/src/force/repulsive.ts +0 -200
- package/src/force/simulation.ts +0 -172
- package/src/force/types.ts +0 -265
- package/src/force-atlas2/index.ts +0 -188
- package/src/force-atlas2/quad.ts +0 -117
- package/src/force-atlas2/simulation.ts +0 -445
- package/src/force-atlas2/types.ts +0 -106
- package/src/fruchterman/index.ts +0 -116
- package/src/fruchterman/simulation.ts +0 -447
- package/src/fruchterman/types.ts +0 -47
- package/src/grid/index.ts +0 -305
- package/src/grid/types.ts +0 -120
- package/src/mds/index.ts +0 -143
- package/src/mds/types.ts +0 -23
- package/src/radial/index.ts +0 -345
- package/src/radial/radial-nonoverlap-force.ts +0 -209
- package/src/radial/types.ts +0 -100
- package/src/random/index.ts +0 -35
- package/src/random/types.ts +0 -8
- package/src/supervisor.ts +0 -77
- package/src/util/model.ts +0 -372
- /package/lib/{antv-dagre → algorithm/antv-dagre}/acyclic.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/add-border-segments.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/coordinate-system.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/data/list.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/greedy-fas.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/nesting-graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/normalize.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/add-subgraph-constraints.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/barycenter.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/build-layer-graph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/cross-count.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/init-data-order.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/init-order.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/resolve-conflicts.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/sort-subgraph.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/order/sort.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/parent-dummy-chains.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/position/bk.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/position/index.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/feasible-tree.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/index.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/network-simplex.js +0 -0
- /package/lib/{antv-dagre → algorithm/antv-dagre}/rank/util.js +0 -0
- /package/lib/{d3-force-3d → algorithm/d3-force-3d}/index.d.ts +0 -0
- /package/lib/{d3-force-3d → algorithm/d3-force-3d}/types.d.ts +0 -0
- /package/lib/{force → algorithm/force}/attractive.js +0 -0
- /package/lib/{force → algorithm/force}/gravity.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/body.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/quad-tree.js +0 -0
- /package/lib/{force-atlas2 → algorithm/force-atlas2}/quad.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_event-emitter@0.1.3/node_modules/@antv → @antv}/event-emitter/esm/index.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/clone.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/deep-mix.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/each.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/get-type.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/get.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-array-like.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-array.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-boolean.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-empty.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-function.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-nil.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-number.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-object-like.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-object.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-plain-object.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-prototype.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-string.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/is-type.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/pick.js +0 -0
- /package/lib/node_modules/{.pnpm/@antv_util@3.3.11/node_modules/@antv → @antv}/util/esm/lodash/set.js +0 -0
- /package/lib/node_modules/{.pnpm/comlink@4.4.2/node_modules/comlink → comlink}/dist/esm/comlink.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/binarytree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/half.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-binarytree@1.0.2/node_modules/d3-binarytree → d3-binarytree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch → d3-dispatch}/src/dispatch.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/center.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/jiggle.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/lcg.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/link.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/radial.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force@3.0.0/node_modules/d3-force → d3-force}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/center.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/jiggle.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/lcg.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/link.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/radial.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-force-3d@3.0.6/node_modules/d3-force-3d → d3-force-3d}/src/z.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/findAll.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/octant.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/octree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-octree@1.1.0/node_modules/d3-octree → d3-octree}/src/z.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/add.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/cover.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/data.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/extent.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/find.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/quad.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/quadtree.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/remove.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/root.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/size.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/visit.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/visitAfter.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/x.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-quadtree@3.0.1/node_modules/d3-quadtree → d3-quadtree}/src/y.js +0 -0
- /package/lib/node_modules/{.pnpm/d3-timer@3.0.1/node_modules/d3-timer → d3-timer}/src/timer.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/acyclic.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/add-border-segments.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/coordinate-system.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/data/list.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/debug.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/greedy-fas.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/layout.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/nesting-graph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/normalize.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/add-subgraph-constraints.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/barycenter.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/build-layer-graph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/cross-count.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/init-order.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/resolve-conflicts.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/sort-subgraph.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/order/sort.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/parent-dummy-chains.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/position/bk.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/position/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/feasible-tree.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/index.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/network-simplex.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/rank/util.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/util.js +0 -0
- /package/lib/node_modules/{.pnpm/dagre@0.8.5/node_modules/dagre → dagre}/lib/version.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/components.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dfs.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dijkstra-all.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/dijkstra.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/find-cycles.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/floyd-warshall.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/is-acyclic.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/postorder.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/preorder.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/prim.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/tarjan.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/alg/topsort.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/data/priority-queue.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/graph.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/index.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/json.js +0 -0
- /package/lib/node_modules/{.pnpm/graphlib@2.1.8/node_modules/graphlib → graphlib}/lib/version.js +0 -0
- /package/lib/node_modules/{.pnpm/is-any-array@2.0.1/node_modules/is-any-array → is-any-array}/lib-esm/index.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_DataView.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Hash.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_ListCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Map.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_MapCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Promise.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Set.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_SetCache.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Stack.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Symbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_Uint8Array.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_WeakMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_apply.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayFilter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayIncludes.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayIncludesWith.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayLikeKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayPush.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arrayReduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_arraySome.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_asciiSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assignMergeValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assignValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_assocIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssign.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssignIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseAssignValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseClone.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseCreate.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseExtremum.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFilter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFindIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFlatten.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseFor.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseForOwn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGetAllKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGetTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseGt.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseHasIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsArguments.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsEqual.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsEqualDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsMatch.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsNaN.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsNative.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIsTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseIteratee.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseLt.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMatches.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMatchesProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMerge.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseMergeDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseOrderBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePick.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePickBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_basePropertyDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseRange.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseReduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSetToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseSortBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseTimes.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseTrim.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseUnary.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseUniq.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseValues.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_baseZipObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_castFunction.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_castPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneArrayBuffer.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneDataView.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneRegExp.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneSymbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_cloneTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_compareAscending.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_compareMultiple.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copyArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copyObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copySymbols.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_copySymbolsIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_coreJsData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createAssigner.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createBaseEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createBaseFor.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createFind.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createRange.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_createSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_defineProperty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalArrays.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalByTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_equalObjects.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_flatRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getAllKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getAllKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getMapData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getMatchData.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getNative.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getPrototype.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getRawTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getSymbols.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getSymbolsIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_getValue.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hasPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hasUnicode.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_hashSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneByTag.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_initCloneObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isFlattenable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isIterateeCall.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isKey.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isKeyable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isMasked.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isPrototype.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_isStrictComparable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_listCacheSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapCacheSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_mapToArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_matchesStrictComparable.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_memoizeCapped.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeCreate.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeKeys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_nativeKeysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_objectToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_overArg.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_overRest.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_root.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_safeGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setCacheAdd.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setCacheHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setToArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_setToString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_shortOut.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackClear.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackDelete.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackGet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackHas.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stackSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_strictIndexOf.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stringSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_stringToPath.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_toKey.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_toSource.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_trimmedEndIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/_unicodeSize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/clone.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/cloneDeep.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/constant.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/defaults.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/each.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/eq.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/filter.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/find.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/findIndex.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/flatten.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/forEach.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/forIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/get.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/has.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/hasIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/identity.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArguments.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArrayLike.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isArrayLikeObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isEmpty.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isFunction.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isLength.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isMap.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isObjectLike.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isPlainObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isSet.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isSymbol.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isTypedArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/isUndefined.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/keys.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/keysIn.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/last.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/map.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/mapValues.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/max.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/memoize.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/merge.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/min.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/minBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/noop.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/now.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/pick.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/property.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/range.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/reduce.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/size.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/sortBy.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/stubArray.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/stubFalse.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toFinite.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toInteger.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toNumber.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toPlainObject.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/toString.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/transform.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/union.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/uniqueId.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/values.js +0 -0
- /package/lib/node_modules/{.pnpm/lodash@4.17.21/node_modules/lodash → lodash}/zipObject.js +0 -0
- /package/lib/node_modules/{.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.54.0_tslib@2.8.1_typescript@4.9.5/node_modules/tslib → tslib}/tslib.es6.js +0 -0
- /package/src/{antv-dagre → algorithm/antv-dagre}/data/list.ts +0 -0
- /package/src/{antv-dagre → algorithm/antv-dagre}/rank/index.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/index.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/types.ts +0 -0
- /package/src/{d3-force-3d → algorithm/d3-force-3d}/typing.d.ts +0 -0
- /package/src/{force → algorithm/force}/typing.d.ts +0 -0
- /package/src/{force-atlas2 → algorithm/force-atlas2}/body.ts +0 -0
- /package/src/{force-atlas2 → algorithm/force-atlas2}/quad-tree.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix2.js","sources":["../../../node_modules/ml-matrix/matrix.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isAnyArray = require('is-any-array');\nvar rescale = require('ml-array-rescale');\n\nconst indent = ' '.repeat(2);\nconst indentData = ' '.repeat(4);\n\n/**\n * @this {Matrix}\n * @returns {string}\n */\nfunction inspectMatrix() {\n return inspectMatrixWithOptions(this);\n}\n\nfunction inspectMatrixWithOptions(matrix, options = {}) {\n const {\n maxRows = 15,\n maxColumns = 10,\n maxNumSize = 8,\n padMinus = 'auto',\n } = options;\n return `${matrix.constructor.name} {\n${indent}[\n${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus)}\n${indent}]\n${indent}rows: ${matrix.rows}\n${indent}columns: ${matrix.columns}\n}`;\n}\n\nfunction inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus) {\n const { rows, columns } = matrix;\n const maxI = Math.min(rows, maxRows);\n const maxJ = Math.min(columns, maxColumns);\n const result = [];\n\n if (padMinus === 'auto') {\n padMinus = false;\n loop: for (let i = 0; i < maxI; i++) {\n for (let j = 0; j < maxJ; j++) {\n if (matrix.get(i, j) < 0) {\n padMinus = true;\n break loop;\n }\n }\n }\n }\n\n for (let i = 0; i < maxI; i++) {\n let line = [];\n for (let j = 0; j < maxJ; j++) {\n line.push(formatNumber(matrix.get(i, j), maxNumSize, padMinus));\n }\n result.push(`${line.join(' ')}`);\n }\n if (maxJ !== columns) {\n result[result.length - 1] += ` ... ${columns - maxColumns} more columns`;\n }\n if (maxI !== rows) {\n result.push(`... ${rows - maxRows} more rows`);\n }\n return result.join(`\\n${indentData}`);\n}\n\nfunction formatNumber(num, maxNumSize, padMinus) {\n return (\n num >= 0 && padMinus\n ? ` ${formatNumber2(num, maxNumSize - 1)}`\n : formatNumber2(num, maxNumSize)\n ).padEnd(maxNumSize);\n}\n\nfunction formatNumber2(num, len) {\n // small.length numbers should be as is\n let str = num.toString();\n if (str.length <= len) return str;\n\n // (7)'0.00123' is better then (7)'1.23e-2'\n // (8)'0.000123' is worse then (7)'1.23e-3',\n let fix = num.toFixed(len);\n if (fix.length > len) {\n fix = num.toFixed(Math.max(0, len - (fix.length - len)));\n }\n if (\n fix.length <= len &&\n !fix.startsWith('0.000') &&\n !fix.startsWith('-0.000')\n ) {\n return fix;\n }\n\n // well, if it's still too long the user should've used longer numbers\n let exp = num.toExponential(len);\n if (exp.length > len) {\n exp = num.toExponential(Math.max(0, len - (exp.length - len)));\n }\n return exp.slice(0);\n}\n\nfunction installMathOperations(AbstractMatrix, Matrix) {\n AbstractMatrix.prototype.add = function add(value) {\n if (typeof value === 'number') return this.addS(value);\n return this.addM(value);\n };\n\n AbstractMatrix.prototype.addS = function addS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.addM = function addM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.add = function add(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.add(value);\n };\n\n AbstractMatrix.prototype.sub = function sub(value) {\n if (typeof value === 'number') return this.subS(value);\n return this.subM(value);\n };\n\n AbstractMatrix.prototype.subS = function subS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.subM = function subM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.sub = function sub(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.sub(value);\n };\n AbstractMatrix.prototype.subtract = AbstractMatrix.prototype.sub;\n AbstractMatrix.prototype.subtractS = AbstractMatrix.prototype.subS;\n AbstractMatrix.prototype.subtractM = AbstractMatrix.prototype.subM;\n AbstractMatrix.subtract = AbstractMatrix.sub;\n\n AbstractMatrix.prototype.mul = function mul(value) {\n if (typeof value === 'number') return this.mulS(value);\n return this.mulM(value);\n };\n\n AbstractMatrix.prototype.mulS = function mulS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.mulM = function mulM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.mul = function mul(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.mul(value);\n };\n AbstractMatrix.prototype.multiply = AbstractMatrix.prototype.mul;\n AbstractMatrix.prototype.multiplyS = AbstractMatrix.prototype.mulS;\n AbstractMatrix.prototype.multiplyM = AbstractMatrix.prototype.mulM;\n AbstractMatrix.multiply = AbstractMatrix.mul;\n\n AbstractMatrix.prototype.div = function div(value) {\n if (typeof value === 'number') return this.divS(value);\n return this.divM(value);\n };\n\n AbstractMatrix.prototype.divS = function divS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.divM = function divM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.div = function div(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.div(value);\n };\n AbstractMatrix.prototype.divide = AbstractMatrix.prototype.div;\n AbstractMatrix.prototype.divideS = AbstractMatrix.prototype.divS;\n AbstractMatrix.prototype.divideM = AbstractMatrix.prototype.divM;\n AbstractMatrix.divide = AbstractMatrix.div;\n\n AbstractMatrix.prototype.mod = function mod(value) {\n if (typeof value === 'number') return this.modS(value);\n return this.modM(value);\n };\n\n AbstractMatrix.prototype.modS = function modS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) % value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.modM = function modM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) % matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.mod = function mod(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.mod(value);\n };\n AbstractMatrix.prototype.modulus = AbstractMatrix.prototype.mod;\n AbstractMatrix.prototype.modulusS = AbstractMatrix.prototype.modS;\n AbstractMatrix.prototype.modulusM = AbstractMatrix.prototype.modM;\n AbstractMatrix.modulus = AbstractMatrix.mod;\n\n AbstractMatrix.prototype.and = function and(value) {\n if (typeof value === 'number') return this.andS(value);\n return this.andM(value);\n };\n\n AbstractMatrix.prototype.andS = function andS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) & value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.andM = function andM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) & matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.and = function and(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.and(value);\n };\n\n AbstractMatrix.prototype.or = function or(value) {\n if (typeof value === 'number') return this.orS(value);\n return this.orM(value);\n };\n\n AbstractMatrix.prototype.orS = function orS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) | value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.orM = function orM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) | matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.or = function or(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.or(value);\n };\n\n AbstractMatrix.prototype.xor = function xor(value) {\n if (typeof value === 'number') return this.xorS(value);\n return this.xorM(value);\n };\n\n AbstractMatrix.prototype.xorS = function xorS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) ^ value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.xorM = function xorM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) ^ matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.xor = function xor(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.xor(value);\n };\n\n AbstractMatrix.prototype.leftShift = function leftShift(value) {\n if (typeof value === 'number') return this.leftShiftS(value);\n return this.leftShiftM(value);\n };\n\n AbstractMatrix.prototype.leftShiftS = function leftShiftS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) << value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.leftShiftM = function leftShiftM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) << matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.leftShift = function leftShift(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.leftShift(value);\n };\n\n AbstractMatrix.prototype.signPropagatingRightShift = function signPropagatingRightShift(value) {\n if (typeof value === 'number') return this.signPropagatingRightShiftS(value);\n return this.signPropagatingRightShiftM(value);\n };\n\n AbstractMatrix.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) >> value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) >> matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.signPropagatingRightShift = function signPropagatingRightShift(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.signPropagatingRightShift(value);\n };\n\n AbstractMatrix.prototype.rightShift = function rightShift(value) {\n if (typeof value === 'number') return this.rightShiftS(value);\n return this.rightShiftM(value);\n };\n\n AbstractMatrix.prototype.rightShiftS = function rightShiftS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) >>> value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.rightShiftM = function rightShiftM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) >>> matrix.get(i, j));\n }\n }\n return this;\n };\n\n AbstractMatrix.rightShift = function rightShift(matrix, value) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.rightShift(value);\n };\n AbstractMatrix.prototype.zeroFillRightShift = AbstractMatrix.prototype.rightShift;\n AbstractMatrix.prototype.zeroFillRightShiftS = AbstractMatrix.prototype.rightShiftS;\n AbstractMatrix.prototype.zeroFillRightShiftM = AbstractMatrix.prototype.rightShiftM;\n AbstractMatrix.zeroFillRightShift = AbstractMatrix.rightShift;\n\n AbstractMatrix.prototype.not = function not() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, ~(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.not = function not(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.not();\n };\n\n AbstractMatrix.prototype.abs = function abs() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.abs(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.abs = function abs(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.abs();\n };\n\n AbstractMatrix.prototype.acos = function acos() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.acos(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.acos = function acos(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.acos();\n };\n\n AbstractMatrix.prototype.acosh = function acosh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.acosh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.acosh = function acosh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.acosh();\n };\n\n AbstractMatrix.prototype.asin = function asin() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.asin(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.asin = function asin(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.asin();\n };\n\n AbstractMatrix.prototype.asinh = function asinh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.asinh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.asinh = function asinh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.asinh();\n };\n\n AbstractMatrix.prototype.atan = function atan() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.atan(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.atan = function atan(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.atan();\n };\n\n AbstractMatrix.prototype.atanh = function atanh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.atanh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.atanh = function atanh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.atanh();\n };\n\n AbstractMatrix.prototype.cbrt = function cbrt() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.cbrt(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.cbrt = function cbrt(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.cbrt();\n };\n\n AbstractMatrix.prototype.ceil = function ceil() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.ceil(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.ceil = function ceil(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.ceil();\n };\n\n AbstractMatrix.prototype.clz32 = function clz32() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.clz32(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.clz32 = function clz32(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.clz32();\n };\n\n AbstractMatrix.prototype.cos = function cos() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.cos(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.cos = function cos(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.cos();\n };\n\n AbstractMatrix.prototype.cosh = function cosh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.cosh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.cosh = function cosh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.cosh();\n };\n\n AbstractMatrix.prototype.exp = function exp() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.exp(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.exp = function exp(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.exp();\n };\n\n AbstractMatrix.prototype.expm1 = function expm1() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.expm1(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.expm1 = function expm1(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.expm1();\n };\n\n AbstractMatrix.prototype.floor = function floor() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.floor(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.floor = function floor(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.floor();\n };\n\n AbstractMatrix.prototype.fround = function fround() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.fround(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.fround = function fround(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.fround();\n };\n\n AbstractMatrix.prototype.log = function log() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.log(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.log = function log(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.log();\n };\n\n AbstractMatrix.prototype.log1p = function log1p() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.log1p(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.log1p = function log1p(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.log1p();\n };\n\n AbstractMatrix.prototype.log10 = function log10() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.log10(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.log10 = function log10(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.log10();\n };\n\n AbstractMatrix.prototype.log2 = function log2() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.log2(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.log2 = function log2(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.log2();\n };\n\n AbstractMatrix.prototype.round = function round() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.round(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.round = function round(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.round();\n };\n\n AbstractMatrix.prototype.sign = function sign() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.sign(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.sign = function sign(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.sign();\n };\n\n AbstractMatrix.prototype.sin = function sin() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.sin(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.sin = function sin(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.sin();\n };\n\n AbstractMatrix.prototype.sinh = function sinh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.sinh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.sinh = function sinh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.sinh();\n };\n\n AbstractMatrix.prototype.sqrt = function sqrt() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.sqrt(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.sqrt = function sqrt(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.sqrt();\n };\n\n AbstractMatrix.prototype.tan = function tan() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.tan(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.tan = function tan(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.tan();\n };\n\n AbstractMatrix.prototype.tanh = function tanh() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.tanh(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.tanh = function tanh(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.tanh();\n };\n\n AbstractMatrix.prototype.trunc = function trunc() {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, Math.trunc(this.get(i, j)));\n }\n }\n return this;\n };\n\n AbstractMatrix.trunc = function trunc(matrix) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.trunc();\n };\n\n AbstractMatrix.pow = function pow(matrix, arg0) {\n const newMatrix = new Matrix(matrix);\n return newMatrix.pow(arg0);\n };\n\n AbstractMatrix.prototype.pow = function pow(value) {\n if (typeof value === 'number') return this.powS(value);\n return this.powM(value);\n };\n\n AbstractMatrix.prototype.powS = function powS(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) ** value);\n }\n }\n return this;\n };\n\n AbstractMatrix.prototype.powM = function powM(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (this.rows !== matrix.rows ||\n this.columns !== matrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) ** matrix.get(i, j));\n }\n }\n return this;\n };\n}\n\n/**\n * @private\n * Check that a row index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nfunction checkRowIndex(matrix, index, outer) {\n let max = outer ? matrix.rows : matrix.rows - 1;\n if (index < 0 || index > max) {\n throw new RangeError('Row index out of range');\n }\n}\n\n/**\n * @private\n * Check that a column index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nfunction checkColumnIndex(matrix, index, outer) {\n let max = outer ? matrix.columns : matrix.columns - 1;\n if (index < 0 || index > max) {\n throw new RangeError('Column index out of range');\n }\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nfunction checkRowVector(matrix, vector) {\n if (vector.to1DArray) {\n vector = vector.to1DArray();\n }\n if (vector.length !== matrix.columns) {\n throw new RangeError(\n 'vector size must be the same as the number of columns',\n );\n }\n return vector;\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nfunction checkColumnVector(matrix, vector) {\n if (vector.to1DArray) {\n vector = vector.to1DArray();\n }\n if (vector.length !== matrix.rows) {\n throw new RangeError('vector size must be the same as the number of rows');\n }\n return vector;\n}\n\nfunction checkRowIndices(matrix, rowIndices) {\n if (!isAnyArray.isAnyArray(rowIndices)) {\n throw new TypeError('row indices must be an array');\n }\n\n for (let i = 0; i < rowIndices.length; i++) {\n if (rowIndices[i] < 0 || rowIndices[i] >= matrix.rows) {\n throw new RangeError('row indices are out of range');\n }\n }\n}\n\nfunction checkColumnIndices(matrix, columnIndices) {\n if (!isAnyArray.isAnyArray(columnIndices)) {\n throw new TypeError('column indices must be an array');\n }\n\n for (let i = 0; i < columnIndices.length; i++) {\n if (columnIndices[i] < 0 || columnIndices[i] >= matrix.columns) {\n throw new RangeError('column indices are out of range');\n }\n }\n}\n\nfunction checkRange(matrix, startRow, endRow, startColumn, endColumn) {\n if (arguments.length !== 5) {\n throw new RangeError('expected 4 arguments');\n }\n checkNumber('startRow', startRow);\n checkNumber('endRow', endRow);\n checkNumber('startColumn', startColumn);\n checkNumber('endColumn', endColumn);\n if (\n startRow > endRow ||\n startColumn > endColumn ||\n startRow < 0 ||\n startRow >= matrix.rows ||\n endRow < 0 ||\n endRow >= matrix.rows ||\n startColumn < 0 ||\n startColumn >= matrix.columns ||\n endColumn < 0 ||\n endColumn >= matrix.columns\n ) {\n throw new RangeError('Submatrix indices are out of range');\n }\n}\n\nfunction newArray(length, value = 0) {\n let array = [];\n for (let i = 0; i < length; i++) {\n array.push(value);\n }\n return array;\n}\n\nfunction checkNumber(name, value) {\n if (typeof value !== 'number') {\n throw new TypeError(`${name} must be a number`);\n }\n}\n\nfunction checkNonEmpty(matrix) {\n if (matrix.isEmpty()) {\n throw new Error('Empty matrix has no elements to index');\n }\n}\n\nfunction sumByRow(matrix) {\n let sum = newArray(matrix.rows);\n for (let i = 0; i < matrix.rows; ++i) {\n for (let j = 0; j < matrix.columns; ++j) {\n sum[i] += matrix.get(i, j);\n }\n }\n return sum;\n}\n\nfunction sumByColumn(matrix) {\n let sum = newArray(matrix.columns);\n for (let i = 0; i < matrix.rows; ++i) {\n for (let j = 0; j < matrix.columns; ++j) {\n sum[j] += matrix.get(i, j);\n }\n }\n return sum;\n}\n\nfunction sumAll(matrix) {\n let v = 0;\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n v += matrix.get(i, j);\n }\n }\n return v;\n}\n\nfunction productByRow(matrix) {\n let sum = newArray(matrix.rows, 1);\n for (let i = 0; i < matrix.rows; ++i) {\n for (let j = 0; j < matrix.columns; ++j) {\n sum[i] *= matrix.get(i, j);\n }\n }\n return sum;\n}\n\nfunction productByColumn(matrix) {\n let sum = newArray(matrix.columns, 1);\n for (let i = 0; i < matrix.rows; ++i) {\n for (let j = 0; j < matrix.columns; ++j) {\n sum[j] *= matrix.get(i, j);\n }\n }\n return sum;\n}\n\nfunction productAll(matrix) {\n let v = 1;\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n v *= matrix.get(i, j);\n }\n }\n return v;\n}\n\nfunction varianceByRow(matrix, unbiased, mean) {\n const rows = matrix.rows;\n const cols = matrix.columns;\n const variance = [];\n\n for (let i = 0; i < rows; i++) {\n let sum1 = 0;\n let sum2 = 0;\n let x = 0;\n for (let j = 0; j < cols; j++) {\n x = matrix.get(i, j) - mean[i];\n sum1 += x;\n sum2 += x * x;\n }\n if (unbiased) {\n variance.push((sum2 - (sum1 * sum1) / cols) / (cols - 1));\n } else {\n variance.push((sum2 - (sum1 * sum1) / cols) / cols);\n }\n }\n return variance;\n}\n\nfunction varianceByColumn(matrix, unbiased, mean) {\n const rows = matrix.rows;\n const cols = matrix.columns;\n const variance = [];\n\n for (let j = 0; j < cols; j++) {\n let sum1 = 0;\n let sum2 = 0;\n let x = 0;\n for (let i = 0; i < rows; i++) {\n x = matrix.get(i, j) - mean[j];\n sum1 += x;\n sum2 += x * x;\n }\n if (unbiased) {\n variance.push((sum2 - (sum1 * sum1) / rows) / (rows - 1));\n } else {\n variance.push((sum2 - (sum1 * sum1) / rows) / rows);\n }\n }\n return variance;\n}\n\nfunction varianceAll(matrix, unbiased, mean) {\n const rows = matrix.rows;\n const cols = matrix.columns;\n const size = rows * cols;\n\n let sum1 = 0;\n let sum2 = 0;\n let x = 0;\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < cols; j++) {\n x = matrix.get(i, j) - mean;\n sum1 += x;\n sum2 += x * x;\n }\n }\n if (unbiased) {\n return (sum2 - (sum1 * sum1) / size) / (size - 1);\n } else {\n return (sum2 - (sum1 * sum1) / size) / size;\n }\n}\n\nfunction centerByRow(matrix, mean) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) - mean[i]);\n }\n }\n}\n\nfunction centerByColumn(matrix, mean) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) - mean[j]);\n }\n }\n}\n\nfunction centerAll(matrix, mean) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) - mean);\n }\n }\n}\n\nfunction getScaleByRow(matrix) {\n const scale = [];\n for (let i = 0; i < matrix.rows; i++) {\n let sum = 0;\n for (let j = 0; j < matrix.columns; j++) {\n sum += matrix.get(i, j) ** 2 / (matrix.columns - 1);\n }\n scale.push(Math.sqrt(sum));\n }\n return scale;\n}\n\nfunction scaleByRow(matrix, scale) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) / scale[i]);\n }\n }\n}\n\nfunction getScaleByColumn(matrix) {\n const scale = [];\n for (let j = 0; j < matrix.columns; j++) {\n let sum = 0;\n for (let i = 0; i < matrix.rows; i++) {\n sum += matrix.get(i, j) ** 2 / (matrix.rows - 1);\n }\n scale.push(Math.sqrt(sum));\n }\n return scale;\n}\n\nfunction scaleByColumn(matrix, scale) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) / scale[j]);\n }\n }\n}\n\nfunction getScaleAll(matrix) {\n const divider = matrix.size - 1;\n let sum = 0;\n for (let j = 0; j < matrix.columns; j++) {\n for (let i = 0; i < matrix.rows; i++) {\n sum += matrix.get(i, j) ** 2 / divider;\n }\n }\n return Math.sqrt(sum);\n}\n\nfunction scaleAll(matrix, scale) {\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n matrix.set(i, j, matrix.get(i, j) / scale);\n }\n }\n}\n\nclass AbstractMatrix {\n static from1DArray(newRows, newColumns, newData) {\n let length = newRows * newColumns;\n if (length !== newData.length) {\n throw new RangeError('data length does not match given dimensions');\n }\n let newMatrix = new Matrix(newRows, newColumns);\n for (let row = 0; row < newRows; row++) {\n for (let column = 0; column < newColumns; column++) {\n newMatrix.set(row, column, newData[row * newColumns + column]);\n }\n }\n return newMatrix;\n }\n\n static rowVector(newData) {\n let vector = new Matrix(1, newData.length);\n for (let i = 0; i < newData.length; i++) {\n vector.set(0, i, newData[i]);\n }\n return vector;\n }\n\n static columnVector(newData) {\n let vector = new Matrix(newData.length, 1);\n for (let i = 0; i < newData.length; i++) {\n vector.set(i, 0, newData[i]);\n }\n return vector;\n }\n\n static zeros(rows, columns) {\n return new Matrix(rows, columns);\n }\n\n static ones(rows, columns) {\n return new Matrix(rows, columns).fill(1);\n }\n\n static rand(rows, columns, options = {}) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { random = Math.random } = options;\n let matrix = new Matrix(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n matrix.set(i, j, random());\n }\n }\n return matrix;\n }\n\n static randInt(rows, columns, options = {}) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { min = 0, max = 1000, random = Math.random } = options;\n if (!Number.isInteger(min)) throw new TypeError('min must be an integer');\n if (!Number.isInteger(max)) throw new TypeError('max must be an integer');\n if (min >= max) throw new RangeError('min must be smaller than max');\n let interval = max - min;\n let matrix = new Matrix(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n let value = min + Math.round(random() * interval);\n matrix.set(i, j, value);\n }\n }\n return matrix;\n }\n\n static eye(rows, columns, value) {\n if (columns === undefined) columns = rows;\n if (value === undefined) value = 1;\n let min = Math.min(rows, columns);\n let matrix = this.zeros(rows, columns);\n for (let i = 0; i < min; i++) {\n matrix.set(i, i, value);\n }\n return matrix;\n }\n\n static diag(data, rows, columns) {\n let l = data.length;\n if (rows === undefined) rows = l;\n if (columns === undefined) columns = rows;\n let min = Math.min(l, rows, columns);\n let matrix = this.zeros(rows, columns);\n for (let i = 0; i < min; i++) {\n matrix.set(i, i, data[i]);\n }\n return matrix;\n }\n\n static min(matrix1, matrix2) {\n matrix1 = this.checkMatrix(matrix1);\n matrix2 = this.checkMatrix(matrix2);\n let rows = matrix1.rows;\n let columns = matrix1.columns;\n let result = new Matrix(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n result.set(i, j, Math.min(matrix1.get(i, j), matrix2.get(i, j)));\n }\n }\n return result;\n }\n\n static max(matrix1, matrix2) {\n matrix1 = this.checkMatrix(matrix1);\n matrix2 = this.checkMatrix(matrix2);\n let rows = matrix1.rows;\n let columns = matrix1.columns;\n let result = new this(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n result.set(i, j, Math.max(matrix1.get(i, j), matrix2.get(i, j)));\n }\n }\n return result;\n }\n\n static checkMatrix(value) {\n return AbstractMatrix.isMatrix(value) ? value : new Matrix(value);\n }\n\n static isMatrix(value) {\n return value != null && value.klass === 'Matrix';\n }\n\n get size() {\n return this.rows * this.columns;\n }\n\n apply(callback) {\n if (typeof callback !== 'function') {\n throw new TypeError('callback must be a function');\n }\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n callback.call(this, i, j);\n }\n }\n return this;\n }\n\n to1DArray() {\n let array = [];\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n array.push(this.get(i, j));\n }\n }\n return array;\n }\n\n to2DArray() {\n let copy = [];\n for (let i = 0; i < this.rows; i++) {\n copy.push([]);\n for (let j = 0; j < this.columns; j++) {\n copy[i].push(this.get(i, j));\n }\n }\n return copy;\n }\n\n toJSON() {\n return this.to2DArray();\n }\n\n isRowVector() {\n return this.rows === 1;\n }\n\n isColumnVector() {\n return this.columns === 1;\n }\n\n isVector() {\n return this.rows === 1 || this.columns === 1;\n }\n\n isSquare() {\n return this.rows === this.columns;\n }\n\n isEmpty() {\n return this.rows === 0 || this.columns === 0;\n }\n\n isSymmetric() {\n if (this.isSquare()) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j <= i; j++) {\n if (this.get(i, j) !== this.get(j, i)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n isDistance() {\n if (!this.isSymmetric()) return false;\n\n for (let i = 0; i < this.rows; i++) {\n if (this.get(i, i) !== 0) return false;\n }\n\n return true;\n }\n\n isEchelonForm() {\n let i = 0;\n let j = 0;\n let previousColumn = -1;\n let isEchelonForm = true;\n let checked = false;\n while (i < this.rows && isEchelonForm) {\n j = 0;\n checked = false;\n while (j < this.columns && checked === false) {\n if (this.get(i, j) === 0) {\n j++;\n } else if (this.get(i, j) === 1 && j > previousColumn) {\n checked = true;\n previousColumn = j;\n } else {\n isEchelonForm = false;\n checked = true;\n }\n }\n i++;\n }\n return isEchelonForm;\n }\n\n isReducedEchelonForm() {\n let i = 0;\n let j = 0;\n let previousColumn = -1;\n let isReducedEchelonForm = true;\n let checked = false;\n while (i < this.rows && isReducedEchelonForm) {\n j = 0;\n checked = false;\n while (j < this.columns && checked === false) {\n if (this.get(i, j) === 0) {\n j++;\n } else if (this.get(i, j) === 1 && j > previousColumn) {\n checked = true;\n previousColumn = j;\n } else {\n isReducedEchelonForm = false;\n checked = true;\n }\n }\n for (let k = j + 1; k < this.rows; k++) {\n if (this.get(i, k) !== 0) {\n isReducedEchelonForm = false;\n }\n }\n i++;\n }\n return isReducedEchelonForm;\n }\n\n echelonForm() {\n let result = this.clone();\n let h = 0;\n let k = 0;\n while (h < result.rows && k < result.columns) {\n let iMax = h;\n for (let i = h; i < result.rows; i++) {\n if (result.get(i, k) > result.get(iMax, k)) {\n iMax = i;\n }\n }\n if (result.get(iMax, k) === 0) {\n k++;\n } else {\n result.swapRows(h, iMax);\n let tmp = result.get(h, k);\n for (let j = k; j < result.columns; j++) {\n result.set(h, j, result.get(h, j) / tmp);\n }\n for (let i = h + 1; i < result.rows; i++) {\n let factor = result.get(i, k) / result.get(h, k);\n result.set(i, k, 0);\n for (let j = k + 1; j < result.columns; j++) {\n result.set(i, j, result.get(i, j) - result.get(h, j) * factor);\n }\n }\n h++;\n k++;\n }\n }\n return result;\n }\n\n reducedEchelonForm() {\n let result = this.echelonForm();\n let m = result.columns;\n let n = result.rows;\n let h = n - 1;\n while (h >= 0) {\n if (result.maxRow(h) === 0) {\n h--;\n } else {\n let p = 0;\n let pivot = false;\n while (p < n && pivot === false) {\n if (result.get(h, p) === 1) {\n pivot = true;\n } else {\n p++;\n }\n }\n for (let i = 0; i < h; i++) {\n let factor = result.get(i, p);\n for (let j = p; j < m; j++) {\n let tmp = result.get(i, j) - factor * result.get(h, j);\n result.set(i, j, tmp);\n }\n }\n h--;\n }\n }\n return result;\n }\n\n set() {\n throw new Error('set method is unimplemented');\n }\n\n get() {\n throw new Error('get method is unimplemented');\n }\n\n repeat(options = {}) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { rows = 1, columns = 1 } = options;\n if (!Number.isInteger(rows) || rows <= 0) {\n throw new TypeError('rows must be a positive integer');\n }\n if (!Number.isInteger(columns) || columns <= 0) {\n throw new TypeError('columns must be a positive integer');\n }\n let matrix = new Matrix(this.rows * rows, this.columns * columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n matrix.setSubMatrix(this, this.rows * i, this.columns * j);\n }\n }\n return matrix;\n }\n\n fill(value) {\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, value);\n }\n }\n return this;\n }\n\n neg() {\n return this.mulS(-1);\n }\n\n getRow(index) {\n checkRowIndex(this, index);\n let row = [];\n for (let i = 0; i < this.columns; i++) {\n row.push(this.get(index, i));\n }\n return row;\n }\n\n getRowVector(index) {\n return Matrix.rowVector(this.getRow(index));\n }\n\n setRow(index, array) {\n checkRowIndex(this, index);\n array = checkRowVector(this, array);\n for (let i = 0; i < this.columns; i++) {\n this.set(index, i, array[i]);\n }\n return this;\n }\n\n swapRows(row1, row2) {\n checkRowIndex(this, row1);\n checkRowIndex(this, row2);\n for (let i = 0; i < this.columns; i++) {\n let temp = this.get(row1, i);\n this.set(row1, i, this.get(row2, i));\n this.set(row2, i, temp);\n }\n return this;\n }\n\n getColumn(index) {\n checkColumnIndex(this, index);\n let column = [];\n for (let i = 0; i < this.rows; i++) {\n column.push(this.get(i, index));\n }\n return column;\n }\n\n getColumnVector(index) {\n return Matrix.columnVector(this.getColumn(index));\n }\n\n setColumn(index, array) {\n checkColumnIndex(this, index);\n array = checkColumnVector(this, array);\n for (let i = 0; i < this.rows; i++) {\n this.set(i, index, array[i]);\n }\n return this;\n }\n\n swapColumns(column1, column2) {\n checkColumnIndex(this, column1);\n checkColumnIndex(this, column2);\n for (let i = 0; i < this.rows; i++) {\n let temp = this.get(i, column1);\n this.set(i, column1, this.get(i, column2));\n this.set(i, column2, temp);\n }\n return this;\n }\n\n addRowVector(vector) {\n vector = checkRowVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + vector[j]);\n }\n }\n return this;\n }\n\n subRowVector(vector) {\n vector = checkRowVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - vector[j]);\n }\n }\n return this;\n }\n\n mulRowVector(vector) {\n vector = checkRowVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * vector[j]);\n }\n }\n return this;\n }\n\n divRowVector(vector) {\n vector = checkRowVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / vector[j]);\n }\n }\n return this;\n }\n\n addColumnVector(vector) {\n vector = checkColumnVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + vector[i]);\n }\n }\n return this;\n }\n\n subColumnVector(vector) {\n vector = checkColumnVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - vector[i]);\n }\n }\n return this;\n }\n\n mulColumnVector(vector) {\n vector = checkColumnVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * vector[i]);\n }\n }\n return this;\n }\n\n divColumnVector(vector) {\n vector = checkColumnVector(this, vector);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / vector[i]);\n }\n }\n return this;\n }\n\n mulRow(index, value) {\n checkRowIndex(this, index);\n for (let i = 0; i < this.columns; i++) {\n this.set(index, i, this.get(index, i) * value);\n }\n return this;\n }\n\n mulColumn(index, value) {\n checkColumnIndex(this, index);\n for (let i = 0; i < this.rows; i++) {\n this.set(i, index, this.get(i, index) * value);\n }\n return this;\n }\n\n max(by) {\n if (this.isEmpty()) {\n return NaN;\n }\n switch (by) {\n case 'row': {\n const max = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) > max[row]) {\n max[row] = this.get(row, column);\n }\n }\n }\n return max;\n }\n case 'column': {\n const max = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) > max[column]) {\n max[column] = this.get(row, column);\n }\n }\n }\n return max;\n }\n case undefined: {\n let max = this.get(0, 0);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) > max) {\n max = this.get(row, column);\n }\n }\n }\n return max;\n }\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n maxIndex() {\n checkNonEmpty(this);\n let v = this.get(0, 0);\n let idx = [0, 0];\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n if (this.get(i, j) > v) {\n v = this.get(i, j);\n idx[0] = i;\n idx[1] = j;\n }\n }\n }\n return idx;\n }\n\n min(by) {\n if (this.isEmpty()) {\n return NaN;\n }\n\n switch (by) {\n case 'row': {\n const min = new Array(this.rows).fill(Number.POSITIVE_INFINITY);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) < min[row]) {\n min[row] = this.get(row, column);\n }\n }\n }\n return min;\n }\n case 'column': {\n const min = new Array(this.columns).fill(Number.POSITIVE_INFINITY);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) < min[column]) {\n min[column] = this.get(row, column);\n }\n }\n }\n return min;\n }\n case undefined: {\n let min = this.get(0, 0);\n for (let row = 0; row < this.rows; row++) {\n for (let column = 0; column < this.columns; column++) {\n if (this.get(row, column) < min) {\n min = this.get(row, column);\n }\n }\n }\n return min;\n }\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n minIndex() {\n checkNonEmpty(this);\n let v = this.get(0, 0);\n let idx = [0, 0];\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n if (this.get(i, j) < v) {\n v = this.get(i, j);\n idx[0] = i;\n idx[1] = j;\n }\n }\n }\n return idx;\n }\n\n maxRow(row) {\n checkRowIndex(this, row);\n if (this.isEmpty()) {\n return NaN;\n }\n let v = this.get(row, 0);\n for (let i = 1; i < this.columns; i++) {\n if (this.get(row, i) > v) {\n v = this.get(row, i);\n }\n }\n return v;\n }\n\n maxRowIndex(row) {\n checkRowIndex(this, row);\n checkNonEmpty(this);\n let v = this.get(row, 0);\n let idx = [row, 0];\n for (let i = 1; i < this.columns; i++) {\n if (this.get(row, i) > v) {\n v = this.get(row, i);\n idx[1] = i;\n }\n }\n return idx;\n }\n\n minRow(row) {\n checkRowIndex(this, row);\n if (this.isEmpty()) {\n return NaN;\n }\n let v = this.get(row, 0);\n for (let i = 1; i < this.columns; i++) {\n if (this.get(row, i) < v) {\n v = this.get(row, i);\n }\n }\n return v;\n }\n\n minRowIndex(row) {\n checkRowIndex(this, row);\n checkNonEmpty(this);\n let v = this.get(row, 0);\n let idx = [row, 0];\n for (let i = 1; i < this.columns; i++) {\n if (this.get(row, i) < v) {\n v = this.get(row, i);\n idx[1] = i;\n }\n }\n return idx;\n }\n\n maxColumn(column) {\n checkColumnIndex(this, column);\n if (this.isEmpty()) {\n return NaN;\n }\n let v = this.get(0, column);\n for (let i = 1; i < this.rows; i++) {\n if (this.get(i, column) > v) {\n v = this.get(i, column);\n }\n }\n return v;\n }\n\n maxColumnIndex(column) {\n checkColumnIndex(this, column);\n checkNonEmpty(this);\n let v = this.get(0, column);\n let idx = [0, column];\n for (let i = 1; i < this.rows; i++) {\n if (this.get(i, column) > v) {\n v = this.get(i, column);\n idx[0] = i;\n }\n }\n return idx;\n }\n\n minColumn(column) {\n checkColumnIndex(this, column);\n if (this.isEmpty()) {\n return NaN;\n }\n let v = this.get(0, column);\n for (let i = 1; i < this.rows; i++) {\n if (this.get(i, column) < v) {\n v = this.get(i, column);\n }\n }\n return v;\n }\n\n minColumnIndex(column) {\n checkColumnIndex(this, column);\n checkNonEmpty(this);\n let v = this.get(0, column);\n let idx = [0, column];\n for (let i = 1; i < this.rows; i++) {\n if (this.get(i, column) < v) {\n v = this.get(i, column);\n idx[0] = i;\n }\n }\n return idx;\n }\n\n diag() {\n let min = Math.min(this.rows, this.columns);\n let diag = [];\n for (let i = 0; i < min; i++) {\n diag.push(this.get(i, i));\n }\n return diag;\n }\n\n norm(type = 'frobenius') {\n switch (type) {\n case 'max':\n return this.max();\n case 'frobenius':\n return Math.sqrt(this.dot(this));\n default:\n throw new RangeError(`unknown norm type: ${type}`);\n }\n }\n\n cumulativeSum() {\n let sum = 0;\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n sum += this.get(i, j);\n this.set(i, j, sum);\n }\n }\n return this;\n }\n\n dot(vector2) {\n if (AbstractMatrix.isMatrix(vector2)) vector2 = vector2.to1DArray();\n let vector1 = this.to1DArray();\n if (vector1.length !== vector2.length) {\n throw new RangeError('vectors do not have the same size');\n }\n let dot = 0;\n for (let i = 0; i < vector1.length; i++) {\n dot += vector1[i] * vector2[i];\n }\n return dot;\n }\n\n mmul(other) {\n other = Matrix.checkMatrix(other);\n\n let m = this.rows;\n let n = this.columns;\n let p = other.columns;\n\n let result = new Matrix(m, p);\n\n let Bcolj = new Float64Array(n);\n for (let j = 0; j < p; j++) {\n for (let k = 0; k < n; k++) {\n Bcolj[k] = other.get(k, j);\n }\n\n for (let i = 0; i < m; i++) {\n let s = 0;\n for (let k = 0; k < n; k++) {\n s += this.get(i, k) * Bcolj[k];\n }\n\n result.set(i, j, s);\n }\n }\n return result;\n }\n\n mpow(scalar) {\n if (!this.isSquare()) {\n throw new RangeError('Matrix must be square');\n }\n if (!Number.isInteger(scalar) || scalar < 0) {\n throw new RangeError('Exponent must be a non-negative integer');\n }\n // Russian Peasant exponentiation, i.e. exponentiation by squaring\n let result = Matrix.eye(this.rows);\n let bb = this;\n // Note: Don't bit shift. In JS, that would truncate at 32 bits\n for (let e = scalar; e >= 1; e /= 2) {\n if ((e & 1) !== 0) {\n result = result.mmul(bb);\n }\n bb = bb.mmul(bb);\n }\n return result;\n }\n\n strassen2x2(other) {\n other = Matrix.checkMatrix(other);\n let result = new Matrix(2, 2);\n const a11 = this.get(0, 0);\n const b11 = other.get(0, 0);\n const a12 = this.get(0, 1);\n const b12 = other.get(0, 1);\n const a21 = this.get(1, 0);\n const b21 = other.get(1, 0);\n const a22 = this.get(1, 1);\n const b22 = other.get(1, 1);\n\n // Compute intermediate values.\n const m1 = (a11 + a22) * (b11 + b22);\n const m2 = (a21 + a22) * b11;\n const m3 = a11 * (b12 - b22);\n const m4 = a22 * (b21 - b11);\n const m5 = (a11 + a12) * b22;\n const m6 = (a21 - a11) * (b11 + b12);\n const m7 = (a12 - a22) * (b21 + b22);\n\n // Combine intermediate values into the output.\n const c00 = m1 + m4 - m5 + m7;\n const c01 = m3 + m5;\n const c10 = m2 + m4;\n const c11 = m1 - m2 + m3 + m6;\n\n result.set(0, 0, c00);\n result.set(0, 1, c01);\n result.set(1, 0, c10);\n result.set(1, 1, c11);\n return result;\n }\n\n strassen3x3(other) {\n other = Matrix.checkMatrix(other);\n let result = new Matrix(3, 3);\n\n const a00 = this.get(0, 0);\n const a01 = this.get(0, 1);\n const a02 = this.get(0, 2);\n const a10 = this.get(1, 0);\n const a11 = this.get(1, 1);\n const a12 = this.get(1, 2);\n const a20 = this.get(2, 0);\n const a21 = this.get(2, 1);\n const a22 = this.get(2, 2);\n\n const b00 = other.get(0, 0);\n const b01 = other.get(0, 1);\n const b02 = other.get(0, 2);\n const b10 = other.get(1, 0);\n const b11 = other.get(1, 1);\n const b12 = other.get(1, 2);\n const b20 = other.get(2, 0);\n const b21 = other.get(2, 1);\n const b22 = other.get(2, 2);\n\n const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;\n const m2 = (a00 - a10) * (-b01 + b11);\n const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);\n const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);\n const m5 = (a10 + a11) * (-b00 + b01);\n const m6 = a00 * b00;\n const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);\n const m8 = (-a00 + a20) * (b02 - b12);\n const m9 = (a20 + a21) * (-b00 + b02);\n const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;\n const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);\n const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);\n const m13 = (a02 - a22) * (b11 - b21);\n const m14 = a02 * b20;\n const m15 = (a21 + a22) * (-b20 + b21);\n const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);\n const m17 = (a02 - a12) * (b12 - b22);\n const m18 = (a11 + a12) * (-b20 + b22);\n const m19 = a01 * b10;\n const m20 = a12 * b21;\n const m21 = a10 * b02;\n const m22 = a20 * b01;\n const m23 = a22 * b22;\n\n const c00 = m6 + m14 + m19;\n const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;\n const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;\n const c10 = m2 + m3 + m4 + m6 + m14 + m16 + m17;\n const c11 = m2 + m4 + m5 + m6 + m20;\n const c12 = m14 + m16 + m17 + m18 + m21;\n const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;\n const c21 = m12 + m13 + m14 + m15 + m22;\n const c22 = m6 + m7 + m8 + m9 + m23;\n\n result.set(0, 0, c00);\n result.set(0, 1, c01);\n result.set(0, 2, c02);\n result.set(1, 0, c10);\n result.set(1, 1, c11);\n result.set(1, 2, c12);\n result.set(2, 0, c20);\n result.set(2, 1, c21);\n result.set(2, 2, c22);\n return result;\n }\n\n mmulStrassen(y) {\n y = Matrix.checkMatrix(y);\n let x = this.clone();\n let r1 = x.rows;\n let c1 = x.columns;\n let r2 = y.rows;\n let c2 = y.columns;\n if (c1 !== r2) {\n // eslint-disable-next-line no-console\n console.warn(\n `Multiplying ${r1} x ${c1} and ${r2} x ${c2} matrix: dimensions do not match.`,\n );\n }\n\n // Put a matrix into the top left of a matrix of zeros.\n // `rows` and `cols` are the dimensions of the output matrix.\n function embed(mat, rows, cols) {\n let r = mat.rows;\n let c = mat.columns;\n if (r === rows && c === cols) {\n return mat;\n } else {\n let resultat = AbstractMatrix.zeros(rows, cols);\n resultat = resultat.setSubMatrix(mat, 0, 0);\n return resultat;\n }\n }\n\n // Make sure both matrices are the same size.\n // This is exclusively for simplicity:\n // this algorithm can be implemented with matrices of different sizes.\n\n let r = Math.max(r1, r2);\n let c = Math.max(c1, c2);\n x = embed(x, r, c);\n y = embed(y, r, c);\n\n // Our recursive multiplication function.\n function blockMult(a, b, rows, cols) {\n // For small matrices, resort to naive multiplication.\n if (rows <= 512 || cols <= 512) {\n return a.mmul(b); // a is equivalent to this\n }\n\n // Apply dynamic padding.\n if (rows % 2 === 1 && cols % 2 === 1) {\n a = embed(a, rows + 1, cols + 1);\n b = embed(b, rows + 1, cols + 1);\n } else if (rows % 2 === 1) {\n a = embed(a, rows + 1, cols);\n b = embed(b, rows + 1, cols);\n } else if (cols % 2 === 1) {\n a = embed(a, rows, cols + 1);\n b = embed(b, rows, cols + 1);\n }\n\n let halfRows = parseInt(a.rows / 2, 10);\n let halfCols = parseInt(a.columns / 2, 10);\n // Subdivide input matrices.\n let a11 = a.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n let b11 = b.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n\n let a12 = a.subMatrix(0, halfRows - 1, halfCols, a.columns - 1);\n let b12 = b.subMatrix(0, halfRows - 1, halfCols, b.columns - 1);\n\n let a21 = a.subMatrix(halfRows, a.rows - 1, 0, halfCols - 1);\n let b21 = b.subMatrix(halfRows, b.rows - 1, 0, halfCols - 1);\n\n let a22 = a.subMatrix(halfRows, a.rows - 1, halfCols, a.columns - 1);\n let b22 = b.subMatrix(halfRows, b.rows - 1, halfCols, b.columns - 1);\n\n // Compute intermediate values.\n let m1 = blockMult(\n AbstractMatrix.add(a11, a22),\n AbstractMatrix.add(b11, b22),\n halfRows,\n halfCols,\n );\n let m2 = blockMult(AbstractMatrix.add(a21, a22), b11, halfRows, halfCols);\n let m3 = blockMult(a11, AbstractMatrix.sub(b12, b22), halfRows, halfCols);\n let m4 = blockMult(a22, AbstractMatrix.sub(b21, b11), halfRows, halfCols);\n let m5 = blockMult(AbstractMatrix.add(a11, a12), b22, halfRows, halfCols);\n let m6 = blockMult(\n AbstractMatrix.sub(a21, a11),\n AbstractMatrix.add(b11, b12),\n halfRows,\n halfCols,\n );\n let m7 = blockMult(\n AbstractMatrix.sub(a12, a22),\n AbstractMatrix.add(b21, b22),\n halfRows,\n halfCols,\n );\n\n // Combine intermediate values into the output.\n let c11 = AbstractMatrix.add(m1, m4);\n c11.sub(m5);\n c11.add(m7);\n let c12 = AbstractMatrix.add(m3, m5);\n let c21 = AbstractMatrix.add(m2, m4);\n let c22 = AbstractMatrix.sub(m1, m2);\n c22.add(m3);\n c22.add(m6);\n\n // Crop output to the desired size (undo dynamic padding).\n let result = AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns);\n result = result.setSubMatrix(c11, 0, 0);\n result = result.setSubMatrix(c12, c11.rows, 0);\n result = result.setSubMatrix(c21, 0, c11.columns);\n result = result.setSubMatrix(c22, c11.rows, c11.columns);\n return result.subMatrix(0, rows - 1, 0, cols - 1);\n }\n\n return blockMult(x, y, r, c);\n }\n\n scaleRows(options = {}) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { min = 0, max = 1 } = options;\n if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n if (min >= max) throw new RangeError('min must be smaller than max');\n let newMatrix = new Matrix(this.rows, this.columns);\n for (let i = 0; i < this.rows; i++) {\n const row = this.getRow(i);\n if (row.length > 0) {\n rescale(row, { min, max, output: row });\n }\n newMatrix.setRow(i, row);\n }\n return newMatrix;\n }\n\n scaleColumns(options = {}) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { min = 0, max = 1 } = options;\n if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n if (min >= max) throw new RangeError('min must be smaller than max');\n let newMatrix = new Matrix(this.rows, this.columns);\n for (let i = 0; i < this.columns; i++) {\n const column = this.getColumn(i);\n if (column.length) {\n rescale(column, {\n min,\n max,\n output: column,\n });\n }\n newMatrix.setColumn(i, column);\n }\n return newMatrix;\n }\n\n flipRows() {\n const middle = Math.ceil(this.columns / 2);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < middle; j++) {\n let first = this.get(i, j);\n let last = this.get(i, this.columns - 1 - j);\n this.set(i, j, last);\n this.set(i, this.columns - 1 - j, first);\n }\n }\n return this;\n }\n\n flipColumns() {\n const middle = Math.ceil(this.rows / 2);\n for (let j = 0; j < this.columns; j++) {\n for (let i = 0; i < middle; i++) {\n let first = this.get(i, j);\n let last = this.get(this.rows - 1 - i, j);\n this.set(i, j, last);\n this.set(this.rows - 1 - i, j, first);\n }\n }\n return this;\n }\n\n kroneckerProduct(other) {\n other = Matrix.checkMatrix(other);\n\n let m = this.rows;\n let n = this.columns;\n let p = other.rows;\n let q = other.columns;\n\n let result = new Matrix(m * p, n * q);\n for (let i = 0; i < m; i++) {\n for (let j = 0; j < n; j++) {\n for (let k = 0; k < p; k++) {\n for (let l = 0; l < q; l++) {\n result.set(p * i + k, q * j + l, this.get(i, j) * other.get(k, l));\n }\n }\n }\n }\n return result;\n }\n\n kroneckerSum(other) {\n other = Matrix.checkMatrix(other);\n if (!this.isSquare() || !other.isSquare()) {\n throw new Error('Kronecker Sum needs two Square Matrices');\n }\n let m = this.rows;\n let n = other.rows;\n let AxI = this.kroneckerProduct(Matrix.eye(n, n));\n let IxB = Matrix.eye(m, m).kroneckerProduct(other);\n return AxI.add(IxB);\n }\n\n transpose() {\n let result = new Matrix(this.columns, this.rows);\n for (let i = 0; i < this.rows; i++) {\n for (let j = 0; j < this.columns; j++) {\n result.set(j, i, this.get(i, j));\n }\n }\n return result;\n }\n\n sortRows(compareFunction = compareNumbers) {\n for (let i = 0; i < this.rows; i++) {\n this.setRow(i, this.getRow(i).sort(compareFunction));\n }\n return this;\n }\n\n sortColumns(compareFunction = compareNumbers) {\n for (let i = 0; i < this.columns; i++) {\n this.setColumn(i, this.getColumn(i).sort(compareFunction));\n }\n return this;\n }\n\n subMatrix(startRow, endRow, startColumn, endColumn) {\n checkRange(this, startRow, endRow, startColumn, endColumn);\n let newMatrix = new Matrix(\n endRow - startRow + 1,\n endColumn - startColumn + 1,\n );\n for (let i = startRow; i <= endRow; i++) {\n for (let j = startColumn; j <= endColumn; j++) {\n newMatrix.set(i - startRow, j - startColumn, this.get(i, j));\n }\n }\n return newMatrix;\n }\n\n subMatrixRow(indices, startColumn, endColumn) {\n if (startColumn === undefined) startColumn = 0;\n if (endColumn === undefined) endColumn = this.columns - 1;\n if (\n startColumn > endColumn ||\n startColumn < 0 ||\n startColumn >= this.columns ||\n endColumn < 0 ||\n endColumn >= this.columns\n ) {\n throw new RangeError('Argument out of range');\n }\n\n let newMatrix = new Matrix(indices.length, endColumn - startColumn + 1);\n for (let i = 0; i < indices.length; i++) {\n for (let j = startColumn; j <= endColumn; j++) {\n if (indices[i] < 0 || indices[i] >= this.rows) {\n throw new RangeError(`Row index out of range: ${indices[i]}`);\n }\n newMatrix.set(i, j - startColumn, this.get(indices[i], j));\n }\n }\n return newMatrix;\n }\n\n subMatrixColumn(indices, startRow, endRow) {\n if (startRow === undefined) startRow = 0;\n if (endRow === undefined) endRow = this.rows - 1;\n if (\n startRow > endRow ||\n startRow < 0 ||\n startRow >= this.rows ||\n endRow < 0 ||\n endRow >= this.rows\n ) {\n throw new RangeError('Argument out of range');\n }\n\n let newMatrix = new Matrix(endRow - startRow + 1, indices.length);\n for (let i = 0; i < indices.length; i++) {\n for (let j = startRow; j <= endRow; j++) {\n if (indices[i] < 0 || indices[i] >= this.columns) {\n throw new RangeError(`Column index out of range: ${indices[i]}`);\n }\n newMatrix.set(j - startRow, i, this.get(j, indices[i]));\n }\n }\n return newMatrix;\n }\n\n setSubMatrix(matrix, startRow, startColumn) {\n matrix = Matrix.checkMatrix(matrix);\n if (matrix.isEmpty()) {\n return this;\n }\n let endRow = startRow + matrix.rows - 1;\n let endColumn = startColumn + matrix.columns - 1;\n checkRange(this, startRow, endRow, startColumn, endColumn);\n for (let i = 0; i < matrix.rows; i++) {\n for (let j = 0; j < matrix.columns; j++) {\n this.set(startRow + i, startColumn + j, matrix.get(i, j));\n }\n }\n return this;\n }\n\n selection(rowIndices, columnIndices) {\n checkRowIndices(this, rowIndices);\n checkColumnIndices(this, columnIndices);\n let newMatrix = new Matrix(rowIndices.length, columnIndices.length);\n for (let i = 0; i < rowIndices.length; i++) {\n let rowIndex = rowIndices[i];\n for (let j = 0; j < columnIndices.length; j++) {\n let columnIndex = columnIndices[j];\n newMatrix.set(i, j, this.get(rowIndex, columnIndex));\n }\n }\n return newMatrix;\n }\n\n trace() {\n let min = Math.min(this.rows, this.columns);\n let trace = 0;\n for (let i = 0; i < min; i++) {\n trace += this.get(i, i);\n }\n return trace;\n }\n\n clone() {\n return this.constructor.copy(this, new Matrix(this.rows, this.columns));\n }\n\n /**\n * @template {AbstractMatrix} M\n * @param {AbstractMatrix} from\n * @param {M} to\n * @return {M}\n */\n static copy(from, to) {\n for (const [row, column, value] of from.entries()) {\n to.set(row, column, value);\n }\n\n return to;\n }\n\n sum(by) {\n switch (by) {\n case 'row':\n return sumByRow(this);\n case 'column':\n return sumByColumn(this);\n case undefined:\n return sumAll(this);\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n product(by) {\n switch (by) {\n case 'row':\n return productByRow(this);\n case 'column':\n return productByColumn(this);\n case undefined:\n return productAll(this);\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n mean(by) {\n const sum = this.sum(by);\n switch (by) {\n case 'row': {\n for (let i = 0; i < this.rows; i++) {\n sum[i] /= this.columns;\n }\n return sum;\n }\n case 'column': {\n for (let i = 0; i < this.columns; i++) {\n sum[i] /= this.rows;\n }\n return sum;\n }\n case undefined:\n return sum / this.size;\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n variance(by, options = {}) {\n if (typeof by === 'object') {\n options = by;\n by = undefined;\n }\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { unbiased = true, mean = this.mean(by) } = options;\n if (typeof unbiased !== 'boolean') {\n throw new TypeError('unbiased must be a boolean');\n }\n switch (by) {\n case 'row': {\n if (!isAnyArray.isAnyArray(mean)) {\n throw new TypeError('mean must be an array');\n }\n return varianceByRow(this, unbiased, mean);\n }\n case 'column': {\n if (!isAnyArray.isAnyArray(mean)) {\n throw new TypeError('mean must be an array');\n }\n return varianceByColumn(this, unbiased, mean);\n }\n case undefined: {\n if (typeof mean !== 'number') {\n throw new TypeError('mean must be a number');\n }\n return varianceAll(this, unbiased, mean);\n }\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n standardDeviation(by, options) {\n if (typeof by === 'object') {\n options = by;\n by = undefined;\n }\n const variance = this.variance(by, options);\n if (by === undefined) {\n return Math.sqrt(variance);\n } else {\n for (let i = 0; i < variance.length; i++) {\n variance[i] = Math.sqrt(variance[i]);\n }\n return variance;\n }\n }\n\n center(by, options = {}) {\n if (typeof by === 'object') {\n options = by;\n by = undefined;\n }\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n const { center = this.mean(by) } = options;\n switch (by) {\n case 'row': {\n if (!isAnyArray.isAnyArray(center)) {\n throw new TypeError('center must be an array');\n }\n centerByRow(this, center);\n return this;\n }\n case 'column': {\n if (!isAnyArray.isAnyArray(center)) {\n throw new TypeError('center must be an array');\n }\n centerByColumn(this, center);\n return this;\n }\n case undefined: {\n if (typeof center !== 'number') {\n throw new TypeError('center must be a number');\n }\n centerAll(this, center);\n return this;\n }\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n scale(by, options = {}) {\n if (typeof by === 'object') {\n options = by;\n by = undefined;\n }\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n let scale = options.scale;\n switch (by) {\n case 'row': {\n if (scale === undefined) {\n scale = getScaleByRow(this);\n } else if (!isAnyArray.isAnyArray(scale)) {\n throw new TypeError('scale must be an array');\n }\n scaleByRow(this, scale);\n return this;\n }\n case 'column': {\n if (scale === undefined) {\n scale = getScaleByColumn(this);\n } else if (!isAnyArray.isAnyArray(scale)) {\n throw new TypeError('scale must be an array');\n }\n scaleByColumn(this, scale);\n return this;\n }\n case undefined: {\n if (scale === undefined) {\n scale = getScaleAll(this);\n } else if (typeof scale !== 'number') {\n throw new TypeError('scale must be a number');\n }\n scaleAll(this, scale);\n return this;\n }\n default:\n throw new Error(`invalid option: ${by}`);\n }\n }\n\n toString(options) {\n return inspectMatrixWithOptions(this, options);\n }\n\n [Symbol.iterator]() {\n return this.entries();\n }\n\n /**\n * iterator from left to right, from top to bottom\n * yield [row, column, value]\n * @returns {Generator<[number, number, number], void, void>}\n */\n *entries() {\n for (let row = 0; row < this.rows; row++) {\n for (let col = 0; col < this.columns; col++) {\n yield [row, col, this.get(row, col)];\n }\n }\n }\n\n /**\n * iterator from left to right, from top to bottom\n * yield value\n * @returns {Generator<number, void, void>}\n */\n *values() {\n for (let row = 0; row < this.rows; row++) {\n for (let col = 0; col < this.columns; col++) {\n yield this.get(row, col);\n }\n }\n }\n}\n\nAbstractMatrix.prototype.klass = 'Matrix';\nif (typeof Symbol !== 'undefined') {\n AbstractMatrix.prototype[Symbol.for('nodejs.util.inspect.custom')] =\n inspectMatrix;\n}\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction isArrayOfNumbers(array) {\n return array.every((element) => {\n return typeof element === 'number';\n });\n}\n\n// Synonyms\nAbstractMatrix.random = AbstractMatrix.rand;\nAbstractMatrix.randomInt = AbstractMatrix.randInt;\nAbstractMatrix.diagonal = AbstractMatrix.diag;\nAbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag;\nAbstractMatrix.identity = AbstractMatrix.eye;\nAbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg;\nAbstractMatrix.prototype.tensorProduct =\n AbstractMatrix.prototype.kroneckerProduct;\n\nclass Matrix extends AbstractMatrix {\n /**\n * @type {Float64Array[]}\n */\n data;\n\n /**\n * Init an empty matrix\n * @param {number} nRows\n * @param {number} nColumns\n */\n #initData(nRows, nColumns) {\n this.data = [];\n\n if (Number.isInteger(nColumns) && nColumns >= 0) {\n for (let i = 0; i < nRows; i++) {\n this.data.push(new Float64Array(nColumns));\n }\n } else {\n throw new TypeError('nColumns must be a positive integer');\n }\n\n this.rows = nRows;\n this.columns = nColumns;\n }\n\n constructor(nRows, nColumns) {\n super();\n if (Matrix.isMatrix(nRows)) {\n this.#initData(nRows.rows, nRows.columns);\n Matrix.copy(nRows, this);\n } else if (Number.isInteger(nRows) && nRows >= 0) {\n this.#initData(nRows, nColumns);\n } else if (isAnyArray.isAnyArray(nRows)) {\n // Copy the values from the 2D array\n const arrayData = nRows;\n nRows = arrayData.length;\n nColumns = nRows ? arrayData[0].length : 0;\n if (typeof nColumns !== 'number') {\n throw new TypeError(\n 'Data must be a 2D array with at least one element',\n );\n }\n this.data = [];\n\n for (let i = 0; i < nRows; i++) {\n if (arrayData[i].length !== nColumns) {\n throw new RangeError('Inconsistent array dimensions');\n }\n if (!isArrayOfNumbers(arrayData[i])) {\n throw new TypeError('Input data contains non-numeric values');\n }\n this.data.push(Float64Array.from(arrayData[i]));\n }\n\n this.rows = nRows;\n this.columns = nColumns;\n } else {\n throw new TypeError(\n 'First argument must be a positive number or an array',\n );\n }\n }\n\n set(rowIndex, columnIndex, value) {\n this.data[rowIndex][columnIndex] = value;\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.data[rowIndex][columnIndex];\n }\n\n removeRow(index) {\n checkRowIndex(this, index);\n this.data.splice(index, 1);\n this.rows -= 1;\n return this;\n }\n\n addRow(index, array) {\n if (array === undefined) {\n array = index;\n index = this.rows;\n }\n checkRowIndex(this, index, true);\n array = Float64Array.from(checkRowVector(this, array));\n this.data.splice(index, 0, array);\n this.rows += 1;\n return this;\n }\n\n removeColumn(index) {\n checkColumnIndex(this, index);\n for (let i = 0; i < this.rows; i++) {\n const newRow = new Float64Array(this.columns - 1);\n for (let j = 0; j < index; j++) {\n newRow[j] = this.data[i][j];\n }\n for (let j = index + 1; j < this.columns; j++) {\n newRow[j - 1] = this.data[i][j];\n }\n this.data[i] = newRow;\n }\n this.columns -= 1;\n return this;\n }\n\n addColumn(index, array) {\n if (typeof array === 'undefined') {\n array = index;\n index = this.columns;\n }\n checkColumnIndex(this, index, true);\n array = checkColumnVector(this, array);\n for (let i = 0; i < this.rows; i++) {\n const newRow = new Float64Array(this.columns + 1);\n let j = 0;\n for (; j < index; j++) {\n newRow[j] = this.data[i][j];\n }\n newRow[j++] = array[i];\n for (; j < this.columns + 1; j++) {\n newRow[j] = this.data[i][j - 1];\n }\n this.data[i] = newRow;\n }\n this.columns += 1;\n return this;\n }\n}\n\ninstallMathOperations(AbstractMatrix, Matrix);\n\n/**\n * @typedef {0 | 1 | number | boolean} Mask\n */\n\nclass SymmetricMatrix extends AbstractMatrix {\n /** @type {Matrix} */\n #matrix;\n\n get size() {\n return this.#matrix.size;\n }\n\n get rows() {\n return this.#matrix.rows;\n }\n\n get columns() {\n return this.#matrix.columns;\n }\n\n get diagonalSize() {\n return this.rows;\n }\n\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isSymmetricMatrix(value) {\n return Matrix.isMatrix(value) && value.klassType === 'SymmetricMatrix';\n }\n\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static zeros(diagonalSize) {\n return new this(diagonalSize);\n }\n\n /**\n * @param diagonalSize\n * @return {SymmetricMatrix}\n */\n static ones(diagonalSize) {\n return new this(diagonalSize).fill(1);\n }\n\n /**\n * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize\n * @return {this}\n */\n constructor(diagonalSize) {\n super();\n\n if (Matrix.isMatrix(diagonalSize)) {\n if (!diagonalSize.isSymmetric()) {\n throw new TypeError('not symmetric data');\n }\n\n this.#matrix = Matrix.copy(\n diagonalSize,\n new Matrix(diagonalSize.rows, diagonalSize.rows),\n );\n } else if (Number.isInteger(diagonalSize) && diagonalSize >= 0) {\n this.#matrix = new Matrix(diagonalSize, diagonalSize);\n } else {\n this.#matrix = new Matrix(diagonalSize);\n\n if (!this.isSymmetric()) {\n throw new TypeError('not symmetric data');\n }\n }\n }\n\n clone() {\n const matrix = new SymmetricMatrix(this.diagonalSize);\n\n for (const [row, col, value] of this.upperRightEntries()) {\n matrix.set(row, col, value);\n }\n\n return matrix;\n }\n\n toMatrix() {\n return new Matrix(this);\n }\n\n get(rowIndex, columnIndex) {\n return this.#matrix.get(rowIndex, columnIndex);\n }\n set(rowIndex, columnIndex, value) {\n // symmetric set\n this.#matrix.set(rowIndex, columnIndex, value);\n this.#matrix.set(columnIndex, rowIndex, value);\n\n return this;\n }\n\n removeCross(index) {\n // symmetric remove side\n this.#matrix.removeRow(index);\n this.#matrix.removeColumn(index);\n\n return this;\n }\n\n addCross(index, array) {\n if (array === undefined) {\n array = index;\n index = this.diagonalSize;\n }\n\n const row = array.slice();\n row.splice(index, 1);\n\n this.#matrix.addRow(index, row);\n this.#matrix.addColumn(index, array);\n\n return this;\n }\n\n /**\n * @param {Mask[]} mask\n */\n applyMask(mask) {\n if (mask.length !== this.diagonalSize) {\n throw new RangeError('Mask size do not match with matrix size');\n }\n\n // prepare sides to remove from matrix from mask\n /** @type {number[]} */\n const sidesToRemove = [];\n for (const [index, passthroughs] of mask.entries()) {\n if (passthroughs) continue;\n sidesToRemove.push(index);\n }\n // to remove from highest to lowest for no mutation shifting\n sidesToRemove.reverse();\n\n // remove sides\n for (const sideIndex of sidesToRemove) {\n this.removeCross(sideIndex);\n }\n\n return this;\n }\n\n /**\n * Compact format upper-right corner of matrix\n * iterate from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 1 2 3 4\n * B 2 5 6 7\n * C 3 6 8 9\n * D 4 7 9 10\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`\n *\n * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize } = this;\n\n /** @type {number[]} */\n const compact = new Array((diagonalSize * (diagonalSize + 1)) / 2);\n for (let col = 0, row = 0, index = 0; index < compact.length; index++) {\n compact[index] = this.get(row, col);\n\n if (++col >= diagonalSize) col = ++row;\n }\n\n return compact;\n }\n\n /**\n * @param {number[]} compact\n * @return {SymmetricMatrix}\n */\n static fromCompact(compact) {\n const compactSize = compact.length;\n // compactSize = (sideSize * (sideSize + 1)) / 2\n // https://mathsolver.microsoft.com/fr/solve-problem/y%20%3D%20%20x%20%60cdot%20%20%20%60frac%7B%20%20%60left(%20x%2B1%20%20%60right)%20%20%20%20%7D%7B%202%20%20%7D\n // sideSize = (Sqrt(8 × compactSize + 1) - 1) / 2\n const diagonalSize = (Math.sqrt(8 * compactSize + 1) - 1) / 2;\n\n if (!Number.isInteger(diagonalSize)) {\n throw new TypeError(\n `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(\n compact,\n )}`,\n );\n }\n\n const matrix = new SymmetricMatrix(diagonalSize);\n for (let col = 0, row = 0, index = 0; index < compactSize; index++) {\n matrix.set(col, row, compact[index]);\n if (++col >= diagonalSize) col = ++row;\n }\n\n return matrix;\n }\n\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield [row, column, value]\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightEntries() {\n for (let row = 0, col = 0; row < this.diagonalSize; void 0) {\n const value = this.get(row, col);\n\n yield [row, col, value];\n\n // at the end of row, move cursor to next row at diagonal position\n if (++col >= this.diagonalSize) col = ++row;\n }\n }\n\n /**\n * half iterator upper-right-corner from left to right, from top to bottom\n * yield value\n *\n * @returns {Generator<[number, number, number], void, void>}\n */\n *upperRightValues() {\n for (let row = 0, col = 0; row < this.diagonalSize; void 0) {\n const value = this.get(row, col);\n\n yield value;\n\n // at the end of row, move cursor to next row at diagonal position\n if (++col >= this.diagonalSize) col = ++row;\n }\n }\n}\nSymmetricMatrix.prototype.klassType = 'SymmetricMatrix';\n\nclass DistanceMatrix extends SymmetricMatrix {\n /**\n * not the same as matrix.isSymmetric()\n * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n *\n * @param value\n * @returns {boolean}\n */\n static isDistanceMatrix(value) {\n return (\n SymmetricMatrix.isSymmetricMatrix(value) &&\n value.klassSubType === 'DistanceMatrix'\n );\n }\n\n constructor(sideSize) {\n super(sideSize);\n\n if (!this.isDistance()) {\n throw new TypeError('Provided arguments do no produce a distance matrix');\n }\n }\n\n set(rowIndex, columnIndex, value) {\n // distance matrix diagonal is 0\n if (rowIndex === columnIndex) value = 0;\n\n return super.set(rowIndex, columnIndex, value);\n }\n\n addCross(index, array) {\n if (array === undefined) {\n array = index;\n index = this.diagonalSize;\n }\n\n // ensure distance\n array = array.slice();\n array[index] = 0;\n\n return super.addCross(index, array);\n }\n\n toSymmetricMatrix() {\n return new SymmetricMatrix(this);\n }\n\n clone() {\n const matrix = new DistanceMatrix(this.diagonalSize);\n\n for (const [row, col, value] of this.upperRightEntries()) {\n if (row === col) continue;\n matrix.set(row, col, value);\n }\n\n return matrix;\n }\n\n /**\n * Compact format upper-right corner of matrix\n * no diagonal (only zeros)\n * iterable from left to right, from top to bottom.\n *\n * ```\n * A B C D\n * A 0 1 2 3\n * B 1 0 4 5\n * C 2 4 0 6\n * D 3 5 6 0\n * ```\n *\n * will return compact 1D array `[1, 2, 3, 4, 5, 6]`\n *\n * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix\n *\n * @returns {number[]}\n */\n toCompact() {\n const { diagonalSize } = this;\n const compactLength = ((diagonalSize - 1) * diagonalSize) / 2;\n\n /** @type {number[]} */\n const compact = new Array(compactLength);\n for (let col = 1, row = 0, index = 0; index < compact.length; index++) {\n compact[index] = this.get(row, col);\n\n if (++col >= diagonalSize) col = ++row + 1;\n }\n\n return compact;\n }\n\n /**\n * @param {number[]} compact\n */\n static fromCompact(compact) {\n const compactSize = compact.length;\n\n if (compactSize === 0) {\n return new this(0);\n }\n\n // compactSize in Natural integer range ]0;∞]\n // compactSize = (sideSize * (sideSize - 1)) / 2\n // sideSize = (Sqrt(8 × compactSize + 1) + 1) / 2\n const diagonalSize = (Math.sqrt(8 * compactSize + 1) + 1) / 2;\n\n if (!Number.isInteger(diagonalSize)) {\n throw new TypeError(\n `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(\n compact,\n )}`,\n );\n }\n\n const matrix = new this(diagonalSize);\n for (let col = 1, row = 0, index = 0; index < compactSize; index++) {\n matrix.set(col, row, compact[index]);\n if (++col >= diagonalSize) col = ++row + 1;\n }\n\n return matrix;\n }\n}\nDistanceMatrix.prototype.klassSubType = 'DistanceMatrix';\n\nclass BaseView extends AbstractMatrix {\n constructor(matrix, rows, columns) {\n super();\n this.matrix = matrix;\n this.rows = rows;\n this.columns = columns;\n }\n}\n\nclass MatrixColumnView extends BaseView {\n constructor(matrix, column) {\n checkColumnIndex(matrix, column);\n super(matrix, matrix.rows, 1);\n this.column = column;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(rowIndex, this.column, value);\n return this;\n }\n\n get(rowIndex) {\n return this.matrix.get(rowIndex, this.column);\n }\n}\n\nclass MatrixColumnSelectionView extends BaseView {\n constructor(matrix, columnIndices) {\n checkColumnIndices(matrix, columnIndices);\n super(matrix, matrix.rows, columnIndices.length);\n this.columnIndices = columnIndices;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(rowIndex, this.columnIndices[columnIndex], value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(rowIndex, this.columnIndices[columnIndex]);\n }\n}\n\nclass MatrixFlipColumnView extends BaseView {\n constructor(matrix) {\n super(matrix, matrix.rows, matrix.columns);\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(rowIndex, this.columns - columnIndex - 1, value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(rowIndex, this.columns - columnIndex - 1);\n }\n}\n\nclass MatrixFlipRowView extends BaseView {\n constructor(matrix) {\n super(matrix, matrix.rows, matrix.columns);\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(this.rows - rowIndex - 1, columnIndex, value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(this.rows - rowIndex - 1, columnIndex);\n }\n}\n\nclass MatrixRowView extends BaseView {\n constructor(matrix, row) {\n checkRowIndex(matrix, row);\n super(matrix, 1, matrix.columns);\n this.row = row;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(this.row, columnIndex, value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(this.row, columnIndex);\n }\n}\n\nclass MatrixRowSelectionView extends BaseView {\n constructor(matrix, rowIndices) {\n checkRowIndices(matrix, rowIndices);\n super(matrix, rowIndices.length, matrix.columns);\n this.rowIndices = rowIndices;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(this.rowIndices[rowIndex], columnIndex, value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(this.rowIndices[rowIndex], columnIndex);\n }\n}\n\nclass MatrixSelectionView extends BaseView {\n constructor(matrix, rowIndices, columnIndices) {\n checkRowIndices(matrix, rowIndices);\n checkColumnIndices(matrix, columnIndices);\n super(matrix, rowIndices.length, columnIndices.length);\n this.rowIndices = rowIndices;\n this.columnIndices = columnIndices;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(\n this.rowIndices[rowIndex],\n this.columnIndices[columnIndex],\n value,\n );\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(\n this.rowIndices[rowIndex],\n this.columnIndices[columnIndex],\n );\n }\n}\n\nclass MatrixSubView extends BaseView {\n constructor(matrix, startRow, endRow, startColumn, endColumn) {\n checkRange(matrix, startRow, endRow, startColumn, endColumn);\n super(matrix, endRow - startRow + 1, endColumn - startColumn + 1);\n this.startRow = startRow;\n this.startColumn = startColumn;\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(\n this.startRow + rowIndex,\n this.startColumn + columnIndex,\n value,\n );\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(\n this.startRow + rowIndex,\n this.startColumn + columnIndex,\n );\n }\n}\n\nclass MatrixTransposeView extends BaseView {\n constructor(matrix) {\n super(matrix, matrix.columns, matrix.rows);\n }\n\n set(rowIndex, columnIndex, value) {\n this.matrix.set(columnIndex, rowIndex, value);\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.matrix.get(columnIndex, rowIndex);\n }\n}\n\nclass WrapperMatrix1D extends AbstractMatrix {\n constructor(data, options = {}) {\n const { rows = 1 } = options;\n\n if (data.length % rows !== 0) {\n throw new Error('the data length is not divisible by the number of rows');\n }\n super();\n this.rows = rows;\n this.columns = data.length / rows;\n this.data = data;\n }\n\n set(rowIndex, columnIndex, value) {\n let index = this._calculateIndex(rowIndex, columnIndex);\n this.data[index] = value;\n return this;\n }\n\n get(rowIndex, columnIndex) {\n let index = this._calculateIndex(rowIndex, columnIndex);\n return this.data[index];\n }\n\n _calculateIndex(row, column) {\n return row * this.columns + column;\n }\n}\n\nclass WrapperMatrix2D extends AbstractMatrix {\n constructor(data) {\n super();\n this.data = data;\n this.rows = data.length;\n this.columns = data[0].length;\n }\n\n set(rowIndex, columnIndex, value) {\n this.data[rowIndex][columnIndex] = value;\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this.data[rowIndex][columnIndex];\n }\n}\n\nfunction wrap(array, options) {\n if (isAnyArray.isAnyArray(array)) {\n if (array[0] && isAnyArray.isAnyArray(array[0])) {\n return new WrapperMatrix2D(array);\n } else {\n return new WrapperMatrix1D(array, options);\n }\n } else {\n throw new Error('the argument is not an array');\n }\n}\n\nclass LuDecomposition {\n constructor(matrix) {\n matrix = WrapperMatrix2D.checkMatrix(matrix);\n\n let lu = matrix.clone();\n let rows = lu.rows;\n let columns = lu.columns;\n let pivotVector = new Float64Array(rows);\n let pivotSign = 1;\n let i, j, k, p, s, t, v;\n let LUcolj, kmax;\n\n for (i = 0; i < rows; i++) {\n pivotVector[i] = i;\n }\n\n LUcolj = new Float64Array(rows);\n\n for (j = 0; j < columns; j++) {\n for (i = 0; i < rows; i++) {\n LUcolj[i] = lu.get(i, j);\n }\n\n for (i = 0; i < rows; i++) {\n kmax = Math.min(i, j);\n s = 0;\n for (k = 0; k < kmax; k++) {\n s += lu.get(i, k) * LUcolj[k];\n }\n LUcolj[i] -= s;\n lu.set(i, j, LUcolj[i]);\n }\n\n p = j;\n for (i = j + 1; i < rows; i++) {\n if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n p = i;\n }\n }\n\n if (p !== j) {\n for (k = 0; k < columns; k++) {\n t = lu.get(p, k);\n lu.set(p, k, lu.get(j, k));\n lu.set(j, k, t);\n }\n\n v = pivotVector[p];\n pivotVector[p] = pivotVector[j];\n pivotVector[j] = v;\n\n pivotSign = -pivotSign;\n }\n\n if (j < rows && lu.get(j, j) !== 0) {\n for (i = j + 1; i < rows; i++) {\n lu.set(i, j, lu.get(i, j) / lu.get(j, j));\n }\n }\n }\n\n this.LU = lu;\n this.pivotVector = pivotVector;\n this.pivotSign = pivotSign;\n }\n\n isSingular() {\n let data = this.LU;\n let col = data.columns;\n for (let j = 0; j < col; j++) {\n if (data.get(j, j) === 0) {\n return true;\n }\n }\n return false;\n }\n\n solve(value) {\n value = Matrix.checkMatrix(value);\n\n let lu = this.LU;\n let rows = lu.rows;\n\n if (rows !== value.rows) {\n throw new Error('Invalid matrix dimensions');\n }\n if (this.isSingular()) {\n throw new Error('LU matrix is singular');\n }\n\n let count = value.columns;\n let X = value.subMatrixRow(this.pivotVector, 0, count - 1);\n let columns = lu.columns;\n let i, j, k;\n\n for (k = 0; k < columns; k++) {\n for (i = k + 1; i < columns; i++) {\n for (j = 0; j < count; j++) {\n X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n }\n }\n }\n for (k = columns - 1; k >= 0; k--) {\n for (j = 0; j < count; j++) {\n X.set(k, j, X.get(k, j) / lu.get(k, k));\n }\n for (i = 0; i < k; i++) {\n for (j = 0; j < count; j++) {\n X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n }\n }\n }\n return X;\n }\n\n get determinant() {\n let data = this.LU;\n if (!data.isSquare()) {\n throw new Error('Matrix must be square');\n }\n let determinant = this.pivotSign;\n let col = data.columns;\n for (let j = 0; j < col; j++) {\n determinant *= data.get(j, j);\n }\n return determinant;\n }\n\n get lowerTriangularMatrix() {\n let data = this.LU;\n let rows = data.rows;\n let columns = data.columns;\n let X = new Matrix(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n if (i > j) {\n X.set(i, j, data.get(i, j));\n } else if (i === j) {\n X.set(i, j, 1);\n } else {\n X.set(i, j, 0);\n }\n }\n }\n return X;\n }\n\n get upperTriangularMatrix() {\n let data = this.LU;\n let rows = data.rows;\n let columns = data.columns;\n let X = new Matrix(rows, columns);\n for (let i = 0; i < rows; i++) {\n for (let j = 0; j < columns; j++) {\n if (i <= j) {\n X.set(i, j, data.get(i, j));\n } else {\n X.set(i, j, 0);\n }\n }\n }\n return X;\n }\n\n get pivotPermutationVector() {\n return Array.from(this.pivotVector);\n }\n}\n\nfunction hypotenuse(a, b) {\n let r = 0;\n if (Math.abs(a) > Math.abs(b)) {\n r = b / a;\n return Math.abs(a) * Math.sqrt(1 + r * r);\n }\n if (b !== 0) {\n r = a / b;\n return Math.abs(b) * Math.sqrt(1 + r * r);\n }\n return 0;\n}\n\nclass QrDecomposition {\n constructor(value) {\n value = WrapperMatrix2D.checkMatrix(value);\n\n let qr = value.clone();\n let m = value.rows;\n let n = value.columns;\n let rdiag = new Float64Array(n);\n let i, j, k, s;\n\n for (k = 0; k < n; k++) {\n let nrm = 0;\n for (i = k; i < m; i++) {\n nrm = hypotenuse(nrm, qr.get(i, k));\n }\n if (nrm !== 0) {\n if (qr.get(k, k) < 0) {\n nrm = -nrm;\n }\n for (i = k; i < m; i++) {\n qr.set(i, k, qr.get(i, k) / nrm);\n }\n qr.set(k, k, qr.get(k, k) + 1);\n for (j = k + 1; j < n; j++) {\n s = 0;\n for (i = k; i < m; i++) {\n s += qr.get(i, k) * qr.get(i, j);\n }\n s = -s / qr.get(k, k);\n for (i = k; i < m; i++) {\n qr.set(i, j, qr.get(i, j) + s * qr.get(i, k));\n }\n }\n }\n rdiag[k] = -nrm;\n }\n\n this.QR = qr;\n this.Rdiag = rdiag;\n }\n\n solve(value) {\n value = Matrix.checkMatrix(value);\n\n let qr = this.QR;\n let m = qr.rows;\n\n if (value.rows !== m) {\n throw new Error('Matrix row dimensions must agree');\n }\n if (!this.isFullRank()) {\n throw new Error('Matrix is rank deficient');\n }\n\n let count = value.columns;\n let X = value.clone();\n let n = qr.columns;\n let i, j, k, s;\n\n for (k = 0; k < n; k++) {\n for (j = 0; j < count; j++) {\n s = 0;\n for (i = k; i < m; i++) {\n s += qr.get(i, k) * X.get(i, j);\n }\n s = -s / qr.get(k, k);\n for (i = k; i < m; i++) {\n X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n }\n }\n }\n for (k = n - 1; k >= 0; k--) {\n for (j = 0; j < count; j++) {\n X.set(k, j, X.get(k, j) / this.Rdiag[k]);\n }\n for (i = 0; i < k; i++) {\n for (j = 0; j < count; j++) {\n X.set(i, j, X.get(i, j) - X.get(k, j) * qr.get(i, k));\n }\n }\n }\n\n return X.subMatrix(0, n - 1, 0, count - 1);\n }\n\n isFullRank() {\n let columns = this.QR.columns;\n for (let i = 0; i < columns; i++) {\n if (this.Rdiag[i] === 0) {\n return false;\n }\n }\n return true;\n }\n\n get upperTriangularMatrix() {\n let qr = this.QR;\n let n = qr.columns;\n let X = new Matrix(n, n);\n let i, j;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n if (i < j) {\n X.set(i, j, qr.get(i, j));\n } else if (i === j) {\n X.set(i, j, this.Rdiag[i]);\n } else {\n X.set(i, j, 0);\n }\n }\n }\n return X;\n }\n\n get orthogonalMatrix() {\n let qr = this.QR;\n let rows = qr.rows;\n let columns = qr.columns;\n let X = new Matrix(rows, columns);\n let i, j, k, s;\n\n for (k = columns - 1; k >= 0; k--) {\n for (i = 0; i < rows; i++) {\n X.set(i, k, 0);\n }\n X.set(k, k, 1);\n for (j = k; j < columns; j++) {\n if (qr.get(k, k) !== 0) {\n s = 0;\n for (i = k; i < rows; i++) {\n s += qr.get(i, k) * X.get(i, j);\n }\n\n s = -s / qr.get(k, k);\n\n for (i = k; i < rows; i++) {\n X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n }\n }\n }\n }\n return X;\n }\n}\n\nclass SingularValueDecomposition {\n constructor(value, options = {}) {\n value = WrapperMatrix2D.checkMatrix(value);\n\n if (value.isEmpty()) {\n throw new Error('Matrix must be non-empty');\n }\n\n let m = value.rows;\n let n = value.columns;\n\n const {\n computeLeftSingularVectors = true,\n computeRightSingularVectors = true,\n autoTranspose = false,\n } = options;\n\n let wantu = Boolean(computeLeftSingularVectors);\n let wantv = Boolean(computeRightSingularVectors);\n\n let swapped = false;\n let a;\n if (m < n) {\n if (!autoTranspose) {\n a = value.clone();\n // eslint-disable-next-line no-console\n console.warn(\n 'Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose',\n );\n } else {\n a = value.transpose();\n m = a.rows;\n n = a.columns;\n swapped = true;\n let aux = wantu;\n wantu = wantv;\n wantv = aux;\n }\n } else {\n a = value.clone();\n }\n\n let nu = Math.min(m, n);\n let ni = Math.min(m + 1, n);\n let s = new Float64Array(ni);\n let U = new Matrix(m, nu);\n let V = new Matrix(n, n);\n\n let e = new Float64Array(n);\n let work = new Float64Array(m);\n\n let si = new Float64Array(ni);\n for (let i = 0; i < ni; i++) si[i] = i;\n\n let nct = Math.min(m - 1, n);\n let nrt = Math.max(0, Math.min(n - 2, m));\n let mrc = Math.max(nct, nrt);\n\n for (let k = 0; k < mrc; k++) {\n if (k < nct) {\n s[k] = 0;\n for (let i = k; i < m; i++) {\n s[k] = hypotenuse(s[k], a.get(i, k));\n }\n if (s[k] !== 0) {\n if (a.get(k, k) < 0) {\n s[k] = -s[k];\n }\n for (let i = k; i < m; i++) {\n a.set(i, k, a.get(i, k) / s[k]);\n }\n a.set(k, k, a.get(k, k) + 1);\n }\n s[k] = -s[k];\n }\n\n for (let j = k + 1; j < n; j++) {\n if (k < nct && s[k] !== 0) {\n let t = 0;\n for (let i = k; i < m; i++) {\n t += a.get(i, k) * a.get(i, j);\n }\n t = -t / a.get(k, k);\n for (let i = k; i < m; i++) {\n a.set(i, j, a.get(i, j) + t * a.get(i, k));\n }\n }\n e[j] = a.get(k, j);\n }\n\n if (wantu && k < nct) {\n for (let i = k; i < m; i++) {\n U.set(i, k, a.get(i, k));\n }\n }\n\n if (k < nrt) {\n e[k] = 0;\n for (let i = k + 1; i < n; i++) {\n e[k] = hypotenuse(e[k], e[i]);\n }\n if (e[k] !== 0) {\n if (e[k + 1] < 0) {\n e[k] = 0 - e[k];\n }\n for (let i = k + 1; i < n; i++) {\n e[i] /= e[k];\n }\n e[k + 1] += 1;\n }\n e[k] = -e[k];\n if (k + 1 < m && e[k] !== 0) {\n for (let i = k + 1; i < m; i++) {\n work[i] = 0;\n }\n for (let i = k + 1; i < m; i++) {\n for (let j = k + 1; j < n; j++) {\n work[i] += e[j] * a.get(i, j);\n }\n }\n for (let j = k + 1; j < n; j++) {\n let t = -e[j] / e[k + 1];\n for (let i = k + 1; i < m; i++) {\n a.set(i, j, a.get(i, j) + t * work[i]);\n }\n }\n }\n if (wantv) {\n for (let i = k + 1; i < n; i++) {\n V.set(i, k, e[i]);\n }\n }\n }\n }\n\n let p = Math.min(n, m + 1);\n if (nct < n) {\n s[nct] = a.get(nct, nct);\n }\n if (m < p) {\n s[p - 1] = 0;\n }\n if (nrt + 1 < p) {\n e[nrt] = a.get(nrt, p - 1);\n }\n e[p - 1] = 0;\n\n if (wantu) {\n for (let j = nct; j < nu; j++) {\n for (let i = 0; i < m; i++) {\n U.set(i, j, 0);\n }\n U.set(j, j, 1);\n }\n for (let k = nct - 1; k >= 0; k--) {\n if (s[k] !== 0) {\n for (let j = k + 1; j < nu; j++) {\n let t = 0;\n for (let i = k; i < m; i++) {\n t += U.get(i, k) * U.get(i, j);\n }\n t = -t / U.get(k, k);\n for (let i = k; i < m; i++) {\n U.set(i, j, U.get(i, j) + t * U.get(i, k));\n }\n }\n for (let i = k; i < m; i++) {\n U.set(i, k, -U.get(i, k));\n }\n U.set(k, k, 1 + U.get(k, k));\n for (let i = 0; i < k - 1; i++) {\n U.set(i, k, 0);\n }\n } else {\n for (let i = 0; i < m; i++) {\n U.set(i, k, 0);\n }\n U.set(k, k, 1);\n }\n }\n }\n\n if (wantv) {\n for (let k = n - 1; k >= 0; k--) {\n if (k < nrt && e[k] !== 0) {\n for (let j = k + 1; j < n; j++) {\n let t = 0;\n for (let i = k + 1; i < n; i++) {\n t += V.get(i, k) * V.get(i, j);\n }\n t = -t / V.get(k + 1, k);\n for (let i = k + 1; i < n; i++) {\n V.set(i, j, V.get(i, j) + t * V.get(i, k));\n }\n }\n }\n for (let i = 0; i < n; i++) {\n V.set(i, k, 0);\n }\n V.set(k, k, 1);\n }\n }\n\n let pp = p - 1;\n let eps = Number.EPSILON;\n while (p > 0) {\n let k, kase;\n for (k = p - 2; k >= -1; k--) {\n if (k === -1) {\n break;\n }\n const alpha =\n Number.MIN_VALUE + eps * Math.abs(s[k] + Math.abs(s[k + 1]));\n if (Math.abs(e[k]) <= alpha || Number.isNaN(e[k])) {\n e[k] = 0;\n break;\n }\n }\n if (k === p - 2) {\n kase = 4;\n } else {\n let ks;\n for (ks = p - 1; ks >= k; ks--) {\n if (ks === k) {\n break;\n }\n let t =\n (ks !== p ? Math.abs(e[ks]) : 0) +\n (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n if (Math.abs(s[ks]) <= eps * t) {\n s[ks] = 0;\n break;\n }\n }\n if (ks === k) {\n kase = 3;\n } else if (ks === p - 1) {\n kase = 1;\n } else {\n kase = 2;\n k = ks;\n }\n }\n\n k++;\n\n switch (kase) {\n case 1: {\n let f = e[p - 2];\n e[p - 2] = 0;\n for (let j = p - 2; j >= k; j--) {\n let t = hypotenuse(s[j], f);\n let cs = s[j] / t;\n let sn = f / t;\n s[j] = t;\n if (j !== k) {\n f = -sn * e[j - 1];\n e[j - 1] = cs * e[j - 1];\n }\n if (wantv) {\n for (let i = 0; i < n; i++) {\n t = cs * V.get(i, j) + sn * V.get(i, p - 1);\n V.set(i, p - 1, -sn * V.get(i, j) + cs * V.get(i, p - 1));\n V.set(i, j, t);\n }\n }\n }\n break;\n }\n case 2: {\n let f = e[k - 1];\n e[k - 1] = 0;\n for (let j = k; j < p; j++) {\n let t = hypotenuse(s[j], f);\n let cs = s[j] / t;\n let sn = f / t;\n s[j] = t;\n f = -sn * e[j];\n e[j] = cs * e[j];\n if (wantu) {\n for (let i = 0; i < m; i++) {\n t = cs * U.get(i, j) + sn * U.get(i, k - 1);\n U.set(i, k - 1, -sn * U.get(i, j) + cs * U.get(i, k - 1));\n U.set(i, j, t);\n }\n }\n }\n break;\n }\n case 3: {\n const scale = Math.max(\n Math.abs(s[p - 1]),\n Math.abs(s[p - 2]),\n Math.abs(e[p - 2]),\n Math.abs(s[k]),\n Math.abs(e[k]),\n );\n const sp = s[p - 1] / scale;\n const spm1 = s[p - 2] / scale;\n const epm1 = e[p - 2] / scale;\n const sk = s[k] / scale;\n const ek = e[k] / scale;\n const b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n const c = sp * epm1 * (sp * epm1);\n let shift = 0;\n if (b !== 0 || c !== 0) {\n if (b < 0) {\n shift = 0 - Math.sqrt(b * b + c);\n } else {\n shift = Math.sqrt(b * b + c);\n }\n shift = c / (b + shift);\n }\n let f = (sk + sp) * (sk - sp) + shift;\n let g = sk * ek;\n for (let j = k; j < p - 1; j++) {\n let t = hypotenuse(f, g);\n if (t === 0) t = Number.MIN_VALUE;\n let cs = f / t;\n let sn = g / t;\n if (j !== k) {\n e[j - 1] = t;\n }\n f = cs * s[j] + sn * e[j];\n e[j] = cs * e[j] - sn * s[j];\n g = sn * s[j + 1];\n s[j + 1] = cs * s[j + 1];\n if (wantv) {\n for (let i = 0; i < n; i++) {\n t = cs * V.get(i, j) + sn * V.get(i, j + 1);\n V.set(i, j + 1, -sn * V.get(i, j) + cs * V.get(i, j + 1));\n V.set(i, j, t);\n }\n }\n t = hypotenuse(f, g);\n if (t === 0) t = Number.MIN_VALUE;\n cs = f / t;\n sn = g / t;\n s[j] = t;\n f = cs * e[j] + sn * s[j + 1];\n s[j + 1] = -sn * e[j] + cs * s[j + 1];\n g = sn * e[j + 1];\n e[j + 1] = cs * e[j + 1];\n if (wantu && j < m - 1) {\n for (let i = 0; i < m; i++) {\n t = cs * U.get(i, j) + sn * U.get(i, j + 1);\n U.set(i, j + 1, -sn * U.get(i, j) + cs * U.get(i, j + 1));\n U.set(i, j, t);\n }\n }\n }\n e[p - 2] = f;\n break;\n }\n case 4: {\n if (s[k] <= 0) {\n s[k] = s[k] < 0 ? -s[k] : 0;\n if (wantv) {\n for (let i = 0; i <= pp; i++) {\n V.set(i, k, -V.get(i, k));\n }\n }\n }\n while (k < pp) {\n if (s[k] >= s[k + 1]) {\n break;\n }\n let t = s[k];\n s[k] = s[k + 1];\n s[k + 1] = t;\n if (wantv && k < n - 1) {\n for (let i = 0; i < n; i++) {\n t = V.get(i, k + 1);\n V.set(i, k + 1, V.get(i, k));\n V.set(i, k, t);\n }\n }\n if (wantu && k < m - 1) {\n for (let i = 0; i < m; i++) {\n t = U.get(i, k + 1);\n U.set(i, k + 1, U.get(i, k));\n U.set(i, k, t);\n }\n }\n k++;\n }\n p--;\n break;\n }\n // no default\n }\n }\n\n if (swapped) {\n let tmp = V;\n V = U;\n U = tmp;\n }\n\n this.m = m;\n this.n = n;\n this.s = s;\n this.U = U;\n this.V = V;\n }\n\n solve(value) {\n let Y = value;\n let e = this.threshold;\n let scols = this.s.length;\n let Ls = Matrix.zeros(scols, scols);\n\n for (let i = 0; i < scols; i++) {\n if (Math.abs(this.s[i]) <= e) {\n Ls.set(i, i, 0);\n } else {\n Ls.set(i, i, 1 / this.s[i]);\n }\n }\n\n let U = this.U;\n let V = this.rightSingularVectors;\n\n let VL = V.mmul(Ls);\n let vrows = V.rows;\n let urows = U.rows;\n let VLU = Matrix.zeros(vrows, urows);\n\n for (let i = 0; i < vrows; i++) {\n for (let j = 0; j < urows; j++) {\n let sum = 0;\n for (let k = 0; k < scols; k++) {\n sum += VL.get(i, k) * U.get(j, k);\n }\n VLU.set(i, j, sum);\n }\n }\n\n return VLU.mmul(Y);\n }\n\n solveForDiagonal(value) {\n return this.solve(Matrix.diag(value));\n }\n\n inverse() {\n let V = this.V;\n let e = this.threshold;\n let vrows = V.rows;\n let vcols = V.columns;\n let X = new Matrix(vrows, this.s.length);\n\n for (let i = 0; i < vrows; i++) {\n for (let j = 0; j < vcols; j++) {\n if (Math.abs(this.s[j]) > e) {\n X.set(i, j, V.get(i, j) / this.s[j]);\n }\n }\n }\n\n let U = this.U;\n\n let urows = U.rows;\n let ucols = U.columns;\n let Y = new Matrix(vrows, urows);\n\n for (let i = 0; i < vrows; i++) {\n for (let j = 0; j < urows; j++) {\n let sum = 0;\n for (let k = 0; k < ucols; k++) {\n sum += X.get(i, k) * U.get(j, k);\n }\n Y.set(i, j, sum);\n }\n }\n\n return Y;\n }\n\n get condition() {\n return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n }\n\n get norm2() {\n return this.s[0];\n }\n\n get rank() {\n let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON;\n let r = 0;\n let s = this.s;\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (s[i] > tol) {\n r++;\n }\n }\n return r;\n }\n\n get diagonal() {\n return Array.from(this.s);\n }\n\n get threshold() {\n return (Number.EPSILON / 2) * Math.max(this.m, this.n) * this.s[0];\n }\n\n get leftSingularVectors() {\n return this.U;\n }\n\n get rightSingularVectors() {\n return this.V;\n }\n\n get diagonalMatrix() {\n return Matrix.diag(this.s);\n }\n}\n\nfunction inverse(matrix, useSVD = false) {\n matrix = WrapperMatrix2D.checkMatrix(matrix);\n if (useSVD) {\n return new SingularValueDecomposition(matrix).inverse();\n } else {\n return solve(matrix, Matrix.eye(matrix.rows));\n }\n}\n\nfunction solve(leftHandSide, rightHandSide, useSVD = false) {\n leftHandSide = WrapperMatrix2D.checkMatrix(leftHandSide);\n rightHandSide = WrapperMatrix2D.checkMatrix(rightHandSide);\n if (useSVD) {\n return new SingularValueDecomposition(leftHandSide).solve(rightHandSide);\n } else {\n return leftHandSide.isSquare()\n ? new LuDecomposition(leftHandSide).solve(rightHandSide)\n : new QrDecomposition(leftHandSide).solve(rightHandSide);\n }\n}\n\nfunction determinant(matrix) {\n matrix = Matrix.checkMatrix(matrix);\n if (matrix.isSquare()) {\n if (matrix.columns === 0) {\n return 1;\n }\n\n let a, b, c, d;\n if (matrix.columns === 2) {\n // 2 x 2 matrix\n a = matrix.get(0, 0);\n b = matrix.get(0, 1);\n c = matrix.get(1, 0);\n d = matrix.get(1, 1);\n\n return a * d - b * c;\n } else if (matrix.columns === 3) {\n // 3 x 3 matrix\n let subMatrix0, subMatrix1, subMatrix2;\n subMatrix0 = new MatrixSelectionView(matrix, [1, 2], [1, 2]);\n subMatrix1 = new MatrixSelectionView(matrix, [1, 2], [0, 2]);\n subMatrix2 = new MatrixSelectionView(matrix, [1, 2], [0, 1]);\n a = matrix.get(0, 0);\n b = matrix.get(0, 1);\n c = matrix.get(0, 2);\n\n return (\n a * determinant(subMatrix0) -\n b * determinant(subMatrix1) +\n c * determinant(subMatrix2)\n );\n } else {\n // general purpose determinant using the LU decomposition\n return new LuDecomposition(matrix).determinant;\n }\n } else {\n throw Error('determinant can only be calculated for a square matrix');\n }\n}\n\nfunction xrange(n, exception) {\n let range = [];\n for (let i = 0; i < n; i++) {\n if (i !== exception) {\n range.push(i);\n }\n }\n return range;\n}\n\nfunction dependenciesOneRow(\n error,\n matrix,\n index,\n thresholdValue = 10e-10,\n thresholdError = 10e-10,\n) {\n if (error > thresholdError) {\n return new Array(matrix.rows + 1).fill(0);\n } else {\n let returnArray = matrix.addRow(index, [0]);\n for (let i = 0; i < returnArray.rows; i++) {\n if (Math.abs(returnArray.get(i, 0)) < thresholdValue) {\n returnArray.set(i, 0, 0);\n }\n }\n return returnArray.to1DArray();\n }\n}\n\nfunction linearDependencies(matrix, options = {}) {\n const { thresholdValue = 10e-10, thresholdError = 10e-10 } = options;\n matrix = Matrix.checkMatrix(matrix);\n\n let n = matrix.rows;\n let results = new Matrix(n, n);\n\n for (let i = 0; i < n; i++) {\n let b = Matrix.columnVector(matrix.getRow(i));\n let Abis = matrix.subMatrixRow(xrange(n, i)).transpose();\n let svd = new SingularValueDecomposition(Abis);\n let x = svd.solve(b);\n let error = Matrix.sub(b, Abis.mmul(x)).abs().max();\n results.setRow(\n i,\n dependenciesOneRow(error, x, i, thresholdValue, thresholdError),\n );\n }\n return results;\n}\n\nfunction pseudoInverse(matrix, threshold = Number.EPSILON) {\n matrix = Matrix.checkMatrix(matrix);\n if (matrix.isEmpty()) {\n // with a zero dimension, the pseudo-inverse is the transpose, since all 0xn and nx0 matrices are singular\n // (0xn)*(nx0)*(0xn) = 0xn\n // (nx0)*(0xn)*(nx0) = nx0\n return matrix.transpose();\n }\n let svdSolution = new SingularValueDecomposition(matrix, { autoTranspose: true });\n\n let U = svdSolution.leftSingularVectors;\n let V = svdSolution.rightSingularVectors;\n let s = svdSolution.diagonal;\n\n for (let i = 0; i < s.length; i++) {\n if (Math.abs(s[i]) > threshold) {\n s[i] = 1.0 / s[i];\n } else {\n s[i] = 0.0;\n }\n }\n\n return V.mmul(Matrix.diag(s).mmul(U.transpose()));\n}\n\nfunction covariance(xMatrix, yMatrix = xMatrix, options = {}) {\n xMatrix = new Matrix(xMatrix);\n let yIsSame = false;\n if (\n typeof yMatrix === 'object' &&\n !Matrix.isMatrix(yMatrix) &&\n !isAnyArray.isAnyArray(yMatrix)\n ) {\n options = yMatrix;\n yMatrix = xMatrix;\n yIsSame = true;\n } else {\n yMatrix = new Matrix(yMatrix);\n }\n if (xMatrix.rows !== yMatrix.rows) {\n throw new TypeError('Both matrices must have the same number of rows');\n }\n const { center = true } = options;\n if (center) {\n xMatrix = xMatrix.center('column');\n if (!yIsSame) {\n yMatrix = yMatrix.center('column');\n }\n }\n const cov = xMatrix.transpose().mmul(yMatrix);\n for (let i = 0; i < cov.rows; i++) {\n for (let j = 0; j < cov.columns; j++) {\n cov.set(i, j, cov.get(i, j) * (1 / (xMatrix.rows - 1)));\n }\n }\n return cov;\n}\n\nfunction correlation(xMatrix, yMatrix = xMatrix, options = {}) {\n xMatrix = new Matrix(xMatrix);\n let yIsSame = false;\n if (\n typeof yMatrix === 'object' &&\n !Matrix.isMatrix(yMatrix) &&\n !isAnyArray.isAnyArray(yMatrix)\n ) {\n options = yMatrix;\n yMatrix = xMatrix;\n yIsSame = true;\n } else {\n yMatrix = new Matrix(yMatrix);\n }\n if (xMatrix.rows !== yMatrix.rows) {\n throw new TypeError('Both matrices must have the same number of rows');\n }\n\n const { center = true, scale = true } = options;\n if (center) {\n xMatrix.center('column');\n if (!yIsSame) {\n yMatrix.center('column');\n }\n }\n if (scale) {\n xMatrix.scale('column');\n if (!yIsSame) {\n yMatrix.scale('column');\n }\n }\n\n const sdx = xMatrix.standardDeviation('column', { unbiased: true });\n const sdy = yIsSame\n ? sdx\n : yMatrix.standardDeviation('column', { unbiased: true });\n\n const corr = xMatrix.transpose().mmul(yMatrix);\n for (let i = 0; i < corr.rows; i++) {\n for (let j = 0; j < corr.columns; j++) {\n corr.set(\n i,\n j,\n corr.get(i, j) * (1 / (sdx[i] * sdy[j])) * (1 / (xMatrix.rows - 1)),\n );\n }\n }\n return corr;\n}\n\nclass EigenvalueDecomposition {\n constructor(matrix, options = {}) {\n const { assumeSymmetric = false } = options;\n\n matrix = WrapperMatrix2D.checkMatrix(matrix);\n if (!matrix.isSquare()) {\n throw new Error('Matrix is not a square matrix');\n }\n\n if (matrix.isEmpty()) {\n throw new Error('Matrix must be non-empty');\n }\n\n let n = matrix.columns;\n let V = new Matrix(n, n);\n let d = new Float64Array(n);\n let e = new Float64Array(n);\n let value = matrix;\n let i, j;\n\n let isSymmetric = false;\n if (assumeSymmetric) {\n isSymmetric = true;\n } else {\n isSymmetric = matrix.isSymmetric();\n }\n\n if (isSymmetric) {\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n V.set(i, j, value.get(i, j));\n }\n }\n tred2(n, e, d, V);\n tql2(n, e, d, V);\n } else {\n let H = new Matrix(n, n);\n let ort = new Float64Array(n);\n for (j = 0; j < n; j++) {\n for (i = 0; i < n; i++) {\n H.set(i, j, value.get(i, j));\n }\n }\n orthes(n, H, ort, V);\n hqr2(n, e, d, V, H);\n }\n\n this.n = n;\n this.e = e;\n this.d = d;\n this.V = V;\n }\n\n get realEigenvalues() {\n return Array.from(this.d);\n }\n\n get imaginaryEigenvalues() {\n return Array.from(this.e);\n }\n\n get eigenvectorMatrix() {\n return this.V;\n }\n\n get diagonalMatrix() {\n let n = this.n;\n let e = this.e;\n let d = this.d;\n let X = new Matrix(n, n);\n let i, j;\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n X.set(i, j, 0);\n }\n X.set(i, i, d[i]);\n if (e[i] > 0) {\n X.set(i, i + 1, e[i]);\n } else if (e[i] < 0) {\n X.set(i, i - 1, e[i]);\n }\n }\n return X;\n }\n}\n\nfunction tred2(n, e, d, V) {\n let f, g, h, i, j, k, hh, scale;\n\n for (j = 0; j < n; j++) {\n d[j] = V.get(n - 1, j);\n }\n\n for (i = n - 1; i > 0; i--) {\n scale = 0;\n h = 0;\n for (k = 0; k < i; k++) {\n scale = scale + Math.abs(d[k]);\n }\n\n if (scale === 0) {\n e[i] = d[i - 1];\n for (j = 0; j < i; j++) {\n d[j] = V.get(i - 1, j);\n V.set(i, j, 0);\n V.set(j, i, 0);\n }\n } else {\n for (k = 0; k < i; k++) {\n d[k] /= scale;\n h += d[k] * d[k];\n }\n\n f = d[i - 1];\n g = Math.sqrt(h);\n if (f > 0) {\n g = -g;\n }\n\n e[i] = scale * g;\n h = h - f * g;\n d[i - 1] = f - g;\n for (j = 0; j < i; j++) {\n e[j] = 0;\n }\n\n for (j = 0; j < i; j++) {\n f = d[j];\n V.set(j, i, f);\n g = e[j] + V.get(j, j) * f;\n for (k = j + 1; k <= i - 1; k++) {\n g += V.get(k, j) * d[k];\n e[k] += V.get(k, j) * f;\n }\n e[j] = g;\n }\n\n f = 0;\n for (j = 0; j < i; j++) {\n e[j] /= h;\n f += e[j] * d[j];\n }\n\n hh = f / (h + h);\n for (j = 0; j < i; j++) {\n e[j] -= hh * d[j];\n }\n\n for (j = 0; j < i; j++) {\n f = d[j];\n g = e[j];\n for (k = j; k <= i - 1; k++) {\n V.set(k, j, V.get(k, j) - (f * e[k] + g * d[k]));\n }\n d[j] = V.get(i - 1, j);\n V.set(i, j, 0);\n }\n }\n d[i] = h;\n }\n\n for (i = 0; i < n - 1; i++) {\n V.set(n - 1, i, V.get(i, i));\n V.set(i, i, 1);\n h = d[i + 1];\n if (h !== 0) {\n for (k = 0; k <= i; k++) {\n d[k] = V.get(k, i + 1) / h;\n }\n\n for (j = 0; j <= i; j++) {\n g = 0;\n for (k = 0; k <= i; k++) {\n g += V.get(k, i + 1) * V.get(k, j);\n }\n for (k = 0; k <= i; k++) {\n V.set(k, j, V.get(k, j) - g * d[k]);\n }\n }\n }\n\n for (k = 0; k <= i; k++) {\n V.set(k, i + 1, 0);\n }\n }\n\n for (j = 0; j < n; j++) {\n d[j] = V.get(n - 1, j);\n V.set(n - 1, j, 0);\n }\n\n V.set(n - 1, n - 1, 1);\n e[0] = 0;\n}\n\nfunction tql2(n, e, d, V) {\n let g, h, i, j, k, l, m, p, r, dl1, c, c2, c3, el1, s, s2;\n\n for (i = 1; i < n; i++) {\n e[i - 1] = e[i];\n }\n\n e[n - 1] = 0;\n\n let f = 0;\n let tst1 = 0;\n let eps = Number.EPSILON;\n\n for (l = 0; l < n; l++) {\n tst1 = Math.max(tst1, Math.abs(d[l]) + Math.abs(e[l]));\n m = l;\n while (m < n) {\n if (Math.abs(e[m]) <= eps * tst1) {\n break;\n }\n m++;\n }\n\n if (m > l) {\n do {\n\n g = d[l];\n p = (d[l + 1] - g) / (2 * e[l]);\n r = hypotenuse(p, 1);\n if (p < 0) {\n r = -r;\n }\n\n d[l] = e[l] / (p + r);\n d[l + 1] = e[l] * (p + r);\n dl1 = d[l + 1];\n h = g - d[l];\n for (i = l + 2; i < n; i++) {\n d[i] -= h;\n }\n\n f = f + h;\n\n p = d[m];\n c = 1;\n c2 = c;\n c3 = c;\n el1 = e[l + 1];\n s = 0;\n s2 = 0;\n for (i = m - 1; i >= l; i--) {\n c3 = c2;\n c2 = c;\n s2 = s;\n g = c * e[i];\n h = c * p;\n r = hypotenuse(p, e[i]);\n e[i + 1] = s * r;\n s = e[i] / r;\n c = p / r;\n p = c * d[i] - s * g;\n d[i + 1] = h + s * (c * g + s * d[i]);\n\n for (k = 0; k < n; k++) {\n h = V.get(k, i + 1);\n V.set(k, i + 1, s * V.get(k, i) + c * h);\n V.set(k, i, c * V.get(k, i) - s * h);\n }\n }\n\n p = (-s * s2 * c3 * el1 * e[l]) / dl1;\n e[l] = s * p;\n d[l] = c * p;\n } while (Math.abs(e[l]) > eps * tst1);\n }\n d[l] = d[l] + f;\n e[l] = 0;\n }\n\n for (i = 0; i < n - 1; i++) {\n k = i;\n p = d[i];\n for (j = i + 1; j < n; j++) {\n if (d[j] < p) {\n k = j;\n p = d[j];\n }\n }\n\n if (k !== i) {\n d[k] = d[i];\n d[i] = p;\n for (j = 0; j < n; j++) {\n p = V.get(j, i);\n V.set(j, i, V.get(j, k));\n V.set(j, k, p);\n }\n }\n }\n}\n\nfunction orthes(n, H, ort, V) {\n let low = 0;\n let high = n - 1;\n let f, g, h, i, j, m;\n let scale;\n\n for (m = low + 1; m <= high - 1; m++) {\n scale = 0;\n for (i = m; i <= high; i++) {\n scale = scale + Math.abs(H.get(i, m - 1));\n }\n\n if (scale !== 0) {\n h = 0;\n for (i = high; i >= m; i--) {\n ort[i] = H.get(i, m - 1) / scale;\n h += ort[i] * ort[i];\n }\n\n g = Math.sqrt(h);\n if (ort[m] > 0) {\n g = -g;\n }\n\n h = h - ort[m] * g;\n ort[m] = ort[m] - g;\n\n for (j = m; j < n; j++) {\n f = 0;\n for (i = high; i >= m; i--) {\n f += ort[i] * H.get(i, j);\n }\n\n f = f / h;\n for (i = m; i <= high; i++) {\n H.set(i, j, H.get(i, j) - f * ort[i]);\n }\n }\n\n for (i = 0; i <= high; i++) {\n f = 0;\n for (j = high; j >= m; j--) {\n f += ort[j] * H.get(i, j);\n }\n\n f = f / h;\n for (j = m; j <= high; j++) {\n H.set(i, j, H.get(i, j) - f * ort[j]);\n }\n }\n\n ort[m] = scale * ort[m];\n H.set(m, m - 1, scale * g);\n }\n }\n\n for (i = 0; i < n; i++) {\n for (j = 0; j < n; j++) {\n V.set(i, j, i === j ? 1 : 0);\n }\n }\n\n for (m = high - 1; m >= low + 1; m--) {\n if (H.get(m, m - 1) !== 0) {\n for (i = m + 1; i <= high; i++) {\n ort[i] = H.get(i, m - 1);\n }\n\n for (j = m; j <= high; j++) {\n g = 0;\n for (i = m; i <= high; i++) {\n g += ort[i] * V.get(i, j);\n }\n\n g = g / ort[m] / H.get(m, m - 1);\n for (i = m; i <= high; i++) {\n V.set(i, j, V.get(i, j) + g * ort[i]);\n }\n }\n }\n }\n}\n\nfunction hqr2(nn, e, d, V, H) {\n let n = nn - 1;\n let low = 0;\n let high = nn - 1;\n let eps = Number.EPSILON;\n let exshift = 0;\n let norm = 0;\n let p = 0;\n let q = 0;\n let r = 0;\n let s = 0;\n let z = 0;\n let iter = 0;\n let i, j, k, l, m, t, w, x, y;\n let ra, sa, vr, vi;\n let notlast, cdivres;\n\n for (i = 0; i < nn; i++) {\n if (i < low || i > high) {\n d[i] = H.get(i, i);\n e[i] = 0;\n }\n\n for (j = Math.max(i - 1, 0); j < nn; j++) {\n norm = norm + Math.abs(H.get(i, j));\n }\n }\n\n while (n >= low) {\n l = n;\n while (l > low) {\n s = Math.abs(H.get(l - 1, l - 1)) + Math.abs(H.get(l, l));\n if (s === 0) {\n s = norm;\n }\n if (Math.abs(H.get(l, l - 1)) < eps * s) {\n break;\n }\n l--;\n }\n\n if (l === n) {\n H.set(n, n, H.get(n, n) + exshift);\n d[n] = H.get(n, n);\n e[n] = 0;\n n--;\n iter = 0;\n } else if (l === n - 1) {\n w = H.get(n, n - 1) * H.get(n - 1, n);\n p = (H.get(n - 1, n - 1) - H.get(n, n)) / 2;\n q = p * p + w;\n z = Math.sqrt(Math.abs(q));\n H.set(n, n, H.get(n, n) + exshift);\n H.set(n - 1, n - 1, H.get(n - 1, n - 1) + exshift);\n x = H.get(n, n);\n\n if (q >= 0) {\n z = p >= 0 ? p + z : p - z;\n d[n - 1] = x + z;\n d[n] = d[n - 1];\n if (z !== 0) {\n d[n] = x - w / z;\n }\n e[n - 1] = 0;\n e[n] = 0;\n x = H.get(n, n - 1);\n s = Math.abs(x) + Math.abs(z);\n p = x / s;\n q = z / s;\n r = Math.sqrt(p * p + q * q);\n p = p / r;\n q = q / r;\n\n for (j = n - 1; j < nn; j++) {\n z = H.get(n - 1, j);\n H.set(n - 1, j, q * z + p * H.get(n, j));\n H.set(n, j, q * H.get(n, j) - p * z);\n }\n\n for (i = 0; i <= n; i++) {\n z = H.get(i, n - 1);\n H.set(i, n - 1, q * z + p * H.get(i, n));\n H.set(i, n, q * H.get(i, n) - p * z);\n }\n\n for (i = low; i <= high; i++) {\n z = V.get(i, n - 1);\n V.set(i, n - 1, q * z + p * V.get(i, n));\n V.set(i, n, q * V.get(i, n) - p * z);\n }\n } else {\n d[n - 1] = x + p;\n d[n] = x + p;\n e[n - 1] = z;\n e[n] = -z;\n }\n\n n = n - 2;\n iter = 0;\n } else {\n x = H.get(n, n);\n y = 0;\n w = 0;\n if (l < n) {\n y = H.get(n - 1, n - 1);\n w = H.get(n, n - 1) * H.get(n - 1, n);\n }\n\n if (iter === 10) {\n exshift += x;\n for (i = low; i <= n; i++) {\n H.set(i, i, H.get(i, i) - x);\n }\n s = Math.abs(H.get(n, n - 1)) + Math.abs(H.get(n - 1, n - 2));\n // eslint-disable-next-line no-multi-assign\n x = y = 0.75 * s;\n w = -0.4375 * s * s;\n }\n\n if (iter === 30) {\n s = (y - x) / 2;\n s = s * s + w;\n if (s > 0) {\n s = Math.sqrt(s);\n if (y < x) {\n s = -s;\n }\n s = x - w / ((y - x) / 2 + s);\n for (i = low; i <= n; i++) {\n H.set(i, i, H.get(i, i) - s);\n }\n exshift += s;\n // eslint-disable-next-line no-multi-assign\n x = y = w = 0.964;\n }\n }\n\n iter = iter + 1;\n\n m = n - 2;\n while (m >= l) {\n z = H.get(m, m);\n r = x - z;\n s = y - z;\n p = (r * s - w) / H.get(m + 1, m) + H.get(m, m + 1);\n q = H.get(m + 1, m + 1) - z - r - s;\n r = H.get(m + 2, m + 1);\n s = Math.abs(p) + Math.abs(q) + Math.abs(r);\n p = p / s;\n q = q / s;\n r = r / s;\n if (m === l) {\n break;\n }\n if (\n Math.abs(H.get(m, m - 1)) * (Math.abs(q) + Math.abs(r)) <\n eps *\n (Math.abs(p) *\n (Math.abs(H.get(m - 1, m - 1)) +\n Math.abs(z) +\n Math.abs(H.get(m + 1, m + 1))))\n ) {\n break;\n }\n m--;\n }\n\n for (i = m + 2; i <= n; i++) {\n H.set(i, i - 2, 0);\n if (i > m + 2) {\n H.set(i, i - 3, 0);\n }\n }\n\n for (k = m; k <= n - 1; k++) {\n notlast = k !== n - 1;\n if (k !== m) {\n p = H.get(k, k - 1);\n q = H.get(k + 1, k - 1);\n r = notlast ? H.get(k + 2, k - 1) : 0;\n x = Math.abs(p) + Math.abs(q) + Math.abs(r);\n if (x !== 0) {\n p = p / x;\n q = q / x;\n r = r / x;\n }\n }\n\n if (x === 0) {\n break;\n }\n\n s = Math.sqrt(p * p + q * q + r * r);\n if (p < 0) {\n s = -s;\n }\n\n if (s !== 0) {\n if (k !== m) {\n H.set(k, k - 1, -s * x);\n } else if (l !== m) {\n H.set(k, k - 1, -H.get(k, k - 1));\n }\n\n p = p + s;\n x = p / s;\n y = q / s;\n z = r / s;\n q = q / p;\n r = r / p;\n\n for (j = k; j < nn; j++) {\n p = H.get(k, j) + q * H.get(k + 1, j);\n if (notlast) {\n p = p + r * H.get(k + 2, j);\n H.set(k + 2, j, H.get(k + 2, j) - p * z);\n }\n\n H.set(k, j, H.get(k, j) - p * x);\n H.set(k + 1, j, H.get(k + 1, j) - p * y);\n }\n\n for (i = 0; i <= Math.min(n, k + 3); i++) {\n p = x * H.get(i, k) + y * H.get(i, k + 1);\n if (notlast) {\n p = p + z * H.get(i, k + 2);\n H.set(i, k + 2, H.get(i, k + 2) - p * r);\n }\n\n H.set(i, k, H.get(i, k) - p);\n H.set(i, k + 1, H.get(i, k + 1) - p * q);\n }\n\n for (i = low; i <= high; i++) {\n p = x * V.get(i, k) + y * V.get(i, k + 1);\n if (notlast) {\n p = p + z * V.get(i, k + 2);\n V.set(i, k + 2, V.get(i, k + 2) - p * r);\n }\n\n V.set(i, k, V.get(i, k) - p);\n V.set(i, k + 1, V.get(i, k + 1) - p * q);\n }\n }\n }\n }\n }\n\n if (norm === 0) {\n return;\n }\n\n for (n = nn - 1; n >= 0; n--) {\n p = d[n];\n q = e[n];\n\n if (q === 0) {\n l = n;\n H.set(n, n, 1);\n for (i = n - 1; i >= 0; i--) {\n w = H.get(i, i) - p;\n r = 0;\n for (j = l; j <= n; j++) {\n r = r + H.get(i, j) * H.get(j, n);\n }\n\n if (e[i] < 0) {\n z = w;\n s = r;\n } else {\n l = i;\n if (e[i] === 0) {\n H.set(i, n, w !== 0 ? -r / w : -r / (eps * norm));\n } else {\n x = H.get(i, i + 1);\n y = H.get(i + 1, i);\n q = (d[i] - p) * (d[i] - p) + e[i] * e[i];\n t = (x * s - z * r) / q;\n H.set(i, n, t);\n H.set(\n i + 1,\n n,\n Math.abs(x) > Math.abs(z) ? (-r - w * t) / x : (-s - y * t) / z,\n );\n }\n\n t = Math.abs(H.get(i, n));\n if (eps * t * t > 1) {\n for (j = i; j <= n; j++) {\n H.set(j, n, H.get(j, n) / t);\n }\n }\n }\n }\n } else if (q < 0) {\n l = n - 1;\n\n if (Math.abs(H.get(n, n - 1)) > Math.abs(H.get(n - 1, n))) {\n H.set(n - 1, n - 1, q / H.get(n, n - 1));\n H.set(n - 1, n, -(H.get(n, n) - p) / H.get(n, n - 1));\n } else {\n cdivres = cdiv(0, -H.get(n - 1, n), H.get(n - 1, n - 1) - p, q);\n H.set(n - 1, n - 1, cdivres[0]);\n H.set(n - 1, n, cdivres[1]);\n }\n\n H.set(n, n - 1, 0);\n H.set(n, n, 1);\n for (i = n - 2; i >= 0; i--) {\n ra = 0;\n sa = 0;\n for (j = l; j <= n; j++) {\n ra = ra + H.get(i, j) * H.get(j, n - 1);\n sa = sa + H.get(i, j) * H.get(j, n);\n }\n\n w = H.get(i, i) - p;\n\n if (e[i] < 0) {\n z = w;\n r = ra;\n s = sa;\n } else {\n l = i;\n if (e[i] === 0) {\n cdivres = cdiv(-ra, -sa, w, q);\n H.set(i, n - 1, cdivres[0]);\n H.set(i, n, cdivres[1]);\n } else {\n x = H.get(i, i + 1);\n y = H.get(i + 1, i);\n vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;\n vi = (d[i] - p) * 2 * q;\n if (vr === 0 && vi === 0) {\n vr =\n eps *\n norm *\n (Math.abs(w) +\n Math.abs(q) +\n Math.abs(x) +\n Math.abs(y) +\n Math.abs(z));\n }\n cdivres = cdiv(\n x * r - z * ra + q * sa,\n x * s - z * sa - q * ra,\n vr,\n vi,\n );\n H.set(i, n - 1, cdivres[0]);\n H.set(i, n, cdivres[1]);\n if (Math.abs(x) > Math.abs(z) + Math.abs(q)) {\n H.set(\n i + 1,\n n - 1,\n (-ra - w * H.get(i, n - 1) + q * H.get(i, n)) / x,\n );\n H.set(\n i + 1,\n n,\n (-sa - w * H.get(i, n) - q * H.get(i, n - 1)) / x,\n );\n } else {\n cdivres = cdiv(\n -r - y * H.get(i, n - 1),\n -s - y * H.get(i, n),\n z,\n q,\n );\n H.set(i + 1, n - 1, cdivres[0]);\n H.set(i + 1, n, cdivres[1]);\n }\n }\n\n t = Math.max(Math.abs(H.get(i, n - 1)), Math.abs(H.get(i, n)));\n if (eps * t * t > 1) {\n for (j = i; j <= n; j++) {\n H.set(j, n - 1, H.get(j, n - 1) / t);\n H.set(j, n, H.get(j, n) / t);\n }\n }\n }\n }\n }\n }\n\n for (i = 0; i < nn; i++) {\n if (i < low || i > high) {\n for (j = i; j < nn; j++) {\n V.set(i, j, H.get(i, j));\n }\n }\n }\n\n for (j = nn - 1; j >= low; j--) {\n for (i = low; i <= high; i++) {\n z = 0;\n for (k = low; k <= Math.min(j, high); k++) {\n z = z + V.get(i, k) * H.get(k, j);\n }\n V.set(i, j, z);\n }\n }\n}\n\nfunction cdiv(xr, xi, yr, yi) {\n let r, d;\n if (Math.abs(yr) > Math.abs(yi)) {\n r = yi / yr;\n d = yr + r * yi;\n return [(xr + r * xi) / d, (xi - r * xr) / d];\n } else {\n r = yr / yi;\n d = yi + r * yr;\n return [(r * xr + xi) / d, (r * xi - xr) / d];\n }\n}\n\nclass CholeskyDecomposition {\n constructor(value) {\n value = WrapperMatrix2D.checkMatrix(value);\n if (!value.isSymmetric()) {\n throw new Error('Matrix is not symmetric');\n }\n\n let a = value;\n let dimension = a.rows;\n let l = new Matrix(dimension, dimension);\n let positiveDefinite = true;\n let i, j, k;\n\n for (j = 0; j < dimension; j++) {\n let d = 0;\n for (k = 0; k < j; k++) {\n let s = 0;\n for (i = 0; i < k; i++) {\n s += l.get(k, i) * l.get(j, i);\n }\n s = (a.get(j, k) - s) / l.get(k, k);\n l.set(j, k, s);\n d = d + s * s;\n }\n\n d = a.get(j, j) - d;\n\n positiveDefinite &&= d > 0;\n l.set(j, j, Math.sqrt(Math.max(d, 0)));\n for (k = j + 1; k < dimension; k++) {\n l.set(j, k, 0);\n }\n }\n\n this.L = l;\n this.positiveDefinite = positiveDefinite;\n }\n\n isPositiveDefinite() {\n return this.positiveDefinite;\n }\n\n solve(value) {\n value = WrapperMatrix2D.checkMatrix(value);\n\n let l = this.L;\n let dimension = l.rows;\n\n if (value.rows !== dimension) {\n throw new Error('Matrix dimensions do not match');\n }\n if (this.isPositiveDefinite() === false) {\n throw new Error('Matrix is not positive definite');\n }\n\n let count = value.columns;\n let B = value.clone();\n let i, j, k;\n\n for (k = 0; k < dimension; k++) {\n for (j = 0; j < count; j++) {\n for (i = 0; i < k; i++) {\n B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(k, i));\n }\n B.set(k, j, B.get(k, j) / l.get(k, k));\n }\n }\n\n for (k = dimension - 1; k >= 0; k--) {\n for (j = 0; j < count; j++) {\n for (i = k + 1; i < dimension; i++) {\n B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(i, k));\n }\n B.set(k, j, B.get(k, j) / l.get(k, k));\n }\n }\n\n return B;\n }\n\n get lowerTriangularMatrix() {\n return this.L;\n }\n}\n\nclass nipals {\n constructor(X, options = {}) {\n X = WrapperMatrix2D.checkMatrix(X);\n let { Y } = options;\n const {\n scaleScores = false,\n maxIterations = 1000,\n terminationCriteria = 1e-10,\n } = options;\n\n let u;\n if (Y) {\n if (isAnyArray.isAnyArray(Y) && typeof Y[0] === 'number') {\n Y = Matrix.columnVector(Y);\n } else {\n Y = WrapperMatrix2D.checkMatrix(Y);\n }\n if (Y.rows !== X.rows) {\n throw new Error('Y should have the same number of rows as X');\n }\n u = Y.getColumnVector(0);\n } else {\n u = X.getColumnVector(0);\n }\n\n let diff = 1;\n let t, q, w, tOld;\n\n for (\n let counter = 0;\n counter < maxIterations && diff > terminationCriteria;\n counter++\n ) {\n w = X.transpose().mmul(u).div(u.transpose().mmul(u).get(0, 0));\n w = w.div(w.norm());\n\n t = X.mmul(w).div(w.transpose().mmul(w).get(0, 0));\n\n if (counter > 0) {\n diff = t.clone().sub(tOld).pow(2).sum();\n }\n tOld = t.clone();\n\n if (Y) {\n q = Y.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n q = q.div(q.norm());\n\n u = Y.mmul(q).div(q.transpose().mmul(q).get(0, 0));\n } else {\n u = t;\n }\n }\n\n if (Y) {\n let p = X.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n p = p.div(p.norm());\n let xResidual = X.clone().sub(t.clone().mmul(p.transpose()));\n let residual = u.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n let yResidual = Y.clone().sub(\n t.clone().mulS(residual.get(0, 0)).mmul(q.transpose()),\n );\n\n this.t = t;\n this.p = p.transpose();\n this.w = w.transpose();\n this.q = q;\n this.u = u;\n this.s = t.transpose().mmul(t);\n this.xResidual = xResidual;\n this.yResidual = yResidual;\n this.betas = residual;\n } else {\n this.w = w.transpose();\n this.s = t.transpose().mmul(t).sqrt();\n if (scaleScores) {\n this.t = t.clone().div(this.s.get(0, 0));\n } else {\n this.t = t;\n }\n this.xResidual = X.sub(t.mmul(w.transpose()));\n }\n }\n}\n\nexports.AbstractMatrix = AbstractMatrix;\nexports.CHO = CholeskyDecomposition;\nexports.CholeskyDecomposition = CholeskyDecomposition;\nexports.DistanceMatrix = DistanceMatrix;\nexports.EVD = EigenvalueDecomposition;\nexports.EigenvalueDecomposition = EigenvalueDecomposition;\nexports.LU = LuDecomposition;\nexports.LuDecomposition = LuDecomposition;\nexports.Matrix = Matrix;\nexports.MatrixColumnSelectionView = MatrixColumnSelectionView;\nexports.MatrixColumnView = MatrixColumnView;\nexports.MatrixFlipColumnView = MatrixFlipColumnView;\nexports.MatrixFlipRowView = MatrixFlipRowView;\nexports.MatrixRowSelectionView = MatrixRowSelectionView;\nexports.MatrixRowView = MatrixRowView;\nexports.MatrixSelectionView = MatrixSelectionView;\nexports.MatrixSubView = MatrixSubView;\nexports.MatrixTransposeView = MatrixTransposeView;\nexports.NIPALS = nipals;\nexports.Nipals = nipals;\nexports.QR = QrDecomposition;\nexports.QrDecomposition = QrDecomposition;\nexports.SVD = SingularValueDecomposition;\nexports.SingularValueDecomposition = SingularValueDecomposition;\nexports.SymmetricMatrix = SymmetricMatrix;\nexports.WrapperMatrix1D = WrapperMatrix1D;\nexports.WrapperMatrix2D = WrapperMatrix2D;\nexports.correlation = correlation;\nexports.covariance = covariance;\nexports.default = Matrix;\nexports.determinant = determinant;\nexports.inverse = inverse;\nexports.linearDependencies = linearDependencies;\nexports.pseudoInverse = pseudoInverse;\nexports.solve = solve;\nexports.wrap = wrap;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|