This commit is contained in:
Vitor Santos Costa
2017-04-07 23:10:59 +01:00
parent a9f02dddca
commit faf3c930c8
86 changed files with 901 additions and 642 deletions

View File

@@ -1,13 +1,15 @@
% File : apply_macros.yap
% Author : E. Alphonse from code by Joachim Schimpf
% Updated: 15 June 2002
% Purpose: Macros to apply a predicate to all elements
%% @file apply_macros.yap
%% @author E. Alphonse from code by Joachim Schimpf
%% @date 15 June 2002
%% @nrief Purpose: Macros to apply a predicate to all elements
% of a list or to all sub-terms of a term.
:- module(apply_macros, []).
/** @defgroup apply_macros Apply Interface to maplist
/**
@defgroup apply_macros Apply Interface to maplist
@ingroup library
@{

View File

@@ -7,21 +7,10 @@
*/
:- module(arg,
[
genarg/3,
arg0/3,
genarg0/3,
args/3,
args0/3,
% project/3
path_arg/3
]).
/**
* @defgroup arg Term Argument Manipulation.
*
@defgroup arg Term Argument Manipulation.
@ingroup @library
@@ -45,6 +34,19 @@ This file has been included in the YAP library by Vitor Santos Costa, 2008. No e
genarg/3.
*/
:- module(arg,
[
genarg/3,
arg0/3,
genarg0/3,
args/3,
args0/3,
% project/3
path_arg/3
]).
/**
* @pred arg0( +_Index_, +_Term_ , -_Arg_ )
*
@@ -161,5 +163,7 @@ path_arg([Index|Indices], Term, SubTerm) :-
genarg(Index, Term, Arg),
path_arg(Indices, Arg, SubTerm).
%%@}
%%% @}
/** @} */

View File

@@ -474,4 +474,4 @@ write_explicit.
write(NodeConnection), nl.
*/
%% @}
%% @} @}

View File

@@ -703,3 +703,6 @@ vertices_without_children((V-[]).Pairs, V.Vertices) :-
vertices_without_children(Pairs, Vertices).
vertices_without_children(_V-[_|_].Pairs, Vertices) :-
vertices_without_children(Pairs, Vertices).
%% @}/** @} */

View File

@@ -15,7 +15,7 @@
@file swi.h
@defgroup swi-c-interface SWI-Prolog Foreign Language Interface
@ingroup ChYInterface
@ingroup fli_c_cx
*
* @tableofcontents

View File

