[gnumeric] complex_fact: switch to value api.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] complex_fact: switch to value api.
- Date: Sat, 13 Feb 2016 04:04:11 +0000 (UTC)
commit c81f7479bba4477693686c64b3f7fa52893a11f9
Author: Morten Welinder <terra gnome org>
Date: Fri Feb 12 22:27:42 2016 -0500
complex_fact: switch to value api.
plugins/fn-complex/functions.c | 5 ++---
src/sf-gamma.c | 16 ++++++++--------
src/sf-gamma.h | 2 +-
3 files changed, 11 insertions(+), 12 deletions(-)
---
diff --git a/plugins/fn-complex/functions.c b/plugins/fn-complex/functions.c
index 4673c00..c4eb41d 100644
--- a/plugins/fn-complex/functions.c
+++ b/plugins/fn-complex/functions.c
@@ -1068,14 +1068,13 @@ static GnmFuncHelp const help_imfact[] = {
static GnmValue *
gnumeric_imfact (GnmFuncEvalInfo *ei, GnmValue const * const *argv)
{
- gnm_complex c, res;
+ gnm_complex c;
char imunit;
if (value_get_as_complex (argv[0], &c, &imunit))
return value_new_error_NUM (ei->pos);
- complex_fact (&res, &c);
- return value_new_complex (&res, imunit);
+ return value_new_complexv (gnm_complex_fact (c), imunit);
}
/***************************************************************************/
diff --git a/src/sf-gamma.c b/src/sf-gamma.c
index 2081962..952c99c 100644
--- a/src/sf-gamma.c
+++ b/src/sf-gamma.c
@@ -1259,7 +1259,7 @@ complex_gamma (gnm_complex *dst, gnm_complex const *src)
gnm_complex a, b, mz;
gnm_complex_init (&mz, -src->re, -src->im);
- complex_fact (&a, &mz);
+ a = gnm_complex_fact (mz);
gnm_complex_init (&b,
M_PIgnum * gnm_fmod (src->re, 2),
@@ -1303,19 +1303,19 @@ complex_gamma (gnm_complex *dst, gnm_complex const *src)
/* ------------------------------------------------------------------------- */
-void
-complex_fact (gnm_complex *dst, gnm_complex const *src)
+gnm_complex
+gnm_complex_fact (gnm_complex src)
{
- if (gnm_complex_real_p (src)) {
- gnm_complex_init (dst, gnm_fact (src->re), 0);
+ if (gnm_complex_real_p (&src)) {
+ return GNM_CREAL (gnm_fact (src.re));
} else {
/*
* This formula is valid for all arguments except zero
* which we conveniently handled above.
*/
gnm_complex gz;
- complex_gamma (&gz, src);
- gnm_complex_mul (dst, &gz, src);
+ complex_gamma (&gz, &src);
+ return GNM_CMUL (gz, src);
}
}
@@ -1333,7 +1333,7 @@ complex_temme_D (gnm_complex *res, gnm_complex const *a, gnm_complex const *z)
gnm_complex_pow (&t, z, a);
gnm_complex_exp (&ez, z);
gnm_complex_div (&t, &t, &ez);
- complex_fact (&fa, a);
+ fa = gnm_complex_fact (*a);
gnm_complex_div (res, &t, &fa);
}
diff --git a/src/sf-gamma.h b/src/sf-gamma.h
index 7f6b02f..815b1f1 100644
--- a/src/sf-gamma.h
+++ b/src/sf-gamma.h
@@ -11,7 +11,7 @@ gnm_float gnm_gamma (gnm_float x);
gnm_float gnm_fact (gnm_float x);
int qfactf (gnm_float x, GnmQuad *mant, int *exp2);
void complex_gamma (gnm_complex *dst, gnm_complex const *src);
-void complex_fact (gnm_complex *dst, gnm_complex const *src);
+gnm_complex gnm_complex_fact (gnm_complex src);
void complex_igamma (gnm_complex *dst, gnm_complex const *a, gnm_complex const *z,
gboolean lower, gboolean regularized);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]