Skip to content

Commit

Permalink
Fix formatting issues.
Browse files Browse the repository at this point in the history
  • Loading branch information
corywalker committed Jan 9, 2018
1 parent eeca269 commit a72666a
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 29 deletions.
4 changes: 2 additions & 2 deletions expreduce/builtin_arithmetic.go
Expand Up @@ -270,8 +270,8 @@ func getArithmeticDefinitions() (defs []Definition) {
Default: "1",
toString: func(this *Expression, params ToStringParams) (bool, string) {
ok, res := ToStringInfix(this.Parts[1:], "*", "System`Times", params)
if ok && strings.HasPrefix(res, "-1*") {
return ok, "-" + res[3:]
if ok && strings.HasPrefix(res, "(-1)*") {
return ok, "-" + res[5:]
}
return ok, res
},
Expand Down
11 changes: 10 additions & 1 deletion expreduce/ex_integer.go
Expand Up @@ -14,8 +14,17 @@ func (f *Integer) Eval(es *EvalState) Ex {
return f
}

func (f *Integer) StringForm(params ToStringParams) string {
/*func (f *Integer) StringForm(params ToStringParams) string {
return fmt.Sprintf("%d", f.Val)
}*/

func (i *Integer) StringForm(params ToStringParams) string {
if i.Val.Cmp(big.NewInt(0)) < 0 {
if needsParens("System`Times", params.previousHead) {
return fmt.Sprintf("(%d)", i.Val)
}
}
return fmt.Sprintf("%d", i.Val)
}

func (this *Integer) String() string {
Expand Down
12 changes: 6 additions & 6 deletions expreduce/resources.go

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions expreduce/resources/atoms.m
Expand Up @@ -28,9 +28,9 @@
EStringTest["10/7", "Rational[10, 7]"],
EStringTest["Rational[x, 10]", "Rational[x, 10]"],
EStringTest["10", "Rational[100, 10]"],
EStringTest["-10", "Rational[-100, 10]"],
ESameTest[-10, Rational[-100, 10]],
EStringTest["10", "Rational[-100, -10]"],
EStringTest["-5/3", "Rational[-10, 6]"],
ESameTest[-5/3, Rational[-10, 6]],
EStringTest["5/3", "Rational[-10, -6]"],
EStringTest["0", "Rational[0, 5]"],
EStringTest["Rational[0, n]", "Rational[0, n]"],
Expand Down
32 changes: 16 additions & 16 deletions expreduce/resources/power.m
Expand Up @@ -48,7 +48,7 @@
Power[b_, -Infinity] := Indeterminate;
(*Power definitions*)
(*Distribute any kind of power for numeric values in Times:*)
((first:(_Integer | _Real | _Rational)) * inner__)^pow_ := first^pow * Times[inner]^pow;
((first:(_Integer | _Real | _Rational)?((#!=-1)&)) * inner__)^pow_ := first^pow * Times[inner]^pow;
(*Otherwise, only distribute integer powers*)
(first_ * inner___)^pow_Integer := first^pow * Times[inner]^pow;
(*Rational simplifications*)
Expand All @@ -68,7 +68,7 @@
Tests`Power = {
ESimpleExamples[
EComment["Exponents of integers are computed exactly:"],
EStringTest["-1/125", "(-5)^-3"],
ESameTest[-1/125, (-5)^-3],
EComment["Floating point exponents are handled with floating point precision:"],
EStringTest["1.99506e+3010", ".5^-10000."],
EComment["Automatically apply some basic simplification rules:"],
Expand All @@ -79,36 +79,36 @@
ESameTest[ComplexInfinity, 0^(-1)]
], ETests[
(*Test raising expressions to the first power*)
EStringTest["(1 + x)", "(x+1)^1"],
ESameTest[1 + x, (x+1)^1],
EStringTest["0", "0^1"],
EStringTest["0.", "0.^1"],
EStringTest["-5", "-5^1"],
EStringTest["-5.5", "-5.5^1"],
EStringTest["(1 + x)", "(x+1)^1."],
ESameTest[-5, -5^1],
ESameTest[-5.5, -5.5^1],
ESameTest[1 + x, (x+1)^1.],
EStringTest["0", "0^1."],
EStringTest["0.", "0.^1."],
EStringTest["-5", "(-5)^1."],
EStringTest["-5.5", "-5.5^1."],
ESameTest[-5, (-5)^1.],
ESameTest[-5.5, -5.5^1.],

(*Test raising expressions to the zero power*)
EStringTest["1", "(x+1)^0"],
EStringTest["Indeterminate", "0^0"],
EStringTest["Indeterminate", "0.^0"],
EStringTest["-1", "-5^0"],
ESameTest[-1, -5^0],
EStringTest["1", "(-5)^0"],
EStringTest["1", "(-5.5)^0"],
EStringTest["1", "(x+1)^0."],
EStringTest["Indeterminate", "0^0."],
EStringTest["Indeterminate", "0.^0."],
EStringTest["-1", "-5^0."],
ESameTest[-1, -5^0.],
EStringTest["1", "(-5.5)^0."],
EStringTest["-1", "-5^0"],
ESameTest[-1, -5^0],
EStringTest["1", "99^0"],

EStringTest["125", "5^3"],
EStringTest["1/125", "5^-3"],
EStringTest["-125", "(-5)^3"],
EStringTest["-1/125", "(-5)^-3"],
ESameTest[-125, (-5)^3],
ESameTest[-1/125, (-5)^-3],

EStringTest["2.97538e+1589", "39^999."],
EStringTest["3.36092e-1590", "39^-999."],
Expand All @@ -125,16 +125,16 @@
EStringTest["1.", "1^99999992."],
EStringTest["1.", "1.^30"],
EStringTest["4.", "(1.*2*1.)^2"],
EStringTest["-1", "(-1)^1"],
ESameTest[-1, (-1)^1],
EStringTest["1", "(-1)^2"],
EStringTest["1", "(-1)^0"],
EStringTest["1", "(-1)^0"],
EStringTest["-1", "(-1)^-1"],
ESameTest[-1, (-1)^-1],
EStringTest["1", "(-1)^-2"],
EStringTest["1", "(-1)^99999992"],
EStringTest["1.", "(-1.)^30"],
EStringTest["4.", "(1.*2*-1.)^2"],
EStringTest["-0.5", "(1.*2*-1.)^(-1)"],
ESameTest[-0.5, (1.*2*-1.)^(-1)],

ESameTest[Rational, Power[2, -1] // Head],
ESameTest[Integer, Power[1, -1] // Head],
Expand Down
2 changes: 0 additions & 2 deletions expreduce/resources/solve.m
Expand Up @@ -6,8 +6,6 @@
containsOneOccurrence[eqn_Equal, var_Symbol] :=
Count[eqn, var, -1] == 1;

(* Return a function that can help isolate var from expr: *)

applyInverse[lhs_Plus -> rhs_, var_Symbol] := Module[{nonVarParts},
nonVarParts = Select[lhs, (countVar[#, var] === 0) &];
varParts = Select[lhs, (countVar[#, var] =!= 0) &];
Expand Down

0 comments on commit a72666a

Please sign in to comment.