small fixes

This commit is contained in:
Vitor Santos Costa
2018-10-10 12:33:05 +01:00
parent 32266a8b98
commit cb1c73c973
13 changed files with 34 additions and 153 deletions

View File

@@ -833,7 +833,7 @@ gradient_descent :-
forall(tunable_fact(FactID,GroundTruth),
(XZ is 0.5, X[FactID] <== XZ,set_fact_probability(FactID,XZ))),
problog_flag(sigmoid_slope,Slope),
%%% lbfgs_set_parameter(min_step, 2e-40, Solver),
lbfgs_set_parameter(min_step, Solver, 0.0),
lbfgs_run(Solver,BestF),
format('~2nOptimization done~nWe found a minimum ~4f.~n',[BestF]),
forall(tunable_fact(FactID,GroundTruth), set_tunable(FactID,X)),

View File

@@ -811,7 +811,7 @@ static YAP_Bool p_cudd_print_with_names(void) {
DdManager *manager = (DdManager *)YAP_IntOfTerm(YAP_ARG1);
DdNode *n0 = (DdNode *)YAP_IntOfTerm(YAP_ARG2);
const char *s = YAP_AtomName(YAP_AtomOfTerm(YAP_ARG3));
char **namesp;
char ** namesp;
YAP_Term names = YAP_ARG4;
FILE *f;
YAP_Int len;
@@ -850,14 +850,14 @@ static YAP_Bool p_cudd_print_with_names(void) {
names = YAP_TailOfTerm(names);
namesp[i++] = f;
}
Cudd_DumpDot(manager, 1, &n0, namesp, NULL, f);
Cudd_DumpDot(manager, 1, &n0, (const char * const*)namesp, NULL, f);
if (f != stdout && f != stderr)
fclose(f);
while (i > 0) {
i--;
free((void *)namesp[i]);
}
free(namesp);
free((void *)namesp);
return TRUE;
}

View File

@@ -376,7 +376,7 @@ int simpleBDDtoDot(DdManager *manager, DdNode *bdd, char *filename) {
return ret;
}
int simpleNamedBDDtoDot(DdManager *manager, const namedvars varmap, DdNode *bdd, char *filename) {
int simpleNamedBDDtoDot(DdManager *manager, namedvars varmap, DdNode *bdd, char *filename) {
DdNode *f[1];
int ret;
FILE *fd;

View File

@@ -1293,7 +1293,8 @@ gradientpair CalcGradient(extmanager MyManager, DdNode *Current, int TargetVar,
char *TargetPattern, int type) {
DdNode *h, *l;
hisnode *Found;
const char *curnode = NULL, *dynvalue;
const char *curnode = NULL;
char *dynvalue;
gradientpair lowvalue, highvalue, tvalue;
double this_probability;
double *gradient;

View File

@@ -298,7 +298,7 @@ table is used to store nodeB for which the probability has alread been computed
so that it is not recomputed
*/
{
int index, mVarIndex, comp, pos;
int index, mVarIndex, comp;
variable v;
double res;
double p, pt, pf, BChild0, BChild1;
@@ -333,7 +333,7 @@ so that it is not recomputed
BChild1 = pt * p;
mVarIndex = bVar2mVar_ex[ex][index];
v = vars_ex[ex][mVarIndex];
pos = index - v.firstBoolVar;
index - v.firstBoolVar;
res = BChild0 + BChild1;
add_node(table, nodekey, res);
return res;
@@ -345,7 +345,6 @@ static YAP_Bool add_var(void) {
YAP_Term arg1, arg2, arg3, arg4, out, probTerm, probTerm_temp;
variable *v;
int i;
DdNode *node;
double p, p0;
arg1 = YAP_ARG1;
@@ -367,7 +366,7 @@ static YAP_Bool add_var(void) {
probTerm = arg2;
p0 = 1;
for (i = 0; i < v->nVal - 1; i++) {
node = Cudd_bddIthVar(mgr_ex[ex], boolVars_ex[ex] + i);
//node = Cudd_bddIthVar(mgr_ex[ex], boolVars_ex[ex] + i);
p = YAP_FloatOfTerm(YAP_HeadOfTerm(probTerm));
bVar2mVar_ex[ex][boolVars_ex[ex] + i] = nVars_ex[ex] - 1;
probs_ex[ex][boolVars_ex[ex] + i] = p / p0;

View File

@@ -350,6 +350,12 @@ static YAP_Bool lbfgs_release(void) {
/* return FALSE; */
}
static lbfgs_parameter_t * get_params(YAP_Term t) {
YAP_Int ar = YAP_ArityOfFunctor(YAP_FunctorOfTerm(t));
YAP_Term arg = YAP_ArgOfTerm(ar, t);
return (lbfgs_parameter_t *)YAP_IntOfTerm(arg);
}
/** @pred lbfgs_set_parameter(+Name,+Value,+Parameters)
Set the parameter Name to Value. Only possible while the lbfgs
is not running.
@@ -357,7 +363,7 @@ is not running.
static YAP_Bool lbfgs_set_parameter(void) {
YAP_Term t1 = YAP_ARG1;
YAP_Term t2 = YAP_ARG2;
lbfgs_parameter_t *param = (lbfgs_parameter_t *)YAP_IntOfTerm(YAP_ARG3);
lbfgs_parameter_t *param = get_params(YAP_ARG3);
/* if (lbfgs_status != LBFGS_STATUS_NONE && lbfgs_status !=
* LBFGS_STATUS_INITIALIZED){ */
/* printf("ERROR: Lbfgs is running right now. Please wait till it is
@@ -510,6 +516,7 @@ static YAP_Bool lbfgs_set_parameter(void) {
return TRUE;
}
/** @pred lbfgs_get_parameter(+Name,-Value)</h3>
Get the current Value for Name
*/
@@ -517,7 +524,7 @@ Get the current Value for Name
static YAP_Bool lbfgs_get_parameter(void) {
YAP_Term t1 = YAP_ARG1;
YAP_Term t2 = YAP_ARG2;
lbfgs_parameter_t *param = (lbfgs_parameter_t *)YAP_IntOfTerm(YAP_ARG3);
lbfgs_parameter_t *param = get_params(YAP_ARG3);
if (!YAP_IsAtomTerm(t1)) {
return FALSE;