Daniel Kozak Posted in reply to rumbu text/html part Attachments:



Permalink Reply

Wow awesome, it would be nice if you could add it as a dub package ( http://code.dlang.org/publish) to dub repository (http://code.dlang.org) On Mon, Jan 8, 2018 at 11:16 PM, rumbu via Digitalmars-d-announce < digitalmars-d- announce@ puremagic.com> wrote: > This is my first D finalized project (+16k loc). > > I know that there are other two projects intended to provide a decimal data type for D, but I consider mine the most complete and most compliant to the standards (at least until now). > > There are two years of since I'm working on it (and learning D in the same time), but I concentrated most of the efforts in the last two months. > > It was a nice exercise because I was happy to remember the math I learn through my college years (trigonometry, logarithms, Taylor series, derivatives, etc). Unfortunately I'm not using the same math during my day-to day job. > > Maybe in another post I will share my struggles I encountered during the development (plenty of). But a big thank you goes to Rainer Schuetze: without Visual Studio and without the integrated debugger this project was impossible to maintain. > > Now on topic: > > - fully IEEE-754-2008 compliant; > - one flat file; > - using Intel's binary decimal enconding; > - three decimal data types: decimal32, decimal64 and decimal128 > - all D operators supported for all numeric types (left and right side > integrals, floats, chars); > - conversion supported from/to integrals, floats, bools, chars > - conversion to/from other decimal formats (Microsoft Currency, Microsoft > Decimal, IBM Densely Packed Decimal) > - all std.math functions implemented (even logarithms and trigonometry); > - all format specifiers implemented (%f, %e, %g, %a); > - integrated with phobos format and conversion functions (to, format, > writef); > - thread local precision (from 1 to 34 decimal digits); > - new rounding mode - Europe's most used - tiesToAway; > - alternate exception handling (through flags); > - minimal dependencies (some traits and some floating point functions); > - comprehensive documentation; > > Source code: > > Documentation: > > The project is more than in an alpha state, all operations were tested but not exhaustively. > > What's next: > - more tests; > - benchmarks; > > > This is my first D finalized project (+16k loc).I know that there are other two projects intended to provide a decimal data type for D, but I consider mine the most complete and most compliant to the standards (at least until now).There are two years of since I'm working on it (and learning D in the same time), but I concentrated most of the efforts in the last two months.It was a nice exercise because I was happy to remember the math I learn through my college years (trigonometry, logarithms, Taylor series, derivatives, etc). Unfortunately I'm not using the same math during my day-to day job.Maybe in another post I will share my struggles I encountered during the development (plenty of). But a big thank you goes to Rainer Schuetze: without Visual Studio and without the integrated debugger this project was impossible to maintain.Now on topic:- fully IEEE-754-2008 compliant;- one flat file;- using Intel's binary decimal enconding;- three decimal data types: decimal32, decimal64 and decimal128- all D operators supported for all numeric types (left and right sideintegrals, floats, chars);- conversion supported from/to integrals, floats, bools, chars- conversion to/from other decimal formats (Microsoft Currency, MicrosoftDecimal, IBM Densely Packed Decimal)- all std.math functions implemented (even logarithms and trigonometry);- all format specifiers implemented (%f, %e, %g, %a);- integrated with phobos format and conversion functions (to, format,writef);- thread local precision (from 1 to 34 decimal digits);- new rounding mode - Europe's most used - tiesToAway;- alternate exception handling (through flags);- minimal dependencies (some traits and some floating point functions);- comprehensive documentation;Source code: https:// github.com/ rumbu13/ decimal/ blob/master/ src/decimal.d Documentation: http:// rumbu13. github.io/ decimal/doc/ decimal.html The project is more than in an alpha state, all operations were tested but not exhaustively.What's next:- more tests;- benchmarks;