About varocarbas.com


About me


Contact me


Visit customsolvers.com, my main website


Valid markup


Valid CSS


© 2015-2018 Alvaro Carballo Garcia


URL friendly


Optimised for 1920x1080 - Proudly mobile unfriendly

All projects in full-screen mode


Project 10

Project 9

Project 8

FlexibleParser code analysis:




Chromatic encryption

(v. 1.3)

Pages in customsolvers.com:

Upcoming additions

Failed projects

Active crawling bots:

Ranking type 2


FlexibleParser raw data:

Unit conversion (UnitParser)

Compound types (UnitParser)

Timezones (DateParser)

Currently active or soon to be updated:

Domain ranking

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.
Completed (24 days)
Completed (57 days)
Completed (26 days)
Completed (47 days)
Completed (19 days)
Completed (14 days)

Introduction >

NumberParser Code (.NET/C#) >

Adapted native mathematical functionalities

DateParser Code (.NET/C#) >

NumberParser code (.NET/C#) >
Adapted native mathematical functionalities
Additionally to the custom methods described in the previous section, Math2 also includes NumberD-adapted versions of all the .NET native System.Math functions. Most of the code of all these implementations is stored in the files and subfolders of the Math2 folder whose names include "Existing".

The NumberX calculation rules aren't fully applicable to these situations, where the format of the given native method has to be met. For example, NumberD numberD = Math2.Abs(new NumberD(12345, 6789)); triggers an error because the input number (i.e., 12345*10^6789) is outside the maximum range supported by System.Math.Abs (i.e., the double type range).

On the other hand, the NumberD versions can deal with most of the scenarios involving numeric types not supported by the native methods. For example, NumberD numberD = Math2.Cos(123.456m); (with 123.456m being implicitly converted to new NumberD(123.456m)) works fine despite the impossibility of double val = Math.Cos(123.456m);. In these situations, NumberParser performs a conversion to the most adequate natively-supported type (double in this example).