About varocarbas.com

--

About me

--

Contact me

--

Visit customsolvers.com, another side of my work

--

Valid markup

--

Valid CSS

--

© 2015-2017 Alvaro Carballo Garcia

--

URL friendly

--

Optimised for 1920x1080 - Proudly mobile unfriendly

R&D projects RSS feed

All projects in full-screen mode

PDFs:

Project 10

Project 9

Project 8

FlexibleParser code analysis:

UnitParser

NumberParser

Tools:

Chromatic encryption

(v. 1.3)

Pages in customsolvers.com:

Upcoming additions

Failed projects

Active crawling bots:

Ranking type 2

(
)

Currently active or soon to be updated:

Domain ranking

FlexibleParser (DateParser)

NO NEW PROJECTS:
Project 10 is expected to be the last formal project of varocarbas.com. I will continue using this site as my main self-promotional R&D-focused online resource, but by relying on other more adequate formats like domain ranking.
Note that the last versions of all the successfully completed projects (5 to 10) will always be available.
PROJECT 10
Completed (24 days)

Introduction >

Overview

Completed (57 days)
Completed (26 days)
Completed (47 days)
Completed (19 days)
Completed (14 days)
Non-floating-point fractional exponentiation approach
Completed on 16-Nov-2016 (24 days)

Project 10 in full-screenProject 10 in PDF

This project explains the calculation methodology which I used to develop NumberParser's Math2.PowDecimal/Math2.SqrtDecimal, methods extending the native double (floating-point) implementations (i.e., Pow/Sqrt in System.Math) to decimal (not floating-point). It is eminently focused on fractional aspects because this is where the floating-point peculiarities are more influential, although there is also an integer exponentiation section.

Microsoft hasn't published the Pow/Sqrt source codes, but they are most likely very similar to equivalent functionalities in other languages or in mathematical libraries. While pre-analysing this whole situation, I took a look at the C library Cephes, which is an interesting reference for anyone looking for insights into all this.

Note that the floating-point peculiarities are precisely meant to efficiently deal with computationally-expensive calculations, what is certainly the case with exponentiation algorithms. Additionally, most of these algorithms are also relying on further assumptions and simplifications, at least for certain scenarios.

In summary, the goal of most of the existing (floating-point-based) exponentiation implementations is delivering reasonably accurate results as quickly as possible. On the other hand, the approach described here is mostly focused on delivering as accurate as possible results reasonably quickly.