UNPKG

@macrostrat/column-components

Version:

React rendering primitives for stratigraphic columns

1 lines 2 kB
{"version":3,"file":"multiply-matrices.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/utils/multiply-matrices.js"],"sourcesContent":["// from https://www.w3.org/TR/css-color-4/multiply-matrices.js\nexport default function multiplyMatrices(A, B) {\n let m = A.length;\n\n if (!Array.isArray(A[0])) {\n // A is vector, convert to [[a, b, c, ...]]\n A = [A];\n }\n\n if (!Array.isArray(B[0])) {\n // B is vector, convert to [[a], [b], [c], ...]]\n B = B.map((x) => [x]);\n }\n\n let p = B[0].length;\n let B_cols = B[0].map((_, i) => B.map((x) => x[i])); // transpose B\n let product = A.map((row) =>\n B_cols.map((col) => {\n if (!Array.isArray(row)) {\n return col.reduce((a, c) => a + c * row, 0);\n }\n\n return row.reduce((a, c, i) => a + c * (col[i] || 0), 0);\n })\n );\n\n if (m === 1) {\n product = product[0]; // Avoid [[a, b, c, ...]]\n }\n\n if (p === 1) {\n return product.map((x) => x[0]); // Avoid [[a], [b], [c], ...]]\n }\n\n return product;\n}\n"],"names":[],"mappings":";AACe,SAAS,iBAAiB,GAAG,GAAG;AAC3C,MAAI,IAAI,EAAE;AAEV,MAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,GAAG;AAEtB,QAAI,CAAC,CAAC;AAAA,EACV;AAEA,MAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,GAAG;AAEtB,QAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAAA,EACxB;AAEA,MAAI,IAAI,EAAE,CAAC,EAAE;AACb,MAAI,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAClD,MAAI,UAAU,EAAE;AAAA,IAAI,CAAC,QACjB,OAAO,IAAI,CAAC,QAAQ;AAChB,UAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AACrB,eAAO,IAAI,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,CAAC;AAAA,MAC9C;AAEA,aAAO,IAAI,OAAO,CAAC,GAAG,GAAG,MAAM,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAAA,IAC3D,CAAC;AAAA,EACT;AAEI,MAAI,MAAM,GAAG;AACT,cAAU,QAAQ,CAAC;AAAA,EACvB;AAEA,MAAI,MAAM,GAAG;AACT,WAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAAA,EAClC;AAEA,SAAO;AACX;;","x_google_ignoreList":[0]}