diff --git a/src/rinterface.c b/src/rinterface.c index 73f43d321a..c32b4ac71a 100644 --- a/src/rinterface.c +++ b/src/rinterface.c @@ -10735,7 +10735,12 @@ SEXP R_igraph_almost_equals(SEXP a, SEXP b, SEXP eps) { igraph_bool_t c_result; SEXP r_result; /* Convert input */ - + IGRAPH_R_CHECK_REAL(a); + c_a = REAL(a)[0]; + IGRAPH_R_CHECK_REAL(b); + c_b = REAL(b)[0]; + IGRAPH_R_CHECK_REAL(eps); + c_eps = REAL(eps)[0]; /* Call igraph */ c_result=igraph_almost_equals(c_a, c_b, c_eps); @@ -10759,7 +10764,12 @@ SEXP R_igraph_cmp_epsilon(SEXP a, SEXP b, SEXP eps) { int c_result; SEXP r_result; /* Convert input */ - + IGRAPH_R_CHECK_REAL(a); + c_a = REAL(a)[0]; + IGRAPH_R_CHECK_REAL(b); + c_b = REAL(b)[0]; + IGRAPH_R_CHECK_REAL(eps); + c_eps = REAL(eps)[0]; /* Call igraph */ c_result=igraph_cmp_epsilon(c_a, c_b, c_eps); diff --git a/tools/stimulus/types-RC.yaml b/tools/stimulus/types-RC.yaml index 53cdaaa7d4..777509ecd3 100644 --- a/tools/stimulus/types-RC.yaml +++ b/tools/stimulus/types-RC.yaml @@ -76,6 +76,21 @@ CSTRING: OUT: |- PROTECT(%I% = Rf_mkCharLenCE(%C%, strlen(%C%), CE_UTF8)); +DOUBLE: + CTYPE: double + CALL: + IN: '%C%' + OUT: '&%C%' + INOUT: '&%C%' + INCONV: + IN: |- + IGRAPH_R_CHECK_REAL(%I%); + %C% = REAL(%I%)[0]; + OUTCONV: + OUT: |- + PROTECT(%I%=NEW_NUMERIC(1)); + REAL(%I%)[0]=%C%; + REAL: CTYPE: igraph_real_t CALL: