[seed] [mpfr] Added various comparison functions



commit f1b1b0747ac4ac190bb004f9df448c5bf90c7469
Author: Matt ARSENAULT <arsenm2 rpi edu>
Date:   Sun Jul 5 12:19:12 2009 -0400

    [mpfr] Added various comparison functions

 modules/mpfr/seed-mpfr-cmp.c |  188 ++++++++++++++++++++++++++++++++++++++++++
 modules/mpfr/seed-mpfr.c     |    7 ++
 modules/mpfr/seed-mpfr.h     |    7 ++
 3 files changed, 202 insertions(+), 0 deletions(-)
---
diff --git a/modules/mpfr/seed-mpfr-cmp.c b/modules/mpfr/seed-mpfr-cmp.c
index dc74e35..5f76e94 100644
--- a/modules/mpfr/seed-mpfr-cmp.c
+++ b/modules/mpfr/seed-mpfr-cmp.c
@@ -138,6 +138,26 @@ seed_mpfr_zero_p (SeedContext ctx,
     return seed_value_from_boolean(ctx, ret, exception);
 }
 
+SeedValue
+seed_mpfr_sgn (SeedContext ctx,
+               SeedObject function,
+               SeedObject this_object,
+               gsize argument_count,
+               const SeedValue args[],
+               SeedException * exception)
+{
+    mpfr_ptr rop;
+    gint ret;
+
+    CHECK_ARG_COUNT("mpfr.sgn", 0);
+
+    rop = seed_object_get_private(this_object);
+
+    ret = mpfr_sgn(rop);
+
+    return seed_value_from_int(ctx, ret, exception);
+}
+
 SeedValue seed_mpfr_greater_p (SeedContext ctx,
                                SeedObject function,
                                SeedObject this_object,
@@ -166,3 +186,171 @@ SeedValue seed_mpfr_greater_p (SeedContext ctx,
     return seed_value_from_boolean(ctx, ret, exception);
 }
 
+SeedValue seed_mpfr_greaterequal_p (SeedContext ctx,
+                                    SeedObject function,
+                                    SeedObject this_object,
+                                    gsize argument_count,
+                                    const SeedValue args[],
+                                    SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.greaterequal_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.greaterequal_p", "mpfr_t");
+    }
+
+    ret = mpfr_greaterequal_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
+SeedValue seed_mpfr_less_p (SeedContext ctx,
+                            SeedObject function,
+                            SeedObject this_object,
+                            gsize argument_count,
+                            const SeedValue args[],
+                            SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.less_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.less_p", "mpfr_t");
+    }
+
+    ret = mpfr_less_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
+SeedValue seed_mpfr_lessequal_p (SeedContext ctx,
+                                 SeedObject function,
+                                 SeedObject this_object,
+                                 gsize argument_count,
+                                 const SeedValue args[],
+                                 SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.less_equal_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.less_equal_p", "mpfr_t");
+    }
+
+    ret = mpfr_lessequal_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
+SeedValue seed_mpfr_lessgreater_p (SeedContext ctx,
+                                   SeedObject function,
+                                   SeedObject this_object,
+                                   gsize argument_count,
+                                   const SeedValue args[],
+                                   SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.lessgreater_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.lessgreater_p", "mpfr_t");
+    }
+
+    ret = mpfr_lessgreater_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
+SeedValue seed_mpfr_equal_p (SeedContext ctx,
+                             SeedObject function,
+                             SeedObject this_object,
+                             gsize argument_count,
+                             const SeedValue args[],
+                             SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.equal_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.equal_p", "mpfr_t");
+    }
+
+    ret = mpfr_equal_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
+SeedValue seed_mpfr_unordered_p (SeedContext ctx,
+                                 SeedObject function,
+                                 SeedObject this_object,
+                                 gsize argument_count,
+                                 const SeedValue args[],
+                                 SeedException * exception)
+{
+    mpfr_ptr rop, op;
+    gboolean ret;
+
+    CHECK_ARG_COUNT("mpfr.unordered_p", 1);
+
+    rop = seed_object_get_private(this_object);
+
+    if ( seed_value_is_object_of_class(ctx, args[0], mpfr_class) )
+    {
+        op = seed_object_get_private(args[0]);
+    }
+    else
+    {
+        TYPE_EXCEPTION("mpfr.unordered_p", "mpfr_t");
+    }
+
+    ret = mpfr_unordered_p(rop, op);
+
+    return seed_value_from_boolean(ctx, ret, exception);
+}
+
diff --git a/modules/mpfr/seed-mpfr.c b/modules/mpfr/seed-mpfr.c
index 2cb1ab6..06bbc8d 100644
--- a/modules/mpfr/seed-mpfr.c
+++ b/modules/mpfr/seed-mpfr.c
@@ -633,10 +633,17 @@ seed_static_function mpfr_funcs[] =
     {"cmp", seed_mpfr_cmp, 0},
     {"cmpabs", seed_mpfr_cmpabs, 0},
     {"greater_p", seed_mpfr_greater_p, 0},
+    {"greaterequal_p", seed_mpfr_greaterequal_p, 0},
+    {"less_p", seed_mpfr_less_p, 0},
+    {"lessequal_p", seed_mpfr_lessequal_p, 0},
+    {"lessgreater_p", seed_mpfr_lessgreater_p, 0},
+    {"equal_p", seed_mpfr_equal_p, 0},
+    {"unordered_p", seed_mpfr_unordered_p, 0},
     {"nan_p", seed_mpfr_nan_p, 0},
     {"inf_p", seed_mpfr_inf_p, 0},
     {"number_p", seed_mpfr_number_p, 0},
     {"zero_p", seed_mpfr_zero_p, 0},
+    {"sgn", seed_mpfr_sgn, 0},
     {"get_d", seed_mpfr_get_d, 0},
     {"fits_ulong_p", seed_mpfr_fits_ulong_p, 0},
     {"fits_slong_p", seed_mpfr_fits_slong_p, 0},
diff --git a/modules/mpfr/seed-mpfr.h b/modules/mpfr/seed-mpfr.h
index a9a4d95..8bd2a7f 100644
--- a/modules/mpfr/seed-mpfr.h
+++ b/modules/mpfr/seed-mpfr.h
@@ -94,8 +94,15 @@ DEF_SEED_MPFR_FUNC(seed_mpfr_nan_p);
 DEF_SEED_MPFR_FUNC(seed_mpfr_inf_p);
 DEF_SEED_MPFR_FUNC(seed_mpfr_number_p);
 DEF_SEED_MPFR_FUNC(seed_mpfr_zero_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_sgn);
 
 DEF_SEED_MPFR_FUNC(seed_mpfr_greater_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_greaterequal_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_less_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_lessequal_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_lessgreater_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_equal_p);
+DEF_SEED_MPFR_FUNC(seed_mpfr_unordered_p);
 
 #endif      /* _SEED_MFPR_H_ */
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]