@@ -9,7 +9,7 @@
* It assumes simple queries and a contiguous interval,
* and does not really expect to do non-trivial
* constraint propagation and solving.
*
*
*
*/
:- module(exo_interval,
@@ -33,7 +33,9 @@
op(700, xfx, (#=))]).
/** @defgroup exo_interval Exo Intervals
/**
@defgroup exo_interval Exo Intervals
@ingroup library
@{
@@ -236,3 +238,5 @@ expand_op(A1, A2, A3) :-
A1 == max -> A3 = max; A2 == max -> A3 = max;
A3 = any
).
%% @}

View File

@@ -586,4 +586,4 @@ defined_flag(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, H
nonvar(FlagName), nonvar(FlagGroup),
'$defined_flag$'(FlagName, FlagGroup, FlagType, DefaultValue, Description, Access, Handler).
%%@}
%% @}

View File

@@ -1,5 +1,5 @@
/**
* @file hacks.yap
* @file library/hacks.yap
* @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @date Tue Nov 17 19:00:25 2015
*

View File

@@ -279,3 +279,5 @@ Succeeds if _Heap_ is an empty heap.
empty_heap(t(0,[],t)).
/** @} */

View File

@@ -217,3 +217,5 @@ message and _Data_ with the message itself.
mpi_msg_size(Term, Size) :-
terms:export_term(Term, Buf, Size),
terms:kill_exported_term(Buf).
/** @} */

View File

@@ -16,7 +16,7 @@
*************************************************************************/
/**
* @file listing.yap
* @file library/listing.yap
* @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @date Tue Nov 17 22:03:59 2015
*

View File

@@ -3,6 +3,10 @@
* @author Bob Welham, Lawrence Byrd, and R. A. O'Keefe. Contributions from Vitor Santos Costa, Jan Wielemaker and others.
* @date 1999
*
* @addtogroup library The Prolog Library
*
* @{
*
* @brief List Manipulation Predicates
*
*
@@ -621,3 +625,5 @@ close_list([_|T]) :-
%% @}
/** @} */

View File

@@ -1,5 +1,5 @@
/**
* @file mapargs.yap
* @file library/mapargs.yap
* @author Lawrence Byrd + Richard A. O'Keefe, VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @author : E. Alphonse from code by Joachim Schimpf, Jan Wielemaker, Vitor Santos Costa
* @date 4 August 1984 and Ken Johnson 11-8-87

View File

@@ -331,7 +331,7 @@ maplist(Pred, [A1|L1], [A2|L2], [A3|L3], [A4|L4]) :-
maplist(Pred, L1, L2, L3, L4).
/**
convlist(: _Pred_, + _ListIn_, ? _ListOut_) @anchor convlist
convlist(: _Pred_, + _ListIn_, ? _ListOut_) @anchor convlist3
A combination of maplist/3 and selectlist/3: creates _ListOut_ by
applying the predicate _Pred_ to all list elements on which
@@ -355,7 +355,7 @@ convlist(Pred, [_|Olds], News) :-
convlist(Pred, Olds, News).
/**
convlist(: Pred, ? ListIn, ?ExtraList, ? ListOut) @anchor convlist
convlist(: Pred, ? ListIn, ?ExtraList, ? ListOut) @anchor convlist5
A combination of maplist/4 and selectlist/3: _ListIn_, _ListExtra_,
and _ListOut_ are the sublists so that the predicate _Pred_ succeeds.

View File

@@ -324,3 +324,5 @@ build_string([S0|S],[C|Lf],L0) :-
process_arg_entry([],[]) :- !.
process_arg_entry(L,['('|L]).
/** @} */

View File

@@ -1399,3 +1399,5 @@ ints(A,B,O) :-
( A > B -> O = [] ; O = [A|L], A1 is A+1, ints(A1,B,L) ).
zero(_, 0).
/** @} */

View File

@@ -228,3 +228,5 @@ Unify _Size_ with the number of elements in the queue _Queue_.
*/
/** @} */

View File

@@ -497,3 +497,5 @@ ord_memberchk(Element, [E|_]) :- E == Element, !.
ord_memberchk(Element, [_|Set]) :-
ord_memberchk(Element, Set).
/** @} */

View File

@@ -283,3 +283,5 @@ queue_to_list(Front, Back, Ans) :-
queue_to_list([Head|Front], Back, [Head|Tail]) :-
queue_to_list(Front, Back, Tail).
/** @} */

View File

@@ -218,3 +218,5 @@ setrand(rand(X,Y,Z)) :-
getrand(rand(X,Y,Z)) :-
getrand(X,Y,Z).
/** @} */

View File

@@ -49,12 +49,11 @@
rb_in/3
]).
%%! @{
/**
* @defgroup rbtrees Red-Black Trees
* @ingroup library
@{
Red-Black trees are balanced search binary trees. They are named because
nodes can be classified as either red or black. The code we include is
based on "Introduction to Algorithms", second edition, by Cormen,
@@ -96,8 +95,8 @@ form colour(Left, Key, Value, Right), where _colour_ is one of =red= or
:- pred next(tree(K,V),K,pair(K,V),V,tree(K,V)).
*/
%% @pred rb_new(-T) is det.
% create an empty tree.
%% rb_new(-T) is det.
%
% Create a new Red-Black tree.
%
@@ -107,12 +106,12 @@ rb_new(t(Nil,Nil)) :- Nil = black('',_,_,'').
rb_new(K,V,t(Nil,black(Nil,K,V,Nil))) :- Nil = black('',_,_,'').
%% rb_empty(?T) is semidet.
%% @pred rb_empty(?T) is semidet.
%
% Succeeds if T is an empty Red-Black tree.
rb_empty(t(Nil,Nil)) :- Nil = black('',_,_,'').
%% rb_lookup(+Key, -Value, +T) is semidet.
%% @pred rb_lookup(+Key, -Value, +T) is semidet.
%
% Backtrack through all elements with key Key in the Red-Black
% tree T, returning for each the value Value.
@@ -135,7 +134,7 @@ lookup(<, K, V, Tree) :-
lookup(=, _, V, Tree) :-
arg(3,Tree,V).
%% rb_min(+T, -Key, -Value) is semidet.
%% @pred rb_min(+T, -Key, -Value) is semidet.
%
% Key is the minimum key in T, and is associated with Val.
@@ -149,7 +148,7 @@ min(red(Right,_,_,_), Key, Val) :-
min(black(Right,_,_,_), Key, Val) :-
min(Right,Key,Val).
%% rb_max(+T, -Key, -Value) is semidet.
%% @pred rb_max(+T, -Key, -Value) is semidet.
%
% Key is the maximal key in T, and is associated with Val.
@@ -163,7 +162,7 @@ max(red(_,_,_,Left), Key, Val) :-
max(black(_,_,_,Left), Key, Val) :-
max(Left,Key,Val).
%% rb_next(+T, +Key, -Next,-Value) is semidet.
%% @pred rb_next(+T, +Key, -Next,-Value) is semidet.
%
% Next is the next element after Key in T, and is associated with
% Val.
@@ -193,7 +192,7 @@ next(=, _, _, _, NK, Val, Tree, Candidate) :-
Candidate = (NK-Val)
).
%% rb_previous(+T, +Key, -Previous, -Value) is semidet.
%% @pred rb_previous(+T, +Key, -Previous, -Value) is semidet.
%
% Previous is the previous element after Key in T, and is
% associated with Val.
@@ -223,8 +222,8 @@ previous(=, _, _, _, K, Val, Tree, Candidate) :-
Candidate = (K-Val)
).
%% rb_update(+T, +Key, +NewVal, -TN) is semidet.
%% rb_update(+T, +Key, ?OldVal, +NewVal, -TN) is semidet.
%% @pred rb_update(+T, +Key, +NewVal, -TN) is semidet.
%% @pred rb_update(+T, +Key, ?OldVal, +NewVal, -TN) is semidet.
%
% Tree TN is tree T, but with value for Key associated with
% NewVal. Fails if it cannot find Key in T.
@@ -263,8 +262,8 @@ update(red(Left,Key0,Val0,Right), Key, OldVal, Val, NewTree) :-
update(Right, Key, OldVal, Val, NewRight)
).
%% rb_rewrite(+T, +Key, +NewVal) is semidet.
%% rb_rewrite(+T, +Key, ?OldVal, +NewVal) is semidet.
%% @pred rb_rewrite(+T, +Key, +NewVal) is semidet.
%% @pred rb_rewrite(+T, +Key, ?OldVal, +NewVal) is semidet.
%
% Tree T has value for Key associated with
% NewVal. Fails if it cannot find Key in T.
@@ -288,7 +287,7 @@ rewrite(Node, Key, OldVal, Val) :-
;
rewrite(Right, Key, OldVal, Val)
).
rewrite(Node, Key, OldVal, Val) :-
rewrite(Node, Key, OldVal, Val) :-
Node = red(Left,Key0,Val0,Right),
Left \= [],
compare(Cmp,Key0,Key),
@@ -305,7 +304,7 @@ rewrite(Node, Key, OldVal, Val) :-
rewrite(Right, Key, OldVal, Val)
).
%% rb_apply(+T, +Key, :G, -TN) is semidet.
%% @pred rb_apply(+T, +Key, :G, -TN) is semidet.
%
% If the value associated with key Key is Val0 in T, and if
% call(G,Val0,ValF) holds, then TN differs from T only in that Key

