aboutsummaryrefslogtreecommitdiff
path: root/double.c
diff options
context:
space:
mode:
Diffstat (limited to 'double.c')
-rw-r--r--double.c49
1 files changed, 28 insertions, 21 deletions
diff --git a/double.c b/double.c
index 0799e7d..5ab6178 100644
--- a/double.c
+++ b/double.c
@@ -4,46 +4,53 @@
#include <stdio.h>
#include <stdbool.h>
-double int_to_valuetype(int i){ return (double) i; }
+typedef long double vtype;
+typedef long double etype;
-double int_to_exptype(double d){ return d; }
+vtype int_to_valuetype(int i){ return (vtype)i; }
-double infinity_to_exptype(){ return INFINITY; }
+etype int_to_exptype(int d){ return (etype)d; }
-bool exptype_is_infinite(double d){ return d==INFINITY; }
+etype infinity_to_exptype(){ return INFINITY; }
-double sum(double d1, double d2){ return d1+d2; }
+bool exptype_is_infinite(etype d){ return d==INFINITY; }
-double difference(double d1, double d2){ return d1-d2; }
+vtype sum(vtype d1, vtype d2){ return d1+d2; }
-bool is_greater_certainly(double d1, double d2){ return (d1 > d2); }
+vtype difference(vtype d1, vtype d2){ return d1-d2; }
-bool is_greater_possibly(double d1, double d2){ return is_greater_certainly(d1,d2); }
+bool is_greater_certainly(vtype d1, vtype d2){ return (d1 > d2); }
-double maximum(double d1, double d2){
+bool is_greater_possibly(vtype d1, vtype d2){ return is_greater_certainly(d1,d2); }
+
+vtype maximum(vtype d1, vtype d2){
if(d1>d2) return d1;
else return d2;
}
-double product(double d1, double d2){ return d1*d2; }
+vtype product(vtype d1, vtype d2){ return d1*d2; }
-double ratio(double d1, double d2){ return d1/d2; }
+vtype ratio(vtype d1, vtype d2){ return d1/d2; }
-double absolute(double d){ return fabs(d); }
+vtype absolute(vtype d){
+ //return fabs(d);
+ return fabsl(d);
+}
-double power(double d, double p) { return pow(d,p); }
+vtype power(vtype d, vtype p) { return pow(d,p); }
-double valuetype_to_double(double d){ return d; }
+double valuetype_to_double(vtype d){ return (double)d; }
-int valuetype_to_string(char* s, double d){
+int valuetype_to_string(char* s, vtype d){
if( d == 0.0 || d == 1.0 || d == 2.0 || d == 4.0 || d == 8.0 || d == 16.0 ) sprintf(s,"%d", (int)d);
- else sprintf(s,"%4.3f",d);
+ //else sprintf(s,"%4.3f",d);
+ else sprintf(s,"%4.3Lf",d);
return 0;
}
-int valuetype_to_latex(char* s, double d){ return valuetype_to_string(s,d); }
+int valuetype_to_latex(char* s, vtype d){ return valuetype_to_string(s,d); }
-int exptype_to_string(char *s, double p){
+int exptype_to_string(char *s, etype p){
if(exptype_is_infinite(p)){
sprintf(s,"inf");
return 0;
@@ -51,7 +58,7 @@ int exptype_to_string(char *s, double p){
else return valuetype_to_string(s,p);
}
-int exptype_to_latex(char *s, double p){
+int exptype_to_latex(char *s, etype p){
if(exptype_is_infinite(p)){
sprintf(s,"\\infty");
return 0;
@@ -59,13 +66,13 @@ int exptype_to_latex(char *s, double p){
else return valuetype_to_latex(s,p);
}
-int root_to_string(char* s, double d, double p){
+int root_to_string(char* s, vtype d, etype p){
if(exptype_is_infinite(p)) valuetype_to_string(s,d);
else valuetype_to_string(s,pow(d,1.0/p));
return 0;
}
-int root_to_latex(char* s, double d, double p){
+int root_to_latex(char* s, vtype d, etype p){
if(exptype_is_infinite(p)) valuetype_to_latex(s,d);
else valuetype_to_latex(s,pow(d,1.0/p));
return 0;