@@ -110,6 +110,8 @@ typedef enum
110110 GR_METHOD_CTX_SET_IS_FIELD ,
111111 GR_METHOD_CTX_SET_GEN_NAME ,
112112 GR_METHOD_CTX_SET_GEN_NAMES ,
113+ GR_METHOD_CTX_NGENS ,
114+ GR_METHOD_CTX_GEN_NAMES_SRCPTR ,
113115
114116 GR_METHOD_INIT ,
115117 GR_METHOD_CLEAR ,
@@ -719,6 +721,8 @@ typedef void ((*gr_method_init_clear_op)(gr_ptr, gr_ctx_ptr));
719721typedef void ((* gr_method_swap_op )(gr_ptr , gr_ptr , gr_ctx_ptr ));
720722typedef int ((* gr_method_ctx )(gr_ctx_ptr ));
721723typedef truth_t ((* gr_method_ctx_predicate )(gr_ctx_ptr ));
724+ typedef slong ((* gr_method_ctx_size )(gr_ctx_ptr ));
725+ typedef char const * const * ((* gr_method_ctx_gen_names_srcptr )(gr_ctx_ptr ));
722726typedef int ((* gr_method_ctx_set_si )(gr_ctx_ptr , slong ));
723727typedef int ((* gr_method_ctx_get_si )(slong * , gr_ctx_ptr ));
724728typedef int ((* gr_method_ctx_set_truth )(gr_ctx_ptr , truth_t ));
@@ -816,6 +820,8 @@ typedef int ((*gr_method_set_fexpr_op)(gr_ptr, fexpr_vec_t, gr_vec_t, const fexp
816820#define GR_CTX_OP (ctx , NAME ) (((gr_method_ctx *) ctx->methods)[GR_METHOD_ ## NAME])
817821#define GR_CTX_STREAM (ctx , NAME ) (((gr_method_ctx_stream *) ctx->methods)[GR_METHOD_ ## NAME])
818822#define GR_CTX_PREDICATE (ctx , NAME ) (((gr_method_ctx_predicate *) ctx->methods)[GR_METHOD_ ## NAME])
823+ #define GR_CTX_SIZE (ctx , NAME ) (((gr_method_ctx_size *) ctx->methods)[GR_METHOD_ ## NAME])
824+ #define GR_CTX_GEN_NAMES_SRCPTR (ctx , NAME ) (((gr_method_ctx_gen_names_srcptr *) ctx->methods)[GR_METHOD_ ## NAME])
819825#define GR_CTX_SET_SI (ctx , NAME ) (((gr_method_ctx_set_si *) ctx->methods)[GR_METHOD_ ## NAME])
820826#define GR_CTX_GET_SI (ctx , NAME ) (((gr_method_ctx_get_si *) ctx->methods)[GR_METHOD_ ## NAME])
821827#define GR_CTX_SET_TRUTH (ctx , NAME ) (((gr_method_ctx_set_truth *) ctx->methods)[GR_METHOD_ ## NAME])
@@ -940,6 +946,8 @@ GR_INLINE WARN_UNUSED_RESULT int gr_ctx_get_real_prec(slong * prec, gr_ctx_t ctx
940946GR_INLINE WARN_UNUSED_RESULT int gr_ctx_set_is_field (gr_ctx_t ctx , truth_t is_field ) { return GR_CTX_SET_TRUTH (ctx , CTX_SET_IS_FIELD )(ctx , is_field ); }
941947GR_INLINE WARN_UNUSED_RESULT int gr_ctx_set_gen_name (gr_ctx_t ctx , const char * s ) { return GR_CTX_SET_STR (ctx , CTX_SET_GEN_NAME )(ctx , s ); }
942948GR_INLINE WARN_UNUSED_RESULT int gr_ctx_set_gen_names (gr_ctx_t ctx , const char * * s ) { return GR_CTX_SET_STRS (ctx , CTX_SET_GEN_NAMES )(ctx , s ); }
949+ GR_INLINE slong gr_ctx_ngens (gr_ctx_t ctx ) { return GR_CTX_SIZE (ctx , CTX_NGENS )(ctx ); }
950+ GR_INLINE char const * const * gr_ctx_gen_names_srcptr (gr_ctx_t ctx ) { return GR_CTX_GEN_NAMES_SRCPTR (ctx , CTX_GEN_NAMES_SRCPTR )(ctx ); }
943951
944952GR_INLINE slong _gr_ctx_get_real_prec (gr_ctx_t ctx )
945953{
0 commit comments