View File

@@ -213,3 +213,5 @@ process_opt(I,_,G) :-
throw(error(domain_error(flag_value,regexp_options+I),G)).
/** @} */

View File

@@ -3,8 +3,6 @@
* @author Nuno A. Fonseca
* @date 2008-03-26 23:05:22
*
* @brief Range-List (RL) tree data structure implementation for YAP
*
*
*/
@@ -23,10 +21,10 @@
/**
* @defgroup rltrees
* @defgroup rltrees Range-List (RL) trees
* @ingroup library
*
* Range-List (RL) tree data structure implementation for YAP
* @brief Range-List (RL) tree data structure implementation for YAP
*/

View File

@@ -274,3 +274,5 @@ join(Left-n(Y, VY, n(X, VX, C, B), NL), n(X, VX, C, n(Y, VY, B, n(Z, VZ, A1, A2)
splay_init(_).
/** @} */

View File

@@ -811,3 +811,5 @@ read_link(P,D,F) :-
read_link(P, D),
absolute_file_name(D, [], F).
/** @} */

View File

@@ -154,3 +154,5 @@ subsumes_chk(X,Y) :-
/** @} */

View File

@@ -102,3 +102,6 @@ time_out(Goal, Time, Result) :-
time_out,
Result0 = time_out ),
Result = Result0.
%% @}

View File

@@ -243,6 +243,5 @@ tree_to_list(Tree, List) :-
list(0, []).
list(N, [N|L]) :- M is N-1, list(M, L).
%% @}/** @} */

