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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Is this the best way to c, Dimitre Novatchev dn | Thread | Re: [xsl] Is this the best way to , Michael Kay mike@xxx |
Re: [xsl] Is this the best way to c, Dimitre Novatchev dn | Date | Re: [xsl] Is this the best way to , Michael Kay mike@xxx |
Month |