From d9d350e92027209768e2fb0199e84ac10b969987 Mon Sep 17 00:00:00 2001 From: Kevin Barabash Date: Thu, 17 Oct 2024 08:16:01 -0400 Subject: [PATCH] hoist isAdd helper --- packages/kas/src/nodes.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/kas/src/nodes.ts b/packages/kas/src/nodes.ts index 42aafc9eec..fd0f9dc7b5 100644 --- a/packages/kas/src/nodes.ts +++ b/packages/kas/src/nodes.ts @@ -77,6 +77,10 @@ function isExpr(arg: string | Expr): arg is Expr { return arg instanceof Expr; } +const isAdd = function (term: Expr): term is Add { + return term instanceof Add; +}; + function isRational(arg: Expr): arg is Rational { return arg instanceof Rational; } @@ -997,10 +1001,6 @@ export class Mul extends Seq { // expand numerator and denominator separately expand(): Expr { - const isAdd = function (term: Expr): term is Add { - return term instanceof Add; - }; - const isInverse = function (term: Expr): term is Pow { return term instanceof Pow && term.exp.isNegative(); }; @@ -2742,20 +2742,19 @@ export class Eq extends Expr { // TODO(alex): Make it an option to only divide by variables/expressions // guaranteed to be nonzero divideThrough(expr: Expr) { - var isInequality = !this.isEquality(); + const isInequality = !this.isEquality(); - var simplified = expr.simplify({once: true}); - var factored = simplified.factor({keepNegative: isInequality}); + const simplified = expr.simplify({once: true}); + const factored = simplified.factor({keepNegative: isInequality}); if (!(factored instanceof Mul)) { return expr; } - var terms = factored.terms; + const terms = factored.terms; - var isAdd = (term: Expr): term is Add => term instanceof Add; - var hasVar = (term: Expr) => !!term.getVars().length; - var isOne = (term: Expr) => term.equals(NumOne); + const hasVar = (term: Expr) => !!term.getVars().length; + const isOne = (term: Expr) => term.equals(NumOne); const [adds, others] = partition(terms, isAdd);