Merge branch 'master' of https://github.com/vscosta/yap-6.3
This commit is contained in:
commit
9dac6e9612
@ -1207,8 +1207,9 @@ Term Yap_UnknownFlag(Term mod) {
|
|||||||
|
|
||||||
Term getYapFlag(Term tflag) {
|
Term getYapFlag(Term tflag) {
|
||||||
FlagEntry *fv;
|
FlagEntry *fv;
|
||||||
flag_term *tarr;
|
flag_term *tarr;
|
||||||
if (IsVarTerm(tflag)) {
|
tflag = Deref(tflag);
|
||||||
|
if (IsVarTerm(tflag)) {
|
||||||
Yap_Error(INSTANTIATION_ERROR, tflag, "yap_flag/2");
|
Yap_Error(INSTANTIATION_ERROR, tflag, "yap_flag/2");
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
@ -1234,6 +1235,10 @@ Term getYapFlag(Term tflag) {
|
|||||||
Yap_Error(TYPE_ERROR_ATOM, tflag, "yap_flag/2");
|
Yap_Error(TYPE_ERROR_ATOM, tflag, "yap_flag/2");
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
}
|
}
|
||||||
|
if (tflag == TermSilent)
|
||||||
|
{
|
||||||
|
Yap_DebugPlWriteln(TermSilent);
|
||||||
|
}
|
||||||
fv = GetFlagProp(AtomOfTerm(tflag));
|
fv = GetFlagProp(AtomOfTerm(tflag));
|
||||||
if (!fv) {
|
if (!fv) {
|
||||||
Term fl = GLOBAL_Flags[USER_FLAGS_FLAG].at;
|
Term fl = GLOBAL_Flags[USER_FLAGS_FLAG].at;
|
||||||
|
@ -1052,13 +1052,13 @@ X_API void YAP_Init(YAP_init_args *yap_init) {
|
|||||||
MkAtomTerm(Yap_LookupAtom(Yap_BOOTFILE)));
|
MkAtomTerm(Yap_LookupAtom(Yap_BOOTFILE)));
|
||||||
setBooleanGlobalPrologFlag(SAVED_PROGRAM_FLAG, false);
|
setBooleanGlobalPrologFlag(SAVED_PROGRAM_FLAG, false);
|
||||||
} else {
|
} else {
|
||||||
|
if (yap_init->QuietMode) {
|
||||||
|
setVerbosity(TermSilent);
|
||||||
|
}
|
||||||
Yap_Restore(Yap_INPUT_STARTUP);
|
Yap_Restore(Yap_INPUT_STARTUP);
|
||||||
init_globals(yap_init);
|
init_globals(yap_init);
|
||||||
|
|
||||||
start_modules();
|
start_modules();
|
||||||
if (yap_init->QuietMode) {
|
|
||||||
setVerbosity(TermSilent);
|
|
||||||
}
|
|
||||||
if (yap_init->install && Yap_OUTPUT_STARTUP) {
|
if (yap_init->install && Yap_OUTPUT_STARTUP) {
|
||||||
setAtomicGlobalPrologFlag(RESOURCE_DATABASE_FLAG,
|
setAtomicGlobalPrologFlag(RESOURCE_DATABASE_FLAG,
|
||||||
MkAtomTerm(Yap_LookupAtom(Yap_INPUT_STARTUP)));
|
MkAtomTerm(Yap_LookupAtom(Yap_INPUT_STARTUP)));
|
||||||
|
@ -357,6 +357,8 @@ static inline bool verboseMode(void) {
|
|||||||
|
|
||||||
static inline void setVerbosity(Term val) {
|
static inline void setVerbosity(Term val) {
|
||||||
GLOBAL_Flags[VERBOSE_FLAG].at = val;
|
GLOBAL_Flags[VERBOSE_FLAG].at = val;
|
||||||
|
if (val == TermSilent)
|
||||||
|
GLOBAL_Flags[VERBOSE_LOAD_FLAG].at = TermFalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool setSyntaxErrorsFlag(Term val) {
|
static inline bool setSyntaxErrorsFlag(Term val) {
|
||||||
@ -418,12 +420,12 @@ extern xarg *Yap_ArgListToVector__(const char *file, const char *function, int
|
|||||||
|
|
||||||
#define Yap_ArgListToVector(l, def, n, e) \
|
#define Yap_ArgListToVector(l, def, n, e) \
|
||||||
Yap_ArgListToVector__(__FILE__, __FUNCTION__, __LINE__, l, def, n, e)
|
Yap_ArgListToVector__(__FILE__, __FUNCTION__, __LINE__, l, def, n, e)
|
||||||
|
|
||||||
extern xarg *Yap_ArgList2ToVector__(const char *file, const char *function, int lineno, Term listl, const param2_t *def, int n, yap_error_number e);
|
extern xarg *Yap_ArgList2ToVector__(const char *file, const char *function, int lineno, Term listl, const param2_t *def, int n, yap_error_number e);
|
||||||
|
|
||||||
#define Yap_ArgList2ToVector(l, def, n, e) \
|
#define Yap_ArgList2ToVector(l, def, n, e) \
|
||||||
Yap_ArgList2ToVector__(__FILE__, __FUNCTION__, __LINE__, l, def, n, e)
|
Yap_ArgList2ToVector__(__FILE__, __FUNCTION__, __LINE__, l, def, n, e)
|
||||||
|
|
||||||
#endif // YAP_FLAGS_H
|
#endif // YAP_FLAGS_H
|
||||||
|
|
||||||
/// @}
|
/// @}
|
||||||
|
@ -579,12 +579,12 @@ and if it is bound to `off` disable them. The default for YAP is
|
|||||||
is `false` by default except if YAP is booted with the `-L`
|
is `false` by default except if YAP is booted with the `-L`
|
||||||
flag.
|
flag.
|
||||||
*/
|
*/
|
||||||
YAP_FLAG(VERBOSE_LOAD_FLAG, "verbose_load", true, isatom, "normal", NULL),
|
YAP_FLAG(VERBOSE_LOAD_FLAG, "verbose_load", true, booleanFlag, "true", NULL),
|
||||||
/**< `verbose_load `
|
/**< `verbose_load `
|
||||||
|
|
||||||
If `true` allow printing of informational messages when
|
If `true` allow printing of informational messages when
|
||||||
consulting files. If `false` disable printing these messages. It
|
consulting files. If `false` disable printing these messages. It
|
||||||
is `normal` by default except if YAP is booted with the `-L`
|
is `true` by default except if YAP is booted with the `-L`
|
||||||
flag.
|
flag.
|
||||||
*/
|
*/
|
||||||
YAP_FLAG(VERSION_FLAG, "version", false, nat, YAP_NUMERIC_VERSION, NULL),
|
YAP_FLAG(VERSION_FLAG, "version", false, nat, YAP_NUMERIC_VERSION, NULL),
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2:- use_module( library(lineutils) ).
|
||||||
|
3
|
||||||
|
4main :-
|
||||||
|
5 unix(argv[Dir,Out]),
|
||||||
|
6 open(Out,write,O),
|
||||||
|
|
||||||
:- module( prolog, [] ).
|
7 go(Dir,O).
|
||||||
|
9go(Dir,O) :-
|
||||||
|
|
||||||
|
@ -27,13 +27,13 @@ ECLASS(RESOURCE_ERROR, "resource_error", 2)
|
|||||||
/// bad text
|
/// bad text
|
||||||
ECLASS(SYNTAX_ERROR_CLASS, "syntax_error", 1)
|
ECLASS(SYNTAX_ERROR_CLASS, "syntax_error", 1)
|
||||||
/// OS or internal
|
/// OS or internal
|
||||||
ECLASS(SYSTEM_ERROR_CLASS, "system_error", 2)
|
ECLASS(SYSTEM_ERROR_CLASS, "system_error", 1)
|
||||||
/// bad typing
|
/// bad typing
|
||||||
ECLASS(TYPE_ERROR, "type_error", 2)
|
ECLASS(TYPE_ERROR, "type_error", 2)
|
||||||
/// should be unbound
|
/// should be unbound
|
||||||
ECLASS(UNINSTANTIATION_ERROR_CLASS, "uninstantiation_error", 1)
|
ECLASS(UNINSTANTIATION_ERROR_CLASS, "uninstantiation_error", 1)
|
||||||
/// escape hatch
|
/// user defined escape hatch
|
||||||
ECLASS(EVENT, "event", 2)
|
ECLASS(EVENT, "event", 1)
|
||||||
|
|
||||||
END_ERROR_CLASSES();
|
END_ERROR_CLASSES();
|
||||||
|
|
||||||
|
@ -137,4 +137,4 @@ typedef struct yap_boot_params {
|
|||||||
char *ErrorCause;
|
char *ErrorCause;
|
||||||
} YAP_init_args;
|
} YAP_init_args;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
sumnodes_body(3,+,+,-,+,+),
|
sumnodes_body(3,+,+,-,+,+),
|
||||||
include(1,+,-),
|
include(1,+,-),
|
||||||
exclude(1,+,-),
|
exclude(1,+,-),
|
||||||
partition(2,+,-,-),
|
partition(1,+,-,-),
|
||||||
partition(2,+,-,-,-),
|
partition(2,+,-,-,-),
|
||||||
foldl(3, +, +, -),
|
foldl(3, +, +, -),
|
||||||
foldl2(5, +, +, -, +, -),
|
foldl2(5, +, +, -, +, -),
|
||||||
|
38
os/streams.c
38
os/streams.c
@ -316,7 +316,7 @@ bool Yap_SetCurInpPos(
|
|||||||
}
|
}
|
||||||
|
|
||||||
Atom Yap_guessFileName(FILE *file, int sno, size_t max) {
|
Atom Yap_guessFileName(FILE *file, int sno, size_t max) {
|
||||||
size_t maxs = Yap_Max(1023, max-1);
|
size_t maxs = Yap_Max(1023, max - 1);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
Atom at = Yap_LookupAtom("mem");
|
Atom at = Yap_LookupAtom("mem");
|
||||||
return at;
|
return at;
|
||||||
@ -329,24 +329,26 @@ Atom Yap_guessFileName(FILE *file, int sno, size_t max) {
|
|||||||
|
|
||||||
int i = push_text_stack();
|
int i = push_text_stack();
|
||||||
#if __linux__
|
#if __linux__
|
||||||
char *path = Malloc(1024), *nameb = Malloc(maxs+1);
|
char *path = Malloc(1024), *nameb = Malloc(maxs + 1);
|
||||||
size_t len;
|
size_t len;
|
||||||
if ((len = snprintf(path, 1023, "/proc/self/fd/%d", f)) >= 0 &&
|
if ((len = snprintf(path, 1023, "/proc/self/fd/%d", f)) >= 0 &&
|
||||||
(len = readlink(path, nameb, maxs)) > 0) {
|
(len = readlink(path, nameb, maxs)) > 0) {
|
||||||
nameb[len] = '\0';
|
nameb[len] = '\0';
|
||||||
Atom at = Yap_LookupAtom(nameb);
|
Atom at = Yap_LookupAtom(nameb);
|
||||||
pop_text_stack(i);
|
pop_text_stack(i);
|
||||||
return at;
|
return at;
|
||||||
}
|
}
|
||||||
#elif __APPLE__
|
#elif __APPLE__
|
||||||
|
char *nameb = Malloc(maxs + 1);
|
||||||
if (fcntl(f, F_GETPATH, nameb) != -1) {
|
if (fcntl(f, F_GETPATH, nameb) != -1) {
|
||||||
Atom at = Yap_LookupAtom(nameb);
|
Atom at = Yap_LookupAtom(nameb);
|
||||||
pop_text_stack(i);
|
pop_text_stack(i);
|
||||||
return at;
|
return at;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
TCHAR *path = Malloc(MAX_PATH + 1);
|
TCHAR *path = Malloc(MAX_PATH + 1), *nameb = Malloc(MAX_PATH + 1);
|
||||||
if (!GetFullPathName(path, MAX_PATH, path, NULL)) {
|
|
||||||
|
if (!GetFullPathName(path, MAX_PATH, nameb, NULL)) {
|
||||||
pop_text_stack(i);
|
pop_text_stack(i);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
@ -356,8 +358,8 @@ Atom Yap_guessFileName(FILE *file, int sno, size_t max) {
|
|||||||
ptr += put_utf8(ptr, path[i]);
|
ptr += put_utf8(ptr, path[i]);
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
Atom at = Yap_LookupAtom(nameb);
|
Atom at = Yap_LookupAtom(nameb);
|
||||||
pop_text_stack(i);
|
pop_text_stack(i);
|
||||||
return at;
|
return at;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!StreamName(sno)) {
|
if (!StreamName(sno)) {
|
||||||
@ -721,7 +723,7 @@ static Int cont_stream_property(USES_REGS1) { /* current_stream */
|
|||||||
i = Yap_CheckAlias(AtomOfTerm(args[STREAM_PROPERTY_ALIAS].tvalue));
|
i = Yap_CheckAlias(AtomOfTerm(args[STREAM_PROPERTY_ALIAS].tvalue));
|
||||||
UNLOCK(GLOBAL_Stream[i].streamlock);
|
UNLOCK(GLOBAL_Stream[i].streamlock);
|
||||||
if (i < 0 || !Yap_unify(ARG1, Yap_MkStream(i))) {
|
if (i < 0 || !Yap_unify(ARG1, Yap_MkStream(i))) {
|
||||||
free(args);
|
free(args);
|
||||||
cut_fail();
|
cut_fail();
|
||||||
}
|
}
|
||||||
det = true;
|
det = true;
|
||||||
@ -1001,11 +1003,11 @@ static void CloseStream(int sno) {
|
|||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
|
|
||||||
// fflush(NULL);
|
// fflush(NULL);
|
||||||
// __android_log_print(ANDROID_LOG_INFO, "YAPDroid", "close stream <%d>",
|
// __android_log_print(ANDROID_LOG_INFO, "YAPDroid", "close stream <%d>",
|
||||||
// sno);
|
// sno);
|
||||||
VFS_t *me;
|
VFS_t *me;
|
||||||
//fprintf( stderr, "- %d\n",sno);
|
// fprintf( stderr, "- %d\n",sno);
|
||||||
if ((me = GLOBAL_Stream[sno].vfs) != NULL &&
|
if ((me = GLOBAL_Stream[sno].vfs) != NULL &&
|
||||||
GLOBAL_Stream[sno].file == NULL) {
|
GLOBAL_Stream[sno].file == NULL) {
|
||||||
if (me->close) {
|
if (me->close) {
|
||||||
me->close(sno);
|
me->close(sno);
|
||||||
@ -1043,7 +1045,8 @@ if ((me = GLOBAL_Stream[sno].vfs) != NULL &&
|
|||||||
GLOBAL_Stream[sno].vfs = NULL;
|
GLOBAL_Stream[sno].vfs = NULL;
|
||||||
GLOBAL_Stream[sno].file = NULL;
|
GLOBAL_Stream[sno].file = NULL;
|
||||||
GLOBAL_Stream[sno].status = Free_Stream_f;
|
GLOBAL_Stream[sno].status = Free_Stream_f;
|
||||||
// __android_log_print(ANDROID_LOG_INFO, "YAPDroid", "close stream <%d>", sno);
|
// __android_log_print(ANDROID_LOG_INFO, "YAPDroid", "close stream <%d>",
|
||||||
|
// sno);
|
||||||
|
|
||||||
/* if (st->status == Socket_Stream_f|Input_Stream_f|Output_Stream_f) {
|
/* if (st->status == Socket_Stream_f|Input_Stream_f|Output_Stream_f) {
|
||||||
Yap_CloseSocket();
|
Yap_CloseSocket();
|
||||||
@ -1556,8 +1559,7 @@ FILE *Yap_FileDescriptorFromStream(Term t) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Yap_InitBackIO(void)
|
void Yap_InitBackIO(void) {
|
||||||
{
|
|
||||||
Yap_InitCPredBack("stream_property", 2, 2, stream_property,
|
Yap_InitCPredBack("stream_property", 2, 2, stream_property,
|
||||||
cont_stream_property, SafePredFlag | SyncPredFlag);
|
cont_stream_property, SafePredFlag | SyncPredFlag);
|
||||||
}
|
}
|
||||||
|
@ -826,20 +826,21 @@ gradient_descent :-
|
|||||||
format(Handle,"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~n",[]),
|
format(Handle,"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~n",[]),
|
||||||
format(Handle,"% Iteration, train/test, QueryID, Query, GroundTruth, Prediction %~n",[]),
|
format(Handle,"% Iteration, train/test, QueryID, Query, GroundTruth, Prediction %~n",[]),
|
||||||
format(Handle,"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~n",[]),
|
format(Handle,"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~n",[]),
|
||||||
format_learning(2,'Gradient ',[]),
|
|
||||||
findall(FactID,tunable_fact(FactID,GroundTruth),L), length(L,N),
|
findall(FactID,tunable_fact(FactID,GroundTruth),L), length(L,N),
|
||||||
% leash(0),trace,
|
% leash(0),trace,
|
||||||
lbfgs_initialize(N,X,0,Solver),
|
lbfgs_initialize(N,X,0,Solver),
|
||||||
forall(tunable_fact(FactID,GroundTruth),
|
forall(tunable_fact(FactID,GroundTruth),
|
||||||
(XZ is 0.5, X[FactID] <== XZ,set_fact_probability(FactID,XZ))),
|
(XZ is 0.0, X[FactID] <== XZ,sigmoid(XZ,Slope,Pr),set_fact_probability(FactID,Pr))),
|
||||||
problog_flag(sigmoid_slope,Slope),
|
problog_flag(sigmoid_slope,Slope),
|
||||||
lbfgs_run(Solver,BestF),
|
lbfgs_run(Solver,BestF),
|
||||||
format('~2nOptimization done~nWe found a minimum ~4f.~n',[BestF]),
|
format('~2nOptimization done~nWe found a minimum ~4f.~n',[BestF]),
|
||||||
forall(tunable_fact(FactID,GroundTruth), set_tunable(FactID,X)),
|
forall(tunable_fact(FactID,GroundTruth), set_tunable(FactID,Slope,X)),
|
||||||
|
set_problog_flag(mse_trainset, BestF),
|
||||||
lbfgs_finalize(Solver).
|
lbfgs_finalize(Solver).
|
||||||
|
|
||||||
set_tunable(I,P) :-
|
set_tunable(I,Slope,P) :-
|
||||||
Pr <== P[I],
|
X <== P[I],
|
||||||
|
sigmoid(X,Slope,Pr),
|
||||||
set_fact_probability(I,Pr).
|
set_fact_probability(I,Pr).
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
@ -848,12 +849,12 @@ set_tunable(I,P) :-
|
|||||||
user:evaluate(LLH_Training_Queries, X,Grad,N,_,_) :-
|
user:evaluate(LLH_Training_Queries, X,Grad,N,_,_) :-
|
||||||
%Handle = user_error,
|
%Handle = user_error,
|
||||||
GradCount <== array[N] of ints,
|
GradCount <== array[N] of ints,
|
||||||
|
Probs <== array[N] of floats,
|
||||||
problog_flag(sigmoid_slope,Slope),
|
problog_flag(sigmoid_slope,Slope),
|
||||||
Probs = X,
|
|
||||||
N1 is N-1,
|
N1 is N-1,
|
||||||
|
|
||||||
forall(between(0,N1,I),
|
forall(between(0,N1,I),
|
||||||
(Grad[I] <== 0.0) %, sigmoid(X[I],Slope,Probs[I]) )
|
(Grad[I] <== 0.0, S <== X[I], sigmoid(S,Slope, P), Probs[I] <== P)
|
||||||
),
|
),
|
||||||
findall(LL,
|
findall(LL,
|
||||||
compute_grad(Grad, GradCount, Probs, Slope, LL),
|
compute_grad(Grad, GradCount, Probs, Slope, LL),
|
||||||
@ -875,15 +876,16 @@ compute_grad(Grad, GradCount, Probs, Slope, LL) :-
|
|||||||
%writeln( qprobability(BDD,Slope,BDDProb) ),
|
%writeln( qprobability(BDD,Slope,BDDProb) ),
|
||||||
forall(
|
forall(
|
||||||
member(I-_, MapList),
|
member(I-_, MapList),
|
||||||
gradientpair(I, BDD,Slope,BDDProb, QueryProb, Grad, GradCount)
|
gradientpair(I, BDD,Slope,BDDProb, QueryProb, Grad, Probs, GradCount)
|
||||||
).
|
).
|
||||||
|
|
||||||
gradientpair(I, BDD,Slope,BDDProb, QueryProb, Grad, GradCount) :-
|
gradientpair(I, BDD,Slope,BDDProb, QueryProb, Grad, Probs, GradCount) :-
|
||||||
qgradient(I, BDD, Slope, FactID, GradValue),
|
qgradient(I, BDD, Slope, FactID, GradValue),
|
||||||
% writeln(FactID),
|
% writeln(FactID),
|
||||||
G0 <== Grad[FactID],
|
G0 <== Grad[FactID],
|
||||||
|
Prob <== Probs[FactID],
|
||||||
%writeln( GN is G0-GradValue*(QueryProb-BDDProb)),
|
%writeln( GN is G0-GradValue*(QueryProb-BDDProb)),
|
||||||
GN is G0-GradValue*2*(QueryProb-BDDProb),
|
GN is G0-GradValue*2*Prob*(1-Prob)*(QueryProb-BDDProb),
|
||||||
%writeln(FactID:(G0->GN)),
|
%writeln(FactID:(G0->GN)),
|
||||||
GC <== GradCount[FactID],
|
GC <== GradCount[FactID],
|
||||||
GC1 is GC+1,
|
GC1 is GC+1,
|
||||||
@ -977,10 +979,10 @@ bind_maplist([Node-Pr|MapList], Slope, X) :-
|
|||||||
% stop calculate gradient
|
% stop calculate gradient
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
user:progress(FX,X,_G,X_Norm,G_Norm,Step,_N,Iteration,Ls,0) :-
|
user:progress(FX,X,_G,X_Norm,G_Norm,Step,_N,Iteration,Ls,0) :-
|
||||||
% problog_flag(sigmoid_slope,Slope),
|
problog_flag(sigmoid_slope,Slope),
|
||||||
X0 <== X[0],
|
X0 <== X[0], sigmoid(X0,Slope,P0),
|
||||||
X1 <== X[1],
|
X1 <== X[1], sigmoid(X1,Slope,P1),
|
||||||
format('~d. Iteration : (x0,x1)=(~4f,~4f) f(X)=~4f |X|=~4f |X\'|=~4f Step=~4f Ls=~4f~n',[Iteration,X0 ,X1,FX,X_Norm,G_Norm,Step,Ls]).
|
format('~d. Iteration : (x0,x1)=(~4f,~4f) f(X)=~4f |X|=~4f |X\'|=~4f Step=~4f Ls=~4f~n',[Iteration,P0 ,P1,FX,X_Norm,G_Norm,Step,Ls]).
|
||||||
|
|
||||||
|
|
||||||
%========================================================================
|
%========================================================================
|
||||||
|
@ -411,8 +411,8 @@ load_files(Files0,Opts) :-
|
|||||||
Val == large -> true ;
|
Val == large -> true ;
|
||||||
'$do_error'(domain_error(unknown_option,qcompile(Val)),Call) ).
|
'$do_error'(domain_error(unknown_option,qcompile(Val)),Call) ).
|
||||||
'$process_lf_opt'(silent, Val, Call) :-
|
'$process_lf_opt'(silent, Val, Call) :-
|
||||||
( Val == false -> yap_flag(verbose_load, full) ;
|
( Val == false -> yap_flag(verbose_load, true) ;
|
||||||
Val == true -> yap_flag(verbose_load, silent) ;
|
Val == true -> yap_flag(verbose_load, false) ;
|
||||||
'$do_error'(domain_error(out_of_domain_option,silent(Val)),Call) ).
|
'$do_error'(domain_error(out_of_domain_option,silent(Val)),Call) ).
|
||||||
'$process_lf_opt'(skip_unix_header, Val, Call) :-
|
'$process_lf_opt'(skip_unix_header, Val, Call) :-
|
||||||
( Val == false -> true ;
|
( Val == false -> true ;
|
||||||
@ -925,7 +925,7 @@ nb_setval('$if_le1vel',0).
|
|||||||
'$init_win_graphics',
|
'$init_win_graphics',
|
||||||
fail.
|
fail.
|
||||||
'$do_startup_reconsult'(X) :-
|
'$do_startup_reconsult'(X) :-
|
||||||
catch(load_files(user:X, [silent(false)]), Error, '$LoopError'(Error, consult)),
|
catch(load_files(user:X, [silent(true)]), Error, '$LoopError'(Error, consult)),
|
||||||
!,
|
!,
|
||||||
( current_prolog_flag(halt_after_consult, false) -> true ; halt).
|
( current_prolog_flag(halt_after_consult, false) -> true ; halt).
|
||||||
'$do_startup_reconsult'(_).
|
'$do_startup_reconsult'(_).
|
||||||
|
@ -603,13 +603,13 @@ be lost.
|
|||||||
% - redo resets the goal
|
% - redo resets the goal
|
||||||
% - fail gives up on the goal.
|
% - fail gives up on the goal.
|
||||||
'$re_trace_query'(abort, _G, _Module, _GoalNumber, _H) :-
|
'$re_trace_query'(abort, _G, _Module, _GoalNumber, _H) :-
|
||||||
!,
|
!,
|
||||||
abort.
|
abort.
|
||||||
'$re_trace_query'(forward(fail,G0), _G, __Module, GoalNumber, _H) :-
|
'$re_trace_query'(forward(fail,G0), _G, __Module, GoalNumber, _H) :-
|
||||||
GoalNumber =< G0,
|
GoalNumber =< G0,
|
||||||
!,
|
!,
|
||||||
fail.
|
fail.
|
||||||
'$re_trace_query'(forward(redo,G0), G, M, GoalNumber, H) :-
|
'$re_trace_query'(forward(redo,G0), G, M, GoalNumber, H) :-
|
||||||
GoalNumber > G0,
|
GoalNumber > G0,
|
||||||
!,
|
!,
|
||||||
catch(
|
catch(
|
||||||
|
@ -1009,7 +1009,7 @@ prolog:print_message(Severity, Msg) :-
|
|||||||
),
|
),
|
||||||
!.
|
!.
|
||||||
prolog:print_message(Level, _Msg) :-
|
prolog:print_message(Level, _Msg) :-
|
||||||
current_prolog_flag(verbose_load, silent),
|
current_prolog_flag(verbose_load, false),
|
||||||
stream_property(_Stream, alias(loop_stream) ),
|
stream_property(_Stream, alias(loop_stream) ),
|
||||||
Level = informational,
|
Level = informational,
|
||||||
!.
|
!.
|
||||||
|
@ -578,7 +578,6 @@ predicate_statistics(P0,NCls,Sz,ISz) :-
|
|||||||
|
|
||||||
Given predicate _P_, _NCls_ is the number of erased clauses for
|
Given predicate _P_, _NCls_ is the number of erased clauses for
|
||||||
_P_ that could not be discarded yet, _Sz_ is the amount of space
|
_P_ that could not be discarded yet, _Sz_ is the amount of space
|
||||||
taken to store those clauses (in bytes), and _IndexSz_ is the amount
|
|
||||||
of space required to store indices to those clauses (in bytes).
|
of space required to store indices to those clauses (in bytes).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -596,9 +595,9 @@ Defines the relation: _P_ is a currently defined predicate whose name is the at
|
|||||||
*/
|
*/
|
||||||
current_predicate(A,T0) :-
|
current_predicate(A,T0) :-
|
||||||
'$yap_strip_module'(T0, M, T),
|
'$yap_strip_module'(T0, M, T),
|
||||||
( var(Mod)
|
( var(M)
|
||||||
->
|
->
|
||||||
'$all_current_modules'(Mod)
|
'$all_current_modules'(M)
|
||||||
;
|
;
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
|
20
pl/qly.yap
20
pl/qly.yap
@ -229,6 +229,9 @@ qend_program :-
|
|||||||
% there is some ordering between flags.
|
% there is some ordering between flags.
|
||||||
'x_yap_flag'(language, V) :-
|
'x_yap_flag'(language, V) :-
|
||||||
yap_flag(language, V).
|
yap_flag(language, V).
|
||||||
|
%if silent keep silent, otherwise use the saved state.
|
||||||
|
'x_yap_flag'(verbose, _) :- !.
|
||||||
|
'x_yap_flag'(verbose_load, _) :- !.
|
||||||
'x_yap_flag'(M:P, V) :-
|
'x_yap_flag'(M:P, V) :-
|
||||||
current_module(M),
|
current_module(M),
|
||||||
yap_flag(M:P, V).
|
yap_flag(M:P, V).
|
||||||
@ -357,12 +360,9 @@ available it tries reconsulting the source file.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
qload_module(Mod) :-
|
qload_module(Mod) :-
|
||||||
( current_prolog_flag(verbose_load, true)
|
prolog_flag(verbose_load, OldF, false),
|
||||||
->
|
prolog_flag(verbose, OldV, silent),
|
||||||
Verbosity = informational
|
Verbosity = silent
|
||||||
;
|
|
||||||
current_prolog_flag(verbose_load, Verbosity)
|
|
||||||
),
|
|
||||||
StartMsg = loading_module,
|
StartMsg = loading_module,
|
||||||
EndMsg = module_loaded,
|
EndMsg = module_loaded,
|
||||||
'$current_module'(SourceModule, Mod),
|
'$current_module'(SourceModule, Mod),
|
||||||
@ -375,6 +375,8 @@ qload_module(Mod) :-
|
|||||||
H is heapused-H0, '$cputime'(TF,_), T is TF-T0,
|
H is heapused-H0, '$cputime'(TF,_), T is TF-T0,
|
||||||
print_message(Verbosity, loaded(EndMsg, File, Mod, T, H)),
|
print_message(Verbosity, loaded(EndMsg, File, Mod, T, H)),
|
||||||
'$current_module'(_, SourceModule),
|
'$current_module'(_, SourceModule),
|
||||||
|
prolog_flag(verbose_load, _, OldF),
|
||||||
|
prolog_flag(verbose, _, OldV),
|
||||||
working_directory(_, OldD).
|
working_directory(_, OldD).
|
||||||
|
|
||||||
'$qload_module'(Mod, S, SourceModule) :-
|
'$qload_module'(Mod, S, SourceModule) :-
|
||||||
@ -558,11 +560,11 @@ Restores a previously saved state of YAP contaianing a qly file _F_.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
qload_file( F0 ) :-
|
qload_file( F0 ) :-
|
||||||
( current_prolog_flag(verbose_load, true)
|
( current_prolog_flag(verbose_load, false)
|
||||||
->
|
->
|
||||||
Verbosity = informational
|
|
||||||
;
|
|
||||||
Verbosity = silent
|
Verbosity = silent
|
||||||
|
;
|
||||||
|
current_prolog_flag(verbose, Verbosity)
|
||||||
),
|
),
|
||||||
StartMsg = loading_module,
|
StartMsg = loading_module,
|
||||||
EndMsg = module_loaded,
|
EndMsg = module_loaded,
|
||||||
|
@ -41,7 +41,7 @@ rdir( FRoot ) :-
|
|||||||
absolute_file_name( FRoot, [glob(*), solutions(all), file_errors(fail)], File ),
|
absolute_file_name( FRoot, [glob(*), solutions(all), file_errors(fail)], File ),
|
||||||
\+ doskip( File ),
|
\+ doskip( File ),
|
||||||
(
|
(
|
||||||
catch( file_property( File, type(directory) ), _, fail )
|
cat zzch( file_property( File, type(directory) ), _, fail )
|
||||||
->
|
->
|
||||||
assert_new( dir( File ) ),
|
assert_new( dir( File ) ),
|
||||||
assert_new( sub_dir( FRoot, File ) ),
|
assert_new( sub_dir( FRoot, File ) ),
|
||||||
|
Reference in New Issue
Block a user