{"_id":"matrix-ops-core","_rev":"6-2400afd0f4fa8b7715594ae7e1473e54","name":"matrix-ops-core","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"matrix-ops-core","version":"1.0.0","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning"],"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","_id":"matrix-ops-core@1.0.0","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"homepage":"https://github.com/Ops-Core/matrix","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"5f54e88ac400bd52f9b6a6009d4f1cec63bcd612","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.0.0.tgz","fileCount":44,"integrity":"sha512-0chYXM/GxTgsfofG3NrVavWM9C2zTwfmd0rwLC+LDbXtoQq7PUhBal1UkMOUWOgf3AKu95WQkIKGA1w1Ge8tKw==","signatures":[{"sig":"MEQCIDd1CGkZUS+q1/eBqNqx/9lTrW4EqNYBq8dzvQO1LCoLAiBvJaECMXEs3GQoZxECLuPzSpjiVpKFysnZ3Vi+uvocSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1109393},"main":"matrix.js","types":"matrix.d.ts","unpkg":"matrix.umd.js","module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"jsdelivr":"matrix.umd.js","repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Matrix manipulation and computation library","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"tmp":"tmp/matrix-ops-core_1.0.0_1787667643470_0.6335291779416057","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"matrix-ops-core","version":"1.0.1","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning"],"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","_id":"matrix-ops-core@1.0.1","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"homepage":"https://github.com/Ops-Core/matrix","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"f85efd9be981eb5b6d375a639e55167fa7188a8d","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.0.1.tgz","fileCount":46,"integrity":"sha512-nOb/F2evi4eMveptvfszM1eoA8z6m+YRNZY7PzChpP0Q0/+dKNw8Pivkcp8lOkB1sfwaEfnNVPbdspYMqgz47A==","signatures":[{"sig":"MEQCIGmd/scKi0dL+TrzKyGzSF59LCqUJFObenzqLa3JlWt2AiApwjwTtLEryFTwniYrdhVOe7F8wHhgeDubHUgo3YwckQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1087419},"main":"matrix.js","types":"matrix.d.ts","unpkg":"matrix.umd.js","module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"jsdelivr":"matrix.umd.js","repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Matrix manipulation and computation library","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"bignumber.js":"11.1.5","is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0","secure-library-loader":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"tmp":"tmp/matrix-ops-core_1.0.1_1787843279576_0.6639012873747636","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"matrix-ops-core","version":"1.0.2","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning"],"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","_id":"matrix-ops-core@1.0.2","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"homepage":"https://github.com/Ops-Core/matrix","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"62dd597c7686f58511f8e5d8c6bcf702bf1e9bb8","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.0.2.tgz","fileCount":46,"integrity":"sha512-BNPlW5yWmUVb3QEbvTu78BKQy9pfyoo+qLMXrUKjaYEikUXsENED52I2/WLE3nvKojOIL2GgQPq5C8CjmQgZ4g==","signatures":[{"sig":"MEUCIBqbfN46AVjyZOlMJkpSOV2Xf0TAfc/wXxp1WIqKC5+TAiEAvlBY3uejmv4hq6dAgg+EgL0Z+vJws+yNqRNRe+kAnp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAqvegKWC11dQSOOj/repVEz0ihRnyxLokfegyK7BxozAiA/wU6mm1ryuNlWdLteoK36DmgTIRa9OmF+yKIVcgelPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1087390},"main":"matrix.js","types":"matrix.d.ts","unpkg":"matrix.umd.js","module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"jsdelivr":"matrix.umd.js","repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Dense linear algebra for JavaScript and TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"bignumber.js":"11.1.5","is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0","secure-library-loader":"0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"tmp":"tmp/matrix-ops-core_1.0.2_1787884127035_0.30102811481211744","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"matrix-ops-core","version":"1.0.3","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning","matrix-ops","matrix-ops-core"],"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","_id":"matrix-ops-core@1.0.3","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"homepage":"https://github.com/Ops-Core/matrix","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"2ed58a6dc881aebe251222d9bf6114324db84d18","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.0.3.tgz","fileCount":46,"integrity":"sha512-20jarSZptO/VdORGVd4IzQCVQZrgSjRdkm8cGQrxj0oF/WBomXNlTEYYJMd4Ltp69ECCKI8WCwc5Stwq07hUvw==","signatures":[{"sig":"MEYCIQC6NFXMO0nAkr/nIjM3VXXw6xiNLVUXwdD2BVmg2IoH5wIhAL7znlI+RFqE/MFPGPV4T+oV2BsqKhyJgvuM8cVHgVBq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHHRgulURFfrWAcqF61fOg//4iaiZgthlZM6PdXwQRuCAiEA+j5QBiWyPYYi01szA5//ExDKDhTHUPjh13h/OX9KrDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1406117},"main":"matrix.js","types":"matrix.d.ts","unpkg":"matrix.umd.js","module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"jsdelivr":"matrix.umd.js","repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Dense linear algebra for JavaScript and TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"bignumber.js":"11.1.5","is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0","secure-library-loader":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"tmp":"tmp/matrix-ops-core_1.0.3_1788171380415_0.9125389944208007","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"matrix-ops-core","version":"1.0.4","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning","matrix-ops","matrix-ops-core"],"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","_id":"matrix-ops-core@1.0.4","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"homepage":"https://github.com/Ops-Core/matrix","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"cea2237dae1cb0eb89a58b3cae1fc5a7e555c9fc","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.0.4.tgz","fileCount":46,"integrity":"sha512-+FtVDKkNxtdh4xGr/O6C8kU9eVqpct+PnBv7PXAdvU3/Lcfs9/Xtl4he1hJIyR5WgwOzJcP6/dkMieH9dUwB3Q==","signatures":[{"sig":"MEYCIQCiw40sWwwEVkP3vjQ270id+j5xsdpX1E6LraAYU4J+RQIhALQ07JWYQx1gxjzNUvL1a+CMpWPzPffolcXrGA4LFilc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIESPMw9YoFdOpfJ819R8WXZYyU84oEQlqs6o2Flrxb1vAiAujSOBXKVuyx59ICDkqxC//KgsZoSFRc6UvaZP1BgafA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1406115},"main":"matrix.js","types":"matrix.d.ts","unpkg":"matrix.umd.js","module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"jsdelivr":"matrix.umd.js","repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Dense linear algebra for JavaScript and TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"decimal.js":"10.6.0","bignumber.js":"11.1.5","is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0","secure-library-loader":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"tmp":"tmp/matrix-ops-core_1.0.4_1788171914754_0.19825433938639114","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"matrix-ops-core@1.1.0","bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"dist":{"shasum":"897c4f4a54c51766a495f19a32f98b15eee1a884","tarball":"https://registry.npmjs.org/matrix-ops-core/-/matrix-ops-core-1.1.0.tgz","fileCount":46,"integrity":"sha512-z+n8FNWqqLjocc/xRuDoTu45LWGiG0uUeszSQ/Rk8IXubcXogFIh2b8eoCuSkcneXQjTh5EfJTtIPIDsEhjtYg==","signatures":[{"sig":"MEQCICC1+iGg2v7MpN8M0SxftKGzXyyh8AKh1KgcvZtvxJCQAiBFaMnhF4tXmvZ37bVUQnU1iV2tdExABP84NDAFWU1I3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB2rF6cFi0V68TE/hi/tj30dvYfTkQsAWeQLTjmeSsZ7AiEAxBrH07E0c1EhAMf7CA7pwYuIokEgygnvQ9W62pDqilc="}],"unpackedSize":1406116},"main":"matrix.js","name":"matrix-ops-core","types":"matrix.d.ts","unpkg":"matrix.umd.js","author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"module":"src/index.js","exports":{".":{"types":"./matrix.d.ts","default":"./matrix.mjs","require":"./matrix.js"}},"license":"MIT","scripts":{"test":"npm run test-only && npm run eslint && npm run prettier","eslint":"eslint src testUtils.js","compile":"rollup -c","prettier":"prettier --check src","test-only":"vitest run --coverage","eslint-fix":"npm run eslint -- --fix","prettier-write":"prettier --write src","build-esm-facade":"node tools/build-esm-facade.mjs"},"version":"1.1.0","_npmUser":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"homepage":"https://github.com/Ops-Core/matrix","jsdelivr":"matrix.umd.js","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning","matrix-ops","matrix-ops-core"],"repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"_npmVersion":"11.10.1","description":"Dense linear algebra for JavaScript and TypeScript","directories":{},"maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"sideEffects":false,"_nodeVersion":"24.15.0","dependencies":{"decimal.js":"10.6.0","bignumber.js":"11.1.5","is-any-array":"^3.0.0","ml-array-rescale":"^2.0.0","secure-library-loader":"0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.29.0","mathjs":"^14.5.2","rollup":"^4.44.0","vitest":"^3.2.4","numeric":"^1.2.6","ml-xsadd":"^3.0.1","prettier":"^3.5.3","benchmark":"^2.1.4","csv-parse":"^5.6.0","pretty-hrtime":"^1.0.3","ml-dataset-iris":"^1.2.1","ml-sparse-matrix":"^3.1.0","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-terser":"^0.4.4","eslint-config-cheminfo":"^14.1.1","@rollup/plugin-commonjs":"^28.0.6","jest-matcher-deep-close-to":"^3.0.2","@rollup/plugin-node-resolve":"^16.0.3","@babel/plugin-transform-modules-commonjs":"^7.27.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/matrix-ops-core_1.1.0_1788175758241_0.9163093735362702"}}},"time":{"created":"2026-08-25T14:20:43.425Z","modified":"2026-08-31T11:29:18.496Z","1.0.0":"2026-08-25T14:20:43.686Z","1.0.1":"2026-08-27T15:07:59.717Z","1.0.2":"2026-08-28T02:28:47.181Z","1.0.3":"2026-08-31T10:16:20.516Z","1.0.4":"2026-08-31T10:25:14.854Z","1.1.0":"2026-08-31T11:29:18.330Z"},"bugs":{"url":"https://github.com/Ops-Core/matrix/issues"},"author":{"name":"jamesmorse82","email":"jamesmorse82@proton.me"},"license":"MIT","homepage":"https://github.com/Ops-Core/matrix","keywords":["matrix","decomposition","SVD","singular","value","EVD","eigenvalue","LU","Qr","Cholesky","data","mining","datamining","machine","learning","matrix-ops","matrix-ops-core"],"repository":{"url":"git+https://github.com/Ops-Core/matrix.git","type":"git"},"description":"Dense linear algebra for JavaScript and TypeScript","maintainers":[{"name":"jamesmorse82","email":"jamesmorse82@proton.me"}],"readme":"# matrix-ops-core\r\n\r\nDense linear algebra for JavaScript and TypeScript. Create matrices, run element-wise and matrix products, factorize, invert, and solve linear systems — all in one package.\r\n\r\nWorks in Node.js and the browser (ESM, CommonJS, and UMD).\r\n\r\n```bash\r\nnpm install matrix-ops-core\r\n```\r\n\r\n```js\r\nimport { Matrix, SVD, inverse, solve } from 'matrix-ops-core';\r\n\r\nconst X = new Matrix([\r\n  [4, 1, 2],\r\n  [1, 5, 0],\r\n  [2, 0, 3],\r\n]);\r\n\r\nX.mmul(inverse(X)); // ≈ I\r\n```\r\n\r\nRepository: [github.com/Ops-Core/matrix](https://github.com/Ops-Core/matrix)\r\n\r\n---\r\n\r\n## What you get\r\n\r\n| Area | Highlights |\r\n| --- | --- |\r\n| Construction | `new Matrix(...)`, `zeros`, `ones`, `eye`, `diag`, `rand`, row/column vectors |\r\n| Arithmetic | `add` / `sub` / `mul` / `div` / `mod`, `mmul`, `mpow`, Kronecker product |\r\n| Shape | transpose, concat, views, wrap existing typed arrays without copying |\r\n| Stats | mean, variance, norm, covariance, correlation, `applyAlongAxis` |\r\n| Factorization | LU, QR, SVD, EVD, Cholesky, NIPALS |\r\n| Solvers | `solve`, `inverse`, `pseudoInverse`, `determinant` |\r\n| Special types | `SymmetricMatrix`, `DistanceMatrix` |\r\n\r\nType definitions ship with the package (`matrix.d.ts`).\r\n\r\n---\r\n\r\n## Quick start\r\n\r\nESM:\r\n\r\n```js\r\nimport { Matrix } from 'matrix-ops-core';\r\n\r\nconst A = Matrix.eye(3);\r\nconst b = Matrix.columnVector([1, 2, 3]);\r\n```\r\n\r\nCommonJS:\r\n\r\n```js\r\nconst { Matrix } = require('matrix-ops-core');\r\n```\r\n\r\nBrowser (UMD, via unpkg / jsDelivr): `matrix.umd.js`.\r\n\r\n---\r\n\r\n## Building matrices\r\n\r\n```js\r\nimport { Matrix } from 'matrix-ops-core';\r\n\r\nconst fromRows = new Matrix([\r\n  [2, 0, -1],\r\n  [0, 3, 4],\r\n]);\r\n\r\nconst empty = Matrix.zeros(4, 4);\r\nconst identity = Matrix.eye(4);\r\nconst diagonal = Matrix.diag([3, 5, 7]);\r\nconst noise = Matrix.rand(8, 8, { random: Math.random });\r\n\r\nfromRows.rows;    // 2\r\nfromRows.columns; // 3\r\nfromRows.get(1, 2); // 4\r\nfromRows.set(0, 1, 9);\r\n```\r\n\r\n`wrap()` puts a matrix interface over an existing 1D or 2D array so you can reuse buffers:\r\n\r\n```js\r\nimport { wrap } from 'matrix-ops-core';\r\n\r\nconst buffer = Float64Array.from([1, 2, 3, 4, 5, 6]);\r\nconst view = wrap(buffer, { rows: 2 });\r\nview.set(0, 0, 10); // writes through to `buffer`\r\n```\r\n\r\n---\r\n\r\n## Arithmetic\r\n\r\nStatic methods return a new matrix. Instance methods mutate in place.\r\n\r\n```js\r\nimport { Matrix } from 'matrix-ops-core';\r\n\r\nconst P = new Matrix([\r\n  [1, 2],\r\n  [3, 4],\r\n]);\r\nconst Q = new Matrix([\r\n  [0, 5],\r\n  [6, 7],\r\n]);\r\n\r\nMatrix.add(P, Q);  // new matrix\r\nP.add(Q);          // P is updated\r\n\r\nP.mmul(Q);         // matrix product\r\nP.mul(0.5);        // scale\r\nP.mpow(3);         // P³ via exponentiation by squaring\r\n```\r\n\r\nElement-wise math follows `Math.*` names: `abs`, `exp`, `log`, `sqrt`, `sin`, `cos`, and the rest of the standard set. Call them statically (`Matrix.exp(P)`) or in place (`P.exp()`).\r\n\r\nReductions and geometry:\r\n\r\n```js\r\nP.mean();\r\nP.norm();          // Frobenius\r\nP.transpose();\r\nP.diag();\r\nP.concat(Q, 'column');\r\nP.applyAlongAxis((col) => col.reduce((s, v) => s + v, 0), 'column');\r\n```\r\n\r\n---\r\n\r\n## Linear systems\r\n\r\n```js\r\nimport { Matrix, inverse, solve, pseudoInverse, determinant } from 'matrix-ops-core';\r\n\r\nconst A = new Matrix([\r\n  [3, 1, 0],\r\n  [1, 4, 1],\r\n  [0, 1, 2],\r\n]);\r\nconst b = Matrix.columnVector([5, 6, 3]);\r\n\r\nconst x = solve(A, b);\r\nconst Ainv = inverse(A);\r\ndeterminant(A);\r\n\r\n// Rank-deficient / rectangular: SVD-based inverse\r\nconst tall = new Matrix([\r\n  [1, 0],\r\n  [1, 1],\r\n  [0, 1],\r\n]);\r\ninverse(tall, true);\r\ntall.pseudoInverse();\r\n```\r\n\r\n`solve` uses LU when the left-hand side is square and QR otherwise. Pass `true` as the third argument to force SVD (useful when the system is singular).\r\n\r\n---\r\n\r\n## Factorizations\r\n\r\n```js\r\nimport {\r\n  Matrix,\r\n  LU,\r\n  QR,\r\n  SVD,\r\n  EVD,\r\n  CHO,\r\n  NIPALS,\r\n} from 'matrix-ops-core';\r\n\r\nconst M = new Matrix([\r\n  [6, 2, 1],\r\n  [2, 5, 2],\r\n  [1, 2, 4],\r\n]);\r\n\r\nconst { lowerTriangularMatrix: L, upperTriangularMatrix: U } = new LU(M);\r\nconst { orthogonalMatrix: Q, upperTriangularMatrix: R } = new QR(M);\r\n\r\nconst svd = new SVD(M);\r\nsvd.diagonal;      // singular values\r\nsvd.leftSingularVectors;\r\nsvd.rightSingularVectors;\r\n\r\nconst evd = new EVD(M);\r\nevd.realEigenvalues;\r\nevd.eigenvectorMatrix;\r\n\r\nnew CHO(M).lowerTriangularMatrix;\r\n\r\nconst nipals = new NIPALS(M);\r\nnipals.t; // scores\r\nnipals.p; // loadings\r\n```\r\n\r\nFull class names (`LuDecomposition`, `QrDecomposition`, `SingularValueDecomposition`, …) are exported alongside the short aliases.\r\n\r\n---\r\n\r\n## Symmetric and distance matrices\r\n\r\n```js\r\nimport { SymmetricMatrix, DistanceMatrix } from 'matrix-ops-core';\r\n\r\nconst S = SymmetricMatrix.ones(4);\r\nS.set(0, 3, 2); // also sets (3, 0)\r\n\r\nconst D = DistanceMatrix.fromCompact([1.2, 0.8, 3.1]);\r\n```\r\n\r\n---\r\n\r\n## Stats helpers\r\n\r\n```js\r\nimport { Matrix, covariance, correlation } from 'matrix-ops-core';\r\n\r\nconst samples = new Matrix([\r\n  [1.0, 2.1, 0.4],\r\n  [1.2, 1.9, 0.5],\r\n  [0.8, 2.4, 0.3],\r\n  [1.1, 2.0, 0.6],\r\n]);\r\n\r\ncovariance(samples);\r\ncorrelation(samples);\r\n```\r\n\r\n---\r\n\r\n## Scripts\r\n\r\n```bash\r\nnpm test          # unit tests, eslint, prettier\r\nnpm run compile   # rollup bundles\r\n```\r\n\r\n---\r\n\r\n## License\r\n\r\n[MIT](./LICENSE) — jamesmorse82\r\n","readmeFilename":"README.md"}