aboutsummaryrefslogtreecommitdiff
path: root/ic-reals-6.3/base/boolLib.c
diff options
context:
space:
mode:
authorDuncan Wilkie <antigravityd@gmail.com>2023-11-18 06:11:09 -0600
committerDuncan Wilkie <antigravityd@gmail.com>2023-11-18 06:11:09 -0600
commit11da511c784eca003deb90c23570f0873954e0de (patch)
treee14fdd3d5d6345956d67e79ae771d0633d28362b /ic-reals-6.3/base/boolLib.c
Initial commit.
Diffstat (limited to 'ic-reals-6.3/base/boolLib.c')
-rw-r--r--ic-reals-6.3/base/boolLib.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/ic-reals-6.3/base/boolLib.c b/ic-reals-6.3/base/boolLib.c
new file mode 100644
index 0000000..d6af083
--- /dev/null
+++ b/ic-reals-6.3/base/boolLib.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2000, Imperial College
+ *
+ * This file is part of the Imperial College Exact Real Arithmetic Library.
+ * See the copyright notice included in the distribution for conditions
+ * of use.
+ */
+
+#include <stdio.h>
+#include "real.h"
+#include "real-impl.h"
+
+/*
+ * A collection of convenient boolean predicates written in terms of
+ * more primitive functions defined elsewhere.
+ */
+
+Bool
+gt_R_QInt(Real x, int a, int b)
+{
+ return gt_R_0(sub_R_QInt(x, a, b));
+}
+
+Bool
+ltEq_R_0(Real x)
+{
+ return not_B(gt_R_0(x));
+}
+
+Bool
+ltEq_R_R(Real x, Real y)
+{
+ return ltEq_R_0(sub_R_R(x, y));
+}
+
+Bool
+lt_R_R(Real x, Real y)
+{
+ return lt_R_0(sub_R_R(x, y));
+}
+
+Bool
+lt_R_QInt(Real x, int a, int b)
+{
+ return gt_R_0(sub_QInt_R(a, b, x));
+}
+
+Bool
+lt_R_0(Real x)
+{
+ return not_B(gtEq_R_0(x));
+}
+
+Bool
+gtEq_R_QInt(Real x, int a, int b)
+{
+ return gtEq_R_0(sub_R_QInt(x, a, b));
+}
+
+Bool
+ltEq_R_QInt(Real x, int a, int b)
+{
+ return gtEq_R_0(sub_QInt_R(a, b, x));
+}
+
+Bool
+gtEq_R_R(Real x, Real y)
+{
+ return gtEq_R_0(sub_R_R(x, y));
+}
+
+Bool
+gt_R_R(Real x, Real y)
+{
+ return gt_R_0(sub_R_R(x, y));
+}
+