export TermToStream
This commit is contained in:
parent
a57cd039d8
commit
14bdc262df
@ -334,6 +334,7 @@
|
|||||||
#include "clause.h"
|
#include "clause.h"
|
||||||
#include "yapio.h"
|
#include "yapio.h"
|
||||||
#include "attvar.h"
|
#include "attvar.h"
|
||||||
|
#include "SWI-Stream.h"
|
||||||
#if HAVE_STDARG_H
|
#if HAVE_STDARG_H
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#endif
|
#endif
|
||||||
@ -458,6 +459,7 @@ X_API int STD_PROTO(YAP_GoalHasException,(Term *));
|
|||||||
X_API void STD_PROTO(YAP_ClearExceptions,(void));
|
X_API void STD_PROTO(YAP_ClearExceptions,(void));
|
||||||
X_API int STD_PROTO(YAP_ContinueGoal,(void));
|
X_API int STD_PROTO(YAP_ContinueGoal,(void));
|
||||||
X_API void STD_PROTO(YAP_PruneGoal,(void));
|
X_API void STD_PROTO(YAP_PruneGoal,(void));
|
||||||
|
X_API IOSTREAM *STD_PROTO(YAP_TermToStream,(Term));
|
||||||
X_API IOSTREAM *STD_PROTO(YAP_InitConsult,(int, char *));
|
X_API IOSTREAM *STD_PROTO(YAP_InitConsult,(int, char *));
|
||||||
X_API void STD_PROTO(YAP_EndConsult,(IOSTREAM *));
|
X_API void STD_PROTO(YAP_EndConsult,(IOSTREAM *));
|
||||||
X_API Term STD_PROTO(YAP_Read, (IOSTREAM *));
|
X_API Term STD_PROTO(YAP_Read, (IOSTREAM *));
|
||||||
@ -2487,6 +2489,22 @@ YAP_InitConsult(int mode, char *filename)
|
|||||||
return st;
|
return st;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
X_API IOSTREAM *
|
||||||
|
YAP_TermToStream(Term t)
|
||||||
|
{
|
||||||
|
CACHE_REGS
|
||||||
|
IOSTREAM *s;
|
||||||
|
int rc;
|
||||||
|
BACKUP_MACHINE_REGS();
|
||||||
|
|
||||||
|
if ( (rc=PL_get_stream_handle(Yap_InitSlot(t PASS_REGS), &s)) ) {
|
||||||
|
RECOVER_MACHINE_REGS();
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
RECOVER_MACHINE_REGS();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
X_API void
|
X_API void
|
||||||
YAP_EndConsult(IOSTREAM *s)
|
YAP_EndConsult(IOSTREAM *s)
|
||||||
{
|
{
|
||||||
|
@ -1035,6 +1035,7 @@ win32main(rlc_console c, int argc, TCHAR **argv)
|
|||||||
if ( !PL_initialise(argc, av) )
|
if ( !PL_initialise(argc, av) )
|
||||||
PL_halt(1);
|
PL_halt(1);
|
||||||
|
|
||||||
|
rlc_bind_terminal(c);
|
||||||
PL_halt(PL_toplevel() ? 0 : 1);
|
PL_halt(PL_toplevel() ? 0 : 1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1050,7 +1051,6 @@ int PASCAL
|
|||||||
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
||||||
LPSTR lpszCmdLine, int nCmdShow)
|
LPSTR lpszCmdLine, int nCmdShow)
|
||||||
{ LPTSTR cmdline;
|
{ LPTSTR cmdline;
|
||||||
fprintf(stderr,"Hello\n");
|
|
||||||
|
|
||||||
InitializeCriticalSection(&mutex);
|
InitializeCriticalSection(&mutex);
|
||||||
|
|
||||||
|
@ -325,6 +325,9 @@ extern X_API int PROTO(YAP_Init,(YAP_init_args *));
|
|||||||
/* int YAP_FastInit(const char *) */
|
/* int YAP_FastInit(const char *) */
|
||||||
extern X_API int PROTO(YAP_FastInit,(CONST char *));
|
extern X_API int PROTO(YAP_FastInit,(CONST char *));
|
||||||
|
|
||||||
|
/* void * YAP_TermToStream(YAP_Term) */
|
||||||
|
extern X_API void * PROTO(YAP_TermToStream,(YAP_Term));
|
||||||
|
|
||||||
/* void * YAP_InitConsult(int, const char *) */
|
/* void * YAP_InitConsult(int, const char *) */
|
||||||
extern X_API void * PROTO(YAP_InitConsult,(int, CONST char *));
|
extern X_API void * PROTO(YAP_InitConsult,(int, CONST char *));
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit bf6525f85cfcf3c08fff8cf91fb189fe71dc34fd
|
Subproject commit b2eb894ce3e41925070215f800d6df3a356dc29d
|
@ -1,7 +1,7 @@
|
|||||||
%edge(0,1).
|
%edge(0,1).
|
||||||
%edge(0,4).
|
edge(0,4).
|
||||||
%edge(1,4).
|
|
||||||
%edge(1,2).
|
%edge(1,2).
|
||||||
edge(2,3).
|
edge(1,4).
|
||||||
|
%edge(2,3).
|
||||||
edge(2,4).
|
edge(2,4).
|
||||||
edge(3,4).
|
edge(3,4).
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
|
|
||||||
type rank(node, int, float).
|
type rank(node, int, float).
|
||||||
type reachable(node, node).
|
|
||||||
type calcRank(node, int, sum float).
|
type calcRank(node, int, sum float).
|
||||||
% type persistent numPages(node, int).
|
% type persistent numPages(node, int).
|
||||||
type persistent numPages(node, sum int).
|
type persistent numPages(node, sum int).
|
||||||
@ -8,21 +7,24 @@ type numLinks(node, sum int).
|
|||||||
type path(node, node).
|
type path(node, node).
|
||||||
|
|
||||||
const damping = 0.85.
|
const damping = 0.85.
|
||||||
const num_iterations = 4.
|
const num_iterations = 100.
|
||||||
% extern float to_float(int).
|
% extern float to_float(int).
|
||||||
% extern float float_abs(float).
|
% extern float float_abs(float).
|
||||||
|
|
||||||
rank(A, 0, 1.0 / to_float(T)) :- numPages(A,T).
|
rank(A, 0, 1.0 / to_float(T)) :- numPages(A,T).
|
||||||
rank(A, I, V) :-
|
rank(A, I, V) :-
|
||||||
|
numLinks(B,L),
|
||||||
numPages(A, Ps),
|
numPages(A, Ps),
|
||||||
calcRank(A, I, T),
|
calcRank(A, I, T),
|
||||||
Before = I - 1,
|
% Before = I - 1,
|
||||||
rank(A, Before, VOld),
|
% rank(A, Before, VOld),
|
||||||
V = (damping + (1.0 - damping) * T)/to_float(Ps),
|
V = damping + (1.0 - damping) * T,
|
||||||
I =< num_iterations.
|
I =< num_iterations.
|
||||||
|
|
||||||
% //float_abs((damping + (1.0 - damping) * T) - VOld) > 0.001.
|
% //float_abs((damping + (1.0 - damping) * T) - VOld) > 0.001.
|
||||||
|
|
||||||
|
calcRank(A, I + 1, 0.0) :-
|
||||||
|
rank(A, I, _).
|
||||||
calcRank(A, I + 1, O / to_float(C)) :-
|
calcRank(A, I + 1, O / to_float(C)) :-
|
||||||
edge(B, A),
|
edge(B, A),
|
||||||
rank(B, I, O),
|
rank(B, I, O),
|
||||||
|
Reference in New Issue
Block a user