[gnumeric] IMPOWER: extend domain.



commit 643074c3678bafc95538fb46e0ffa288a75aa0a6
Author: Morten Welinder <terra gnome org>
Date:   Mon Aug 23 19:18:07 2010 -0400

    IMPOWER: extend domain.

 NEWS                           |    1 +
 plugins/fn-complex/ChangeLog   |    4 ++++
 plugins/fn-complex/functions.c |    5 ++++-
 3 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/NEWS b/NEWS
index 8333d94..f3156f3 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ Morten:
 	* Plug sylk importer leak.
 	* Plug xml importer leak.
 	* Plug odf importer leak.  [#627759]
+	* Extend domain of IMPOWER.  [#627775]
 
 --------------------------------------------------------------------------
 Gnumeric 1.10.9
diff --git a/plugins/fn-complex/ChangeLog b/plugins/fn-complex/ChangeLog
index ce0ce11..22ec045 100644
--- a/plugins/fn-complex/ChangeLog
+++ b/plugins/fn-complex/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-23  Morten Welinder  <terra gnome org>
+
+	* functions.c (gnumeric_impower): Extend domain.
+
 2010-08-16  Morten Welinder <terra gnome org>
 
 	* Release 1.10.9
diff --git a/plugins/fn-complex/functions.c b/plugins/fn-complex/functions.c
index 434944d..062e4fb 100644
--- a/plugins/fn-complex/functions.c
+++ b/plugins/fn-complex/functions.c
@@ -541,10 +541,13 @@ gnumeric_impower (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
 	if (value_get_as_complex (argv[1], &b, &imunit))
 		return value_new_error_VALUE (ei->pos);
 
-	if (complex_real_p (&a) && a.re <= 0 && !complex_real_p (&b))
+	if (complex_zero_p (&a) && complex_zero_p (&b))
 		return value_new_error_DIV0 (ei->pos);
 
 	complex_pow (&res, &a, &b);
+	if (complex_invalid_p (&res))
+		return value_new_error_VALUE (ei->pos);
+
 	return value_new_complex (&res, imunit);
 }
 



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