(u: Expression, x: string)
| 349 | if (m0 === null || m1 === null) return null; |
| 350 | return [ |
| 351 | ...m0, |
| 352 | ...m1.map(([c, d]) => [c.neg(), d] as [Expression, number]), |
| 353 | ]; |
| 354 | } |
| 355 | case 'Divide': { |
| 356 | if (ops[1].has(x)) return null; |
| 357 | const m = monomialsX(ops[0], x); |
| 358 | return m === null ? null : m.map(([c, d]) => [c.div(ops[1]), d]); |
| 359 | } |
| 360 | case 'Power': { |
| 361 | const e = realNum(ops[1]); |
| 362 | if (e === null || !Number.isInteger(e) || e < 0) return null; |
no test coverage detected