úÎ/¼)Ð/      !"#$%&'()*+,-.,Equation solver and calculator à la metafont(c) Kristof Bastiaensen, 2015BSD-3kristof@resonata.beunstableportableNone 0FAn error type for &, , and solveEq:i: The equation was reduced to the redundant equation 0 == 0, which means it doesn't add any information. a‘: The equation was reduced to the impossible equation `a == 0` for nonzero a, which means the equation is inconsistent with previous equations.yAn opaque datatype containing the dependencies of each variable. A variable who's dependency is just a number is called known;. A variables which depends on other variables is called  dependend=. A variable which is neither known or dependend is called  independend'. A variable can only depend on other  independendf variables. It also contains nonlinear equations which it couldn't reduce to a linear equation yet./ An angular function of the form c + n*sin(theta + alpha) where theta, and n are linear terms, alpha and c are constants.8A linear expression of several variables. For example:  2*a + 3*b + 2 would be represented as LinExpr 2 [(a, 2), (b, 3)].0An mathematical expression of several variables. 0A simplified datatype representing an expression" Convert an  to a  .#$Create an expression from a constant$$Create an expression from a variable%An empty set of dependencies.&YMake the expressions on both sides equal, and add the result to the Set of dependencies.'2Return True if the variable is known or dependend.(7Return all dependend variables with their dependencies.)Return all known variables.*mReturn the value of the variable, or a list of variables it depends on. Only linear dependencies are shown.+#Give all nonlinear equations as an  equal to 0.,ÍMake the pairs of expressions on both sides equal, and add the result to the Set of dependencies. No error is signaled if the equation for one of the sides is redundant for example in (x, 0) == (y, 0).-dSolve a list of equations in order. Returns either a new set of dependencies, or signals an error..!Show all variables and equations.0@A simple String wrapper, which will print formulas more cleanly.t123/456789:;<  !=>?@ABC"DE#$FGHIJKLMNOPQRSTUVWXYZ[\%]&^_`abc'()*d+,-.efghijklm0nopqrs/  !"#$%&'()*+,-./ ! *)'+("%$#&,-.T123/476589:;<  ! =>?@ABC"DE#$FGHIJKLMNOPQRSTUVWXYZ[\%]&^_`abc'()*d+,-.efghijklm0nopqrs&,t      !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq mfsolve-0.1.0 Math.MFSolveDepError RedundantEqInconsistentEq DependenciesLinExprExpr SimpleVar SimpleExprConstVarSEUnSEBinUnaryOpAtanAcoshAsinhAcosAsinSinhTanAtanhCoshCosLogExpSignumRecipAbsSinBinaryOpMulAdd simpleExpr makeConstant makeVariable emptyDeps=== varDefined dependendVars knownVarsgetKnown nonlinearEqs=&=solveEqsshowVars LinearMap$fShowSimpleVarTrigEq2TrigEq NonLinExprSinExpMulExpUnaryAppTrigTerm AmplitudePhasePeriodUnaryFun withParens addSimple linToSimple trigToSimplenonlinToSimplezeroTermlinExprtrigExpr nonlinExprgetConstgetLin getConstExpraddLinaddExprmerge addTrigTerms addTrigTermtermIsMultiple compareTerm compareBy mulLinExpr mulConstTrig mulLinTrigmulExprsinExprunExpr substVarLinsubstVarNonLin substVarTrigsubst simpleSubstaddEqsaddEqselectaddEq0dmodsplitMax trigToExpr$fShowDepError$fShowDependencies$fFloatingExpr$fFractionalExpr $fNumExpr $fShowUnaryOp$fShowBinaryOp$fShowSimpleExpr $fShowExpr$fHashableSimpleVar$fHashableExpr$fHashableUnaryOp$fHashableUnaryFun$fHashableNonLinExpr$fHashableLinExpr