Add formal header
This commit is contained in:
parent
5b4b38e0f9
commit
3089daf645
66
polimani.pl
66
polimani.pl
@ -1,13 +1,32 @@
|
|||||||
%% -*- mode: prolog-*-
|
%% -*- mode: prolog-*-
|
||||||
%% vim: set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
|
%% vim: set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
|
||||||
%% Follows 'Coding guidelines for Prolog' - Theory and Practice of Logic Programming
|
|
||||||
%% https://doi.org/10.1017/S1471068411000391
|
|
||||||
|
|
||||||
%% Import the Constraint Logic Programming over Finite Domains lybrary
|
/**
|
||||||
%% Essentially, this library improves the way Prolog deals with integers,
|
*
|
||||||
%% allowing more predicates to be reversible.
|
* polimani.pl
|
||||||
%% For instance, number(N) is always false, which prevents the
|
*
|
||||||
%% reversing of a predicate.
|
* Assignment 1 - Polynomial Manipulator
|
||||||
|
* Programming in Logic - DCC-FCUP
|
||||||
|
*
|
||||||
|
* Diogo Peralta Cordeiro
|
||||||
|
* up201705417@fc.up.pt
|
||||||
|
*
|
||||||
|
* 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 lybrary
|
||||||
|
Essentially, this library improves the way Prolog deals with integers,
|
||||||
|
allowing more predicates to be reversible.
|
||||||
|
For instance, number(N) is always false, which prevents the
|
||||||
|
reversing of a predicate.
|
||||||
|
*/
|
||||||
:- use_module(library(clpfd)).
|
:- use_module(library(clpfd)).
|
||||||
|
|
||||||
%% polynomial_variable_list(-List) is det
|
%% polynomial_variable_list(-List) is det
|
||||||
@ -388,26 +407,6 @@ polynomial_to_list(T, [T]) :-
|
|||||||
%%?- polynomial_to_list(P, [x^2, x, -2.3]).
|
%%?- polynomial_to_list(P, [x^2, x, -2.3]).
|
||||||
%@ P = -2.3+x+x^2 .
|
%@ P = -2.3+x+x^2 .
|
||||||
|
|
||||||
%% %% list_to_polynomial(+P:polynomial, -L:List)
|
|
||||||
%% %
|
|
||||||
%% % Converts a list in a polynomial.
|
|
||||||
%% % TODO: not everything is a +, there are -
|
|
||||||
%% %
|
|
||||||
%% list_to_polynomial([T1|T2], P) :-
|
|
||||||
%% list_to_polynomial(T2, L1),
|
|
||||||
%% (
|
|
||||||
%% not(L1 = []),
|
|
||||||
%% P = L1+T1
|
|
||||||
%% ;
|
|
||||||
%% P = T1
|
|
||||||
%% ),
|
|
||||||
%% % The others computations are semantically meaningless
|
|
||||||
%% !.
|
|
||||||
%% list_to_polynomial(T, P) :-
|
|
||||||
%% P = T.
|
|
||||||
%% %% Tests:
|
|
||||||
%% %% TODO
|
|
||||||
|
|
||||||
%% append_two_atoms_with_star(+V1, +V2, -R) is det
|
%% append_two_atoms_with_star(+V1, +V2, -R) is det
|
||||||
%
|
%
|
||||||
% Returns R = V1 * V2
|
% Returns R = V1 * V2
|
||||||
@ -441,6 +440,15 @@ scale_polynomial(P, C, S) :-
|
|||||||
%@ S = 2*3*x^2.
|
%@ S = 2*3*x^2.
|
||||||
%@ S = 2*(3*x^2).
|
%@ S = 2*(3*x^2).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* CENAS DO PROF: */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%% monomial_parts(X, Y, Z)
|
%% monomial_parts(X, Y, Z)
|
||||||
%
|
%
|
||||||
% TODO Maybe remove
|
% TODO Maybe remove
|
||||||
@ -503,7 +511,3 @@ closure_simplify_polynomial(P, P3) :-
|
|||||||
closure_simplify_polynomial(P2, P3),
|
closure_simplify_polynomial(P2, P3),
|
||||||
!.
|
!.
|
||||||
|
|
||||||
list_to_term([N | NS], N * L) :-
|
|
||||||
number(N),
|
|
||||||
term_to_list(L, NS).
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user