summaryrefslogtreecommitdiff
path: root/src/financial.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/financial.c')
-rw-r--r--src/financial.c51
1 files changed, 20 insertions, 31 deletions
diff --git a/src/financial.c b/src/financial.c
index 337ff93..8bb208d 100644
--- a/src/financial.c
+++ b/src/financial.c
@@ -15,7 +15,7 @@
#include "mp.h"
static void
-calc_ctrm(MathEquation *equation, MPNumber *t, MPNumber *pint, MPNumber *fv, MPNumber *pv)
+calc_ctrm(MPNumber *t, MPNumber *pint, MPNumber *fv, MPNumber *pv)
{
/* Cterm - pint (periodic interest rate).
@@ -41,7 +41,6 @@ calc_ctrm(MathEquation *equation, MPNumber *t, MPNumber *pint, MPNumber *fv, MPN
mp_clear(&MP4);
}
-
static void
calc_ddb(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *life, MPNumber *period)
{
@@ -60,15 +59,14 @@ calc_ddb(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *life, MP
*
*/
- int i;
- int len;
+ long len;
MPNumber MPbv = mp_new();
MPNumber MP1 = mp_new();
MPNumber MP2 = mp_new();
mp_set_from_integer(0, &MPbv);
len = mp_to_integer(period);
- for (i = 0; i < len; i++) {
+ for (long i = 0; i < len; i++) {
mp_subtract(cost, &MPbv, &MP1);
mp_multiply_integer(&MP1, 2, &MP2);
mp_divide(&MP2, life, t);
@@ -86,9 +84,8 @@ calc_ddb(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *life, MP
mp_clear(&MP2);
}
-
static void
-calc_fv(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNumber *n)
+calc_fv(MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNumber *n)
{
/* Fv - pmt (periodic payment).
@@ -115,9 +112,8 @@ calc_fv(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNu
mp_clear(&MP4);
}
-
static void
-calc_gpm(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *margin)
+calc_gpm(MPNumber *t, MPNumber *cost, MPNumber *margin)
{
/* Gpm - cost (cost of sale).
@@ -137,9 +133,8 @@ calc_gpm(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *margin)
mp_clear(&MP2);
}
-
static void
-calc_pmt(MathEquation *equation, MPNumber *t, MPNumber *prin, MPNumber *pint, MPNumber *n)
+calc_pmt(MPNumber *t, MPNumber *prin, MPNumber *pint, MPNumber *n)
{
/* Pmt - prin (principal).
@@ -168,9 +163,8 @@ calc_pmt(MathEquation *equation, MPNumber *t, MPNumber *prin, MPNumber *pint, MP
mp_clear(&MP4);
}
-
static void
-calc_pv(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNumber *n)
+calc_pv(MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNumber *n)
{
/* Pv - pmt (periodic payment).
@@ -199,9 +193,8 @@ calc_pv(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *pint, MPNu
mp_clear(&MP4);
}
-
static void
-calc_rate(MathEquation *equation, MPNumber *t, MPNumber *fv, MPNumber *pv, MPNumber *n)
+calc_rate(MPNumber *t, MPNumber *fv, MPNumber *pv, MPNumber *n)
{
/* Rate - fv (future value).
@@ -228,9 +221,8 @@ calc_rate(MathEquation *equation, MPNumber *t, MPNumber *fv, MPNumber *pv, MPNum
mp_clear(&MP4);
}
-
static void
-calc_sln(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *salvage, MPNumber *life)
+calc_sln(MPNumber *t, MPNumber *cost, MPNumber *salvage, MPNumber *life)
{
/* Sln - cost (cost of the asset).
@@ -246,9 +238,8 @@ calc_sln(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *salvage,
mp_clear(&MP1);
}
-
static void
-calc_syd(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *salvage, MPNumber *life, MPNumber *period)
+calc_syd(MPNumber *t, MPNumber *cost, MPNumber *salvage, MPNumber *life, MPNumber *period)
{
/* Syd - cost (cost of the asset).
@@ -281,9 +272,8 @@ calc_syd(MathEquation *equation, MPNumber *t, MPNumber *cost, MPNumber *salvage,
mp_clear(&MP4);
}
-
static void
-calc_term(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *fv, MPNumber *pint)
+calc_term(MPNumber *t, MPNumber *pmt, MPNumber *fv, MPNumber *pint)
{
/* Term - pmt (periodic payment).
@@ -312,41 +302,40 @@ calc_term(MathEquation *equation, MPNumber *t, MPNumber *pmt, MPNumber *fv, MPNu
mp_clear(&MP4);
}
-
void
do_finc_expression(MathEquation *equation, int function, MPNumber *arg1, MPNumber *arg2, MPNumber *arg3, MPNumber *arg4)
{
MPNumber result = mp_new();
switch (function) {
case FINC_CTRM_DIALOG:
- calc_ctrm(equation, &result, arg1, arg2, arg3);
+ calc_ctrm(&result, arg1, arg2, arg3);
break;
case FINC_DDB_DIALOG:
calc_ddb(equation, &result, arg1, arg2, arg3);
break;
case FINC_FV_DIALOG:
- calc_fv(equation, &result, arg1, arg2, arg3);
+ calc_fv(&result, arg1, arg2, arg3);
break;
case FINC_GPM_DIALOG:
- calc_gpm(equation, &result, arg1, arg2);
+ calc_gpm(&result, arg1, arg2);
break;
case FINC_PMT_DIALOG:
- calc_pmt(equation, &result, arg1, arg2, arg3);
+ calc_pmt(&result, arg1, arg2, arg3);
break;
case FINC_PV_DIALOG:
- calc_pv(equation, &result, arg1, arg2, arg3);
+ calc_pv(&result, arg1, arg2, arg3);
break;
case FINC_RATE_DIALOG:
- calc_rate(equation, &result, arg1, arg2, arg3);
+ calc_rate(&result, arg1, arg2, arg3);
break;
case FINC_SLN_DIALOG:
- calc_sln(equation, &result, arg1, arg2, arg3);
+ calc_sln(&result, arg1, arg2, arg3);
break;
case FINC_SYD_DIALOG:
- calc_syd(equation, &result, arg1, arg2, arg3, arg4);
+ calc_syd(&result, arg1, arg2, arg3, arg4);
break;
case FINC_TERM_DIALOG:
- calc_term(equation, &result, arg1, arg2, arg3);
+ calc_term(&result, arg1, arg2, arg3);
break;
}
math_equation_set_number(equation, &result);