summaryrefslogtreecommitdiff
path: root/MLKDoubleFloat.m
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-07-29 19:56:21 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-07-29 19:56:21 +0200
commit9c3236394224167b31eeb402fa78928a0e3eb7fe (patch)
treedc76fdd35091dba953e62e1d737701292bb6f26d /MLKDoubleFloat.m
parent5df0d8d27dae228d9568de691ca434194170d1ac (diff)
Add a non-trivial number of arithmetic methods to number classes.
Diffstat (limited to 'MLKDoubleFloat.m')
-rw-r--r--MLKDoubleFloat.m46
1 files changed, 46 insertions, 0 deletions
diff --git a/MLKDoubleFloat.m b/MLKDoubleFloat.m
index 3a598fd..a60bd8c 100644
--- a/MLKDoubleFloat.m
+++ b/MLKDoubleFloat.m
@@ -24,6 +24,7 @@
#import <Foundation/NSString.h>
+#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
@@ -114,6 +115,51 @@
return [MLKDoubleFloat doubleFloatWithDouble:(value / [(MLKFloat*)arg doubleValue])];
}
+-(NSComparisonResult) compare:(MLKDoubleFloat *)arg
+{
+ if (self->value == arg->value)
+ return NSOrderedSame;
+ else if (self->value < arg->value)
+ return NSOrderedAscending;
+ else
+ return NSOrderedDescending;
+}
+
+-(BOOL) isEqual:(id)arg
+{
+ return ([arg isKindOfClass:[MLKDoubleFloat class]]
+ && self->value == ((MLKDoubleFloat *)arg)->value);
+}
+
+
+#define DEFINE_NULLARY_OPERATOR(NAME) \
+ -(MLKDoubleFloat *) NAME \
+ { \
+ return [MLKDoubleFloat doubleFloatWithDouble:(NAME (value))]; \
+ }
+
+DEFINE_NULLARY_OPERATOR (sin);
+DEFINE_NULLARY_OPERATOR (cos);
+DEFINE_NULLARY_OPERATOR (tan);
+DEFINE_NULLARY_OPERATOR (asin);
+DEFINE_NULLARY_OPERATOR (acos);
+DEFINE_NULLARY_OPERATOR (atan);
+DEFINE_NULLARY_OPERATOR (sinh);
+DEFINE_NULLARY_OPERATOR (cosh);
+DEFINE_NULLARY_OPERATOR (tanh);
+DEFINE_NULLARY_OPERATOR (exp);
+DEFINE_NULLARY_OPERATOR (log);
+DEFINE_NULLARY_OPERATOR (sqrt);
+DEFINE_NULLARY_OPERATOR (ceil);
+DEFINE_NULLARY_OPERATOR (floor);
+
+
+-(MLKDoubleFloat *) pow:(MLKDoubleFloat *)exponent
+{
+ return [MLKDoubleFloat doubleFloatWithDouble:
+ (pow (self->value, exponent->value))];
+}
+
-(NSString *) description
{
NSString *str = [NSString stringWithFormat:@"%e", value];