[gcalctool] 0^0 = 1
- From: Robert Ancell <rancell src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gcalctool] 0^0 = 1
- Date: Sun, 20 Dec 2009 06:15:46 +0000 (UTC)
commit 508fb91a020642735670fb44c4eda031751b2dc1
Author: Robert Ancell <robert ancell gmail com>
Date: Sun Dec 20 17:12:10 2009 +1100
0^0 = 1
ChangeLog | 4 ++++
src/mp.c | 6 ++++++
src/unittest.c | 1 +
3 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 68c85ed..2ff94d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,10 @@
gcalctool change history.
=========================
+2009-12-20 Robert Ancell <robert ancell gmail com>
+
+ * Make 0^0 = 1 (Bug #605011)
+
2009-12-17 Robert Ancell <robert ancell gmail com>
* Make Ctrl+W a shortcut to quit
diff --git a/src/mp.c b/src/mp.c
index 52ad07c..bd0e963 100644
--- a/src/mp.c
+++ b/src/mp.c
@@ -1843,6 +1843,12 @@ mp_xpowy_integer(const MPNumber *x, int n, MPNumber *z)
return;
}
+ /* x^0 = 1 */
+ if (n == 0) {
+ mp_set_from_integer(1, z);
+ return;
+ }
+
/* 0^n = 0 */
if (mp_is_zero(x)) {
mp_set_from_integer(0, z);
diff --git a/src/unittest.c b/src/unittest.c
index 2286258..0f3988d 100644
--- a/src/unittest.c
+++ b/src/unittest.c
@@ -251,6 +251,7 @@ test_parser()
test("2²", "4", 0);
test("2³", "8", 0);
test("2¹�", "1024", 0);
+ test("0^0", "1", 0);
test("2^0", "1", 0);
test("2^1", "2", 0);
test("2^2", "4", 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]