From 58f5a5562a76bd413a9a5b853bf2db00866c3c0a Mon Sep 17 00:00:00 2001 From: Diogo Cordeiro Date: Fri, 23 Nov 2018 00:09:07 +0000 Subject: [PATCH] All together now! --- polimani.pl | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/polimani.pl b/polimani.pl index 121d879..6235da9 100644 --- a/polimani.pl +++ b/polimani.pl @@ -14,12 +14,10 @@ * Hugo David Cordeiro Sales * up201704178@fc.up.pt * - ********************************************* * Follows 'Coding guidelines for Prolog' * * https://doi.org/10.1017/S1471068411000391 * - ********************************************* - */ + *********************************************/ /* Import the Constraint Logic Programming over Finite Domains library * Essentially, this library improves the way Prolog deals with integers, @@ -33,10 +31,11 @@ /******************************* * USER INTERFACE * *******************************/ + /* poly2list/2 transforms a list representing a polynomial (second - argument) into a polynomial represented as an expression (first argu- - ment) and vice-versa. + argument) into a polynomial represented as an expression (first + argument) and vice-versa. */ poly2list(P, L) :- polynomial_to_list(P, L). @@ -100,12 +99,12 @@ polynomial_variable(X) :- % Returns true if X is a power term, false otherwise. % power(P^N) :- -( - zcompare((<), 0, N), - polynomial_variable(P) -; - fail -). + ( + zcompare((<), 0, N), + polynomial_variable(P) + ; + fail + ). power(X) :- polynomial_variable(X). %% Tests: @@ -136,13 +135,13 @@ power(X) :- % term(N) :- number(N). - %% N in inf..sup. +%% N in inf..sup. term(X) :- power(X). term(L * R) :- term(L), term(R). - %% append_two_atoms_with_star(L, R, T). +%% append_two_atoms_with_star(L, R, T). %% Tests: %% ?- term(2*x^3). %@ true . @@ -271,19 +270,20 @@ term_to_list(P, [P2]) :- simplify_term(Term_In, Term_Out) :- term_to_list(Term_In, L), sort(0, @=<, L, L2), -( - member(0, L2), - Term_Out = 0 -; -( - length(L2, 1), - Term_Out = Term_In -); - exclude(==(1), L2, L3), - join_similar_parts_of_term(L3, L4), - sort(0, @>=, L4, L5), - term_to_list(Term_Out, L5) -), + ( + member(0, L2), + Term_Out = 0 + ; + ( + length(L2, 1), + Term_Out = Term_In + ; + exclude(==(1), L2, L3), + join_similar_parts_of_term(L3, L4), + sort(0, @>=, L4, L5), + term_to_list(Term_Out, L5) + ) + ), % First result is always the most simplified form. !. %% Tests: