Mercurial > projects > dstep
diff dstep/coreservices/carboncore/fp.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/carboncore/fp.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,80 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 21, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.carboncore.fp; + +version (Tango) + import tango.stdc.math; + +else + import std.c.math; + + +//import dstep.AvailabilityMacros; +import dstep.coreservices.carboncore.ConditionalMacros; +import dstep.coreservices.carboncore.MacTypes; +import dstep.internal.Version; + + +alias short relop; + +const SIGDIGLEN = 36; + +extern (C) +{ + extern + { + const double pi; + } +} + +enum +{ + GREATERTHAN = 0, + LESSTHAN = 1, + EQUALTO = 2, + UNORDERED = 3 +} + +struct decimal +{ + byte sgn; + byte unused; + short exp; + + struct + { + ubyte length; + ubyte[SIGDIGLEN] text; + ubyte unused_; + } +} + +struct decform +{ + byte style; + short unused; + short digits; +} + +extern (C) +{ + double compound (double rate, double periods); + double annuity (double rate, double periods); + double randomx (double* x); + short relation (double x, double y); + void num2dec (decform* f, double x, decimal* d); + double dec2num (decimal* d); + void dec2str (decform* f, decimal* d, char* s); + void str2dec (char* s, short* ix, decimal* d, short* vp); + float dec2f (decimal* d); + short dec2s (decimal* d); + int dec2l (decimal* d); + double x80tod (extended80* x80); + void dtox80 (double* x, extended80* x80); + void x80told (extended80* x80, double* x); + void ldtox80 (double* x, extended80* x80); +} \ No newline at end of file