summaryrefslogtreecommitdiff
path: root/src/c/specialFunctions/erfinv
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/specialFunctions/erfinv')
-rw-r--r--src/c/specialFunctions/erfinv/derfinvs.c8
-rw-r--r--src/c/specialFunctions/erfinv/serfinvs.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/src/c/specialFunctions/erfinv/derfinvs.c b/src/c/specialFunctions/erfinv/derfinvs.c
index 3f7fe761..2dce2051 100644
--- a/src/c/specialFunctions/erfinv/derfinvs.c
+++ b/src/c/specialFunctions/erfinv/derfinvs.c
@@ -28,7 +28,8 @@ double derfinvs (double inp1)
{
return 0.0/0.0; // returns Nan
}
- if ((inp1 >= -0.7) && (inp1 <= 0.7))
+
+ else if ((inp1 >= -0.7) && (inp1 <= 0.7))
{
double sq = inp1 * inp1;
return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1)); //Inverse error formula
@@ -45,5 +46,10 @@ double derfinvs (double inp1)
double z = sqrt(-log((1+inp1)/2));
return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula
}
+
+ else
+ {
+ return 0.0/0.0; // returns Nan
+ }
}
diff --git a/src/c/specialFunctions/erfinv/serfinvs.c b/src/c/specialFunctions/erfinv/serfinvs.c
index 5436fe39..55ba532f 100644
--- a/src/c/specialFunctions/erfinv/serfinvs.c
+++ b/src/c/specialFunctions/erfinv/serfinvs.c
@@ -29,7 +29,8 @@ float serfinvs (float inp1)
double na = 0.0/0.0;
return (float)na;
}
- if ((inp1 >= -0.7) && (inp1 <= 0.7))
+
+ else if ((inp1 >= -0.7) && (inp1 <= 0.7))
{
float sq = inp1 * inp1;
return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1)); //Inverse error formula
@@ -46,5 +47,10 @@ float serfinvs (float inp1)
float z = sqrt(-log((1+inp1)/2));
return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula
}
+
+ else
+ {
+ return 0.0/0.0;
+ }
}