summaryrefslogtreecommitdiff
path: root/set.c
diff options
context:
space:
mode:
Diffstat (limited to 'set.c')
-rw-r--r--set.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/set.c b/set.c
new file mode 100644
index 0000000..edaec9e
--- /dev/null
+++ b/set.c
@@ -0,0 +1,67 @@
+#include "bc.h"
+
+bc_num *bc_set(bc_num *a, bc_num *b)
+{
+ a->n = b->n;
+ return a;
+}
+
+bc_num *bc_inc(bc_num *a)
+{
+ a->n++;
+ return a;
+}
+
+bc_num *bc_dec(bc_num *a)
+{
+ a->n--;
+ return a;
+}
+
+bc_num *bc_sadd(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_add(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}
+
+bc_num *bc_ssub(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_sub(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}
+
+bc_num *bc_smul(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_mul(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}
+
+bc_num *bc_sdiv(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_div(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}
+
+bc_num *bc_smod(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_mod(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}
+
+bc_num *bc_spow(bc_num *a, bc_num *b)
+{
+ bc_num *tmp = bc_pow(a, b);
+ bc_set(a, tmp);
+ bc_free(tmp);
+ return a;
+}