forked from GitHub/gf-core
added getFunctionProb in the Java and C API
This commit is contained in:
@@ -165,6 +165,17 @@ pgf_function_type(PgfPGF* pgf, PgfCId funname)
|
|||||||
return absfun->type;
|
return absfun->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double
|
||||||
|
pgf_function_prob(PgfPGF* pgf, PgfCId funname)
|
||||||
|
{
|
||||||
|
PgfAbsFun* absfun =
|
||||||
|
gu_seq_binsearch(pgf->abstract.funs, pgf_absfun_order, PgfAbsFun, funname);
|
||||||
|
if (absfun == NULL)
|
||||||
|
return INFINITY;
|
||||||
|
|
||||||
|
return absfun->ep.prob;
|
||||||
|
}
|
||||||
|
|
||||||
GuString
|
GuString
|
||||||
pgf_print_name(PgfConcr* concr, PgfCId id)
|
pgf_print_name(PgfConcr* concr, PgfCId id)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ pgf_iter_functions_by_cat(PgfPGF* pgf, PgfCId catname,
|
|||||||
PgfType*
|
PgfType*
|
||||||
pgf_function_type(PgfPGF* pgf, PgfCId funname);
|
pgf_function_type(PgfPGF* pgf, PgfCId funname);
|
||||||
|
|
||||||
|
double
|
||||||
|
pgf_function_prob(PgfPGF* pgf, PgfCId funname);
|
||||||
|
|
||||||
GuString
|
GuString
|
||||||
pgf_print_name(PgfConcr*, PgfCId id);
|
pgf_print_name(PgfConcr*, PgfCId id);
|
||||||
|
|
||||||
|
|||||||
@@ -178,6 +178,18 @@ Java_org_grammaticalframework_pgf_PGF_getFunctionType(JNIEnv* env, jobject self,
|
|||||||
return jtype;
|
return jtype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jdouble JNICALL
|
||||||
|
Java_org_grammaticalframework_pgf_PGF_getFunctionProb(JNIEnv* env, jobject self, jstring jid)
|
||||||
|
{
|
||||||
|
PgfPGF* pgf = get_ref(env, self);
|
||||||
|
GuPool* tmp_pool = gu_local_pool();
|
||||||
|
PgfCId id = j2gu_string(env, jid, tmp_pool);
|
||||||
|
double prob = pgf_function_prob(pgf, id);
|
||||||
|
gu_pool_free(tmp_pool);
|
||||||
|
|
||||||
|
return prob;
|
||||||
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
GuMapItor fn;
|
GuMapItor fn;
|
||||||
JNIEnv *env;
|
JNIEnv *env;
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ public class PGF {
|
|||||||
*/
|
*/
|
||||||
public native Type getFunctionType(String fun);
|
public native Type getFunctionType(String fun);
|
||||||
|
|
||||||
|
/** Returns the negative logarithmic probability of the function
|
||||||
|
* with the given name.
|
||||||
|
* @param fun The name of the function.
|
||||||
|
*/
|
||||||
|
public native double getFunctionProb(String fun);
|
||||||
|
|
||||||
/** Returns an iterable over the set of all expression in
|
/** Returns an iterable over the set of all expression in
|
||||||
* the given category. The expressions are enumerated in decreasing
|
* the given category. The expressions are enumerated in decreasing
|
||||||
* probability order.
|
* probability order.
|
||||||
|
|||||||
Reference in New Issue
Block a user