File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/puissance-ken2vnf3.js.map
{"version":3,"file":"puissance-ken2vnf3.js","sources":["../../src/lib/outils/puissance.ts"],"sourcesContent":["import { round } from 'mathjs'\nimport { ecritureParentheseSiNegatif } from './ecritures'\n\n/**\n * Fonction pour écrire des notations scientifique de la forme a * b ^ n\n * @param a {number} mantisse\n * @param b {number} base\n * @param n {number} exposant\n * @author Erwan Duplessy\n */\nexport function puissance (b: number, n: number) {\n switch (b) {\n case 0:\n return '0'\n case 1:\n return '1'\n case -1:\n if (b % 2 === 0) {\n return '1'\n } else {\n return '-1'\n }\n default:\n if (b < 0) {\n return `(${b})^{${n}}`\n } else {\n return `${b}^{${n}}`\n }\n }\n}\n\nexport function ecriturePuissance (a: number, b: number, n: number) {\n switch (a) {\n case 0:\n return '$0$'\n case 1:\n return `$${puissance(b, n)}$`\n default:\n return `$${String(round(a, 3)).replace('.', '{,}')} \\\\times ${puissance(b, n)}$`.replace('.', '{,}')\n }\n}\n\n/**\n * Fonction pour simplifier les notations puissance dans certains cas\n * si la base vaut 1 ou -1 quelque soit l'exposant, retourne 1 ou -1,\n * si la base est négative on teste la parité de l'exposant pour alléger la notation sans le signe\n * si l'exposant vaut 0 ou 1 retourne 1, la base ou rien\n * @param b base\n * @param e exposant\n * @author Sébastien Lozano\n */\nexport function simpNotPuissance (b: number, e: number) {\n // on switch sur la base\n switch (b) {\n case -1: // si la base vaut -1 on teste la parité de l'exposant\n if (e % 2 === 0) {\n return ' 1'\n // break;\n } else {\n return ' -1'\n // break;\n }\n case 1: // si la base vaut 1 on renvoit toujours 1\n return ' 1'\n default: // sinon on switch sur l'exposant\n switch (e) {\n case 0: // si l'exposant vaut 0 on ranvoit toujours 1\n return '1'\n case 1: // si l'exposant vaut 1 on renvoit toujours la base\n return ` ${b}`\n default: // sinon on teste le signe de la base et la parité de l'exposant\n if (b < 0 && e % 2 === 0) { // si la base est négative et que l'exposant est pair, le signe est inutile\n return ` ${b * -1}^{${e}}`\n // break;\n } else {\n return ` ${b}^{${e}}`\n // return ` `;\n // break;\n }\n }\n }\n}\n\n/**\n * Fonction pour écrire en couleur la forme éclatée d'une puissance\n * @param b base\n * @param e exposant\n * @param couleur\n * @author Sébastien Lozano\n */\nexport function eclatePuissance (b: number, e: number, couleur: string) {\n let str\n switch (e) {\n case 0:\n return `\\\\mathbf{\\\\color{${couleur}}{1}}`\n case 1:\n return `\\\\mathbf{\\\\color{${couleur}}{${b}}}`\n default:\n str = `\\\\mathbf{\\\\color{${couleur}}{${b}}} `\n for (let i = 1; i < e; i++) {\n str = str + `\\\\times \\\\mathbf{\\\\color{${couleur}}{${b}}}`\n }\n return str\n }\n}\n\n/**\n * Fonction pour écrire la forme éclatée d'une puissance\n * @param b {number} base\n * @param e {integer} exposant\n * @author Rémi Angot\n * @return string\n */\nexport function puissanceEnProduit (b: number, e: number): string {\n let str = ''\n if (e === 0) {\n return '1'\n } else if (e === 1) {\n return `${b}`\n } else if (e > 1) {\n str = `${ecritureParentheseSiNegatif(b)}`\n for (let i = 1; i < e; i++) {\n str = str + `\\\\times ${ecritureParentheseSiNegatif(b)}`\n }\n return str\n } else if (e < 0) {\n return `\\\\dfrac{1}{${puissanceEnProduit(b, -e)}}`\n }\n return str\n}\n\n/**\n * Fonction pour simplifier l'ecriture lorsque l'exposant vaut 0 ou 1\n * retourne 1, la base ou rien\n * @param b base\n * @param e exposant\n * @author Sébastien Lozano\n */\nexport function simpExp (b: number, e: number) {\n switch (e) {\n case 1:\n return ` ${b}`\n case 0:\n return ' 1'\n default:\n return ' '\n }\n}\n"],"names":["puissance","b","n","ecriturePuissance","a","round","simpNotPuissance","e","eclatePuissance","couleur","str","i","puissanceEnProduit","ecritureParentheseSiNegatif","simpExp"],"mappings":"gDAUgB,SAAAA,EAAWC,EAAWC,EAAW,CAC/C,OAAQD,EAAG,CACT,IAAK,GACI,MAAA,IACT,IAAK,GACI,MAAA,IACT,IAAK,GACC,OAAAA,EAAI,IAAM,EACL,IAEA,KAEX,QACE,OAAIA,EAAI,EACC,IAAIA,CAAC,MAAMC,CAAC,IAEZ,GAAGD,CAAC,KAAKC,CAAC,GAEvB,CACF,CAEgB,SAAAC,EAAmBC,EAAWH,EAAWC,EAAW,CAClE,OAAQE,EAAG,CACT,IAAK,GACI,MAAA,MACT,IAAK,GACH,MAAO,IAAIJ,EAAUC,EAAGC,CAAC,CAAC,IAC5B,QACE,MAAO,IAAI,OAAOG,EAAMD,EAAG,CAAC,CAAC,EAAE,QAAQ,IAAK,KAAK,CAAC,YAAYJ,EAAUC,EAAGC,CAAC,CAAC,IAAI,QAAQ,IAAK,KAAK,CACvG,CACF,CAWgB,SAAAI,EAAkBL,EAAWM,EAAW,CAEtD,OAAQN,EAAG,CACT,IAAK,GACC,OAAAM,EAAI,IAAM,EACL,KAGA,MAGX,IAAK,GACI,MAAA,KACT,QACE,OAAQA,EAAG,CACT,IAAK,GACI,MAAA,IACT,IAAK,GACH,MAAO,IAAIN,CAAC,GACd,QACE,OAAIA,EAAI,GAAKM,EAAI,IAAM,EACd,IAAIN,EAAI,EAAE,KAAKM,CAAC,IAGhB,IAAIN,CAAC,KAAKM,CAAC,GAIxB,CACJ,CACF,CASgB,SAAAC,EAAiBP,EAAWM,EAAWE,EAAiB,CAClE,IAAAC,EACJ,OAAQH,EAAG,CACT,IAAK,GACH,MAAO,oBAAoBE,CAAO,QACpC,IAAK,GACI,MAAA,oBAAoBA,CAAO,KAAKR,CAAC,KAC1C,QACQS,EAAA,oBAAoBD,CAAO,KAAKR,CAAC,MACvC,QAASU,EAAI,EAAGA,EAAIJ,EAAGI,IACrBD,EAAMA,EAAM,4BAA4BD,CAAO,KAAKR,CAAC,KAEhD,OAAAS,CACX,CACF,CASgB,SAAAE,EAAoBX,EAAWM,EAAmB,CAChE,IAAIG,EAAM,GACV,GAAIH,IAAM,EACD,MAAA,IACT,GAAWA,IAAM,EACf,MAAO,GAAGN,CAAC,GACb,GAAWM,EAAI,EAAG,CACVG,EAAA,GAAGG,EAA4BZ,CAAC,CAAC,GACvC,QAASU,EAAI,EAAGA,EAAIJ,EAAGI,IACrBD,EAAMA,EAAM,WAAWG,EAA4BZ,CAAC,CAAC,GAEhD,OAAAS,CAAA,SACEH,EAAI,EACb,MAAO,cAAcK,EAAmBX,EAAG,CAACM,CAAC,CAAC,IAEzC,OAAAG,CACT,CASgB,SAAAI,EAASb,EAAWM,EAAW,CAC7C,OAAQA,EAAG,CACT,IAAK,GACH,MAAO,IAAIN,CAAC,GACd,IAAK,GACI,MAAA,KACT,QACS,MAAA,GACX,CACF"}