View File

@@ -222,3 +222,6 @@ trie_to_depth_breadth_trie(Trie, DepthBreadthTrie, FinalLabel, OptimizationLevel
trie_to_depth_breadth_trie(Trie, DepthBreadthTrie, FinalLabel, OptimizationLevel, StartCounter, EndCounter) :-
trie_depth_breadth(Trie, DepthBreadthTrie, FinalLabel, OptimizationLevel, StartCounter, EndCounter).
%% @}

View File

@@ -861,3 +861,5 @@ ugraph_union(<, Head1, Tail1, Head2, Tail2, [Head1|Union]) :-
ugraph_union(>, Head1, Tail1, Head2, Tail2, [Head2|Union]) :-
ugraph_union([Head1|Tail1], Tail2, Union).
%% @}

View File

@@ -276,3 +276,5 @@ expand_component([_|Children], Map1, Map, Graph1, NGraph) :-
pick_node(Graph,Node,Children,Graph1) :-
rb_in(Node,Children,Graph), !,
rb_delete(Graph, Node, Graph1).
%% @}

View File

@@ -3,102 +3,45 @@
* @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @date 2006
*
*
*/
:- module( wdgraphs,
[
wdgraph_new/1,
wdgraph_add_edge/5,
wdgraph_add_edges/3,
wdgraph_add_vertices_and_edges/4,
wdgraph_del_edge/5,
wdgraph_del_edges/3,
wdgraph_del_vertex/3,
wdgraph_del_vertices/3,
wdgraph_edge/4,
wdgraph_to_dgraph/2,
dgraph_to_wdgraph/2,
wdgraph_neighbors/3,
wdgraph_neighbours/3,
wdgraph_wneighbors/3,
wdgraph_wneighbours/3,
wdgraph_transpose/2,
wdgraph_transitive_closure/2,
wdgraph_symmetric_closure/2,
wdgraph_top_sort/2,
wdgraph_min_path/5,
wdgraph_min_paths/3,
wdgraph_max_path/5,
wdgraph_path/3,
wdgraph_reachable/3]).
/**
* @defgroup wdgraphs Weighted Directed Graphs
* @ingroup library
*
* @brief Weighted Directed Graph Processing Utilities.
*
* @{
*
*/
:- module( wdgraphs,
[
wdgraph_new/1,
wdgraph_add_edge/5,
wdgraph_add_edges/3,
wdgraph_add_vertices_and_edges/4,
wdgraph_del_edge/5,
wdgraph_del_edges/3,
wdgraph_del_vertex/3,
wdgraph_del_vertices/3,
wdgraph_edge/4,
wdgraph_to_dgraph/2,
dgraph_to_wdgraph/2,
wdgraph_neighbors/3,
wdgraph_neighbours/3,
wdgraph_wneighbors/3,
wdgraph_wneighbours/3,
wdgraph_transpose/2,
wdgraph_transitive_closure/2,
wdgraph_symmetric_closure/2,
wdgraph_top_sort/2,
wdgraph_min_path/5,
wdgraph_min_paths/3,
wdgraph_max_path/5,
wdgraph_path/3,
wdgraph_reachable/3]).
:- module( wdgraphs,
[
wdgraph_new/1,
wdgraph_add_edge/5,
wdgraph_add_edges/3,
wdgraph_add_vertices_and_edges/4,
wdgraph_del_edge/5,
wdgraph_del_edges/3,
wdgraph_del_vertex/3,
wdgraph_del_vertices/3,
wdgraph_edge/4,
wdgraph_to_dgraph/2,
dgraph_to_wdgraph/2,
wdgraph_neighbors/3,
wdgraph_neighbours/3,
wdgraph_wneighbors/3,
wdgraph_wneighbours/3,
wdgraph_transpose/2,
wdgraph_transitive_closure/2,
wdgraph_symmetric_closure/2,
wdgraph_top_sort/2,
wdgraph_min_path/5,
wdgraph_min_paths/3,
wdgraph_max_path/5,
wdgraph_path/3,
wdgraph_reachable/3]).
/**
* @defgroup wdgraphs Weighted Directed Graph Processing Utilities.
:- module( wdgraphs,
[
wdgraph_new/1,
wdgraph_add_edge/5,
wdgraph_add_edges/3,
wdgraph_add_vertices_and_edges/4,
wdgraph_del_edge/5,
wdgraph_del_edges/3,
wdgraph_del_vertex/3,
wdgraph_del_vertices/3,
wdgraph_edge/4,
wdgraph_to_dgraph/2,
dgraph_to_wdgraph/2,
wdgraph_neighbors/3,
wdgraph_neighbours/3,
wdgraph_wneighbors/3,
wdgraph_wneighbours/3,
wdgraph_transpose/2,
wdgraph_transitive_closure/2,
wdgraph_symmetric_closure/2,
wdgraph_top_sort/2,
wdgraph_min_path/5,
wdgraph_min_paths/3,
wdgraph_max_path/5,
wdgraph_path/3,
wdgraph_reachable/3]).
/**
* @defgroup wdgraphs
/**
* @defgroup wdgraphs Weighted Directed Graph Processing Utilities.
* @ingroup library
*
*/
*/
:- reexport(library(dgraphs),
@@ -527,3 +470,5 @@ reachable([V-_|Vertices], Done0, DoneF, G, [V|EdgesF], Edges0) :-
rb_insert(Done0, V, [], Done1),
reachable(Kids, Done1, DoneI, G, EdgesF, EdgesI),
reachable(Vertices, DoneI, DoneF, G, EdgesI, Edges0).
%% @}

