Merge pull request #2094 from triska/unary_minus
ENHANCED: use (+)/2 to express unary minus
This commit is contained in:
@@ -2566,7 +2566,7 @@ parse_clpz(E, R,
|
|||||||
g(power_var_num(E, V, N)) => [p(pexp(V, N, R))],
|
g(power_var_num(E, V, N)) => [p(pexp(V, N, R))],
|
||||||
m(A*B) => [p(ptimes(A, B, R))],
|
m(A*B) => [p(ptimes(A, B, R))],
|
||||||
m(A-B) => [p(pplus(R,B,A))],
|
m(A-B) => [p(pplus(R,B,A))],
|
||||||
m(-A) => [p(ptimes(-1,A,R))],
|
m(-A) => [p(pplus(A,R,0))],
|
||||||
m(max(A,B)) => [g(A #=< #R), g(B #=< R), p(pmax(A, B, R))],
|
m(max(A,B)) => [g(A #=< #R), g(B #=< R), p(pmax(A, B, R))],
|
||||||
m(min(A,B)) => [g(A #>= #R), g(B #>= R), p(pmin(A, B, R))],
|
m(min(A,B)) => [g(A #>= #R), g(B #>= R), p(pmin(A, B, R))],
|
||||||
m(A mod B) => [g(B #\= 0), p(pmod(A, B, R))],
|
m(A mod B) => [g(B #\= 0), p(pmod(A, B, R))],
|
||||||
@@ -2824,7 +2824,7 @@ matches([
|
|||||||
m(var(X) #= var(Y)+var(Z)) => [p(pplus(Y,Z,X))],
|
m(var(X) #= var(Y)+var(Z)) => [p(pplus(Y,Z,X))],
|
||||||
m(var(X) #= var(Y)-var(Z)) => [p(pplus(X,Z,Y))],
|
m(var(X) #= var(Y)-var(Z)) => [p(pplus(X,Z,Y))],
|
||||||
m(var(X) #= var(Y)*var(Z)) => [p(ptimes(Y,Z,X))],
|
m(var(X) #= var(Y)*var(Z)) => [p(ptimes(Y,Z,X))],
|
||||||
m(var(X) #= -var(Z)) => [p(ptimes(-1, Z, X))],
|
m(var(X) #= -var(Y)) => [p(pplus(X,Y,0))],
|
||||||
m_c(any(X) #= any(Y), left_right_linsum_const(X, Y, Cs, Vs, S)) =>
|
m_c(any(X) #= any(Y), left_right_linsum_const(X, Y, Cs, Vs, S)) =>
|
||||||
[g(scalar_product_(#=, Cs, Vs, S))],
|
[g(scalar_product_(#=, Cs, Vs, S))],
|
||||||
m_c(var(X) #= abs(var(Y)) + any(V0), X == Y) => [d(V0,V),p(x_eq_abs_plus_v(X,V))],
|
m_c(var(X) #= abs(var(Y)) + any(V0), X == Y) => [d(V0,V),p(x_eq_abs_plus_v(X,V))],
|
||||||
@@ -3560,7 +3560,7 @@ parse_reified(E, R, D,
|
|||||||
m(A+B) => [d(D), p(pplus(A,B,R)), a(A,B,R)],
|
m(A+B) => [d(D), p(pplus(A,B,R)), a(A,B,R)],
|
||||||
m(A*B) => [d(D), p(ptimes(A,B,R)), a(A,B,R)],
|
m(A*B) => [d(D), p(ptimes(A,B,R)), a(A,B,R)],
|
||||||
m(A-B) => [d(D), p(pplus(R,B,A)), a(A,B,R)],
|
m(A-B) => [d(D), p(pplus(R,B,A)), a(A,B,R)],
|
||||||
m(-A) => [d(D), p(ptimes(-1,A,R)), a(R)],
|
m(-A) => [d(D), p(pplus(A,R,0)), a(R)],
|
||||||
m(max(A,B)) => [d(D), p(pgeq(R, A)), p(pgeq(R, B)), p(pmax(A,B,R)), a(A,B,R)],
|
m(max(A,B)) => [d(D), p(pgeq(R, A)), p(pgeq(R, B)), p(pmax(A,B,R)), a(A,B,R)],
|
||||||
m(min(A,B)) => [d(D), p(pgeq(A, R)), p(pgeq(B, R)), p(pmin(A,B,R)), a(A,B,R)],
|
m(min(A,B)) => [d(D), p(pgeq(A, R)), p(pgeq(B, R)), p(pmin(A,B,R)), a(A,B,R)],
|
||||||
m(abs(A)) => [d(D), g(#R#>=0), p(pabs(A, R)), a(A,R)],
|
m(abs(A)) => [d(D), g(#R#>=0), p(pabs(A, R)), a(A,R)],
|
||||||
|
|||||||
Reference in New Issue
Block a user