{"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]}