Re: [xsl] Is this the best way to compute a sigmoid function?

Subject: Re: [xsl] Is this the best way to compute a sigmoid function?
From: "John Lumley john.lumley@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 2 May 2020 20:53:11 -0000
o;?Apart from determining the value of G or the fine constant, or a few other
esoteric determination of funadamental constants, what practical issues
require more than 7-8 significant figures of precision?

Yes, some interplanetary differentials might at times. (Our moon recedes from
us as fast as your fingernails grow, and GPS internals can need sub-nanosecond
differential time intervals) but what ones we might encounter in the XML
world.

o;?The bfetishb of chasing decimal places in most, but not all, cases
shows a lack of understanding of the essence of the problem.

The (artificial) epitome of this is the well-trodden problem of a railway
around the world that must be lifted up 1 cm, but stays circular... how much
more rail is needed?
bWhere angels fear to treadb rush in with finding the difference by
 2*pi*6,357,000.01 - 2*pi*6,357,000
which requires 9-10 places of numerical precision (i.e. approaching 30 bits of
mantissa) neglecting the deeper structure of the mathematics..

John Lumley
john@xxxxxxxxxxxxxx

>> On 2 May 2020, at 19:09, Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> o;?
>
>> On 2 May 2020, at 18:55, Costello, Roger L. costello@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>>
>>
>> I want to compute the result of evaluating this sigmoid function:
>>
>>     1
>> ----------------
>> (1 + e**-x)
>>
>> That is, compute 1 divided by (1 + e raised to the -x power)
>
> In recent versions of XPath, you can simply do
>
> (1 div (1 + math:exp(-$x)))
>
>> (However, it already appears to be mighty accurate -- look at all those
digits to the right of the decimal point)
>
> I hope you don't seriously believe that precision implies accuracy - that
someone who claims the population of the world is 7,345,651,523 is more likely
to be right than someone who says it is 7 billion.
>
>> Notice that for the variable $e-to-the-minus-x-power I specified it this
way: as="xs:decimal". Should I have specified it this way: as="xs:float"
instead?
>
> For calculations like this it's best to use xs:double. You don't need any
more precision than this, and exponential/trigonometric functions are likely
to be implemented as double-precision floating point by whatever underlying
library is used.
>
> Michael Kay
> Saxonica
> XSL-List info and archive
> EasyUnsubscribe (by email)

Current Thread