View File

@@ -3,8 +3,6 @@
* @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @date 2006
*
* @brief Weighted Graph Processing Utilities.
*
*
*/
@@ -19,8 +17,11 @@ SICStus compatible wgraphs.yap
).
/**
* @defgroup wgraphs
* @ingroup library
* @defgroup wgraphs Weighted Graphs
* @ingroup library
* @brief Weighted Graph Processing Utilities.
*
* @{
*/
@@ -56,3 +57,5 @@ vertices_edges_to_wgraph(Vertices, Edges, Graph) :-
wdgraph_add_vertices_and_edges(G0, Vertices, Edges, Graph).
%% @}

View File

@@ -2,10 +2,11 @@
* @file wundgraphs.yap
* @author VITOR SANTOS COSTA <vsc@VITORs-MBP.lan>
* @date 2006
*
* @brief Directed Graph Processing Utilities.
*
*
*/
:- module( wundgraphs,
[
wundgraph_add_edge/5,
@@ -16,14 +17,16 @@
wundgraph_edges/2,
wundgraph_neighbours/3,
wundgraph_neighbors/3,
wundgraph_wneighbours/3,
wundgraph_wneighbours/3,
wundgraph_wneighbors/3,
wundgraph_min_tree/3,
wundgraph_max_tree/3]).
/**
* @defgroup wundgraphs
* @defgroup wundgraphs Weighted Undirected Graphs
* @ingroup library
*
* @brief Weighted Undirected Graph Processing Utilities.
*/