aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/symmetrica-bruch.patch
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2019-06-19 07:57:57 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-06-20 10:19:12 +0200
commit75a73bb024c840dc7a917a527915ff8d8d918af8 (patch)
tree3f0ccfad8e6c452499b1fff852b8d816b002e70f /gnu/packages/patches/symmetrica-bruch.patch
parenta42cb6f1f18e33d0e8d54260ebe5ad23c5d3f2fe (diff)
downloadguix-75a73bb024c840dc7a917a527915ff8d8d918af8.tar
guix-75a73bb024c840dc7a917a527915ff8d8d918af8.tar.gz
gnu: Add symmetrica.
* gnu/packages/algebra.scm (symmetrica): New variable. * gnu/packages/patches/symmetrica-bruch.patch: * gnu/packages/patches/symmetrica-int32.patch: * gnu/packages/patches/symmetrica-return_values.patch: * gnu/packages/patches/symmetrica-sort_sum_rename.patch: New files. * gnu/local.mk (dist_patch_DATA): Add patches.
Diffstat (limited to 'gnu/packages/patches/symmetrica-bruch.patch')
-rw-r--r--gnu/packages/patches/symmetrica-bruch.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/gnu/packages/patches/symmetrica-bruch.patch b/gnu/packages/patches/symmetrica-bruch.patch
new file mode 100644
index 0000000000..ae88b79206
--- /dev/null
+++ b/gnu/packages/patches/symmetrica-bruch.patch
@@ -0,0 +1,38 @@
+--- src/bruch.c 2007-12-06 11:30:00.000000000 -0500
++++ b/bruch.c 2013-10-22 08:37:43.000000000 -0400
+@@ -975,14 +975,16 @@
+ ggterg = ggt_i(S_B_UI(bruch),S_B_OI(bruch));
+
+ if (ggterg == S_B_UI(bruch)) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(S_B_OI(bruch) / ggterg,bruch);
++ M_I_I(tmp / ggterg,bruch);
+ goto ende;
+ }
+
+ if (-ggterg == S_B_UI(bruch)) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(- S_B_OI(bruch) / ggterg,bruch);
++ M_I_I(- tmp / ggterg,bruch);
+ goto ende;
+ }
+
+@@ -1032,12 +1034,14 @@
+
+ if (S_O_K(S_B_U(bruch)) == INTEGER)
+ if (S_B_UI(bruch) == 1) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I(S_B_OI(bruch),bruch);
++ M_I_I(tmp,bruch);
+ goto ende; }
+ else if (S_B_UI(bruch) == -1) {
++ INT tmp = S_B_OI(bruch);
+ freeself_bruch(bruch);
+- M_I_I( - S_B_OI(bruch),bruch);
++ M_I_I( - tmp,bruch);
+ goto ende; }
+ if (NEGP(S_B_O(bruch)) && NEGP(S_B_U(bruch)))
+ {