[Home] [By Thread] [By Date] [Recent Entries]

  • From: Stephen D Green <stephengreenubl@g...>
  • To: Roger L Costello <costello@m...>
  • Date: Sat, 27 Jun 2020 20:17:32 +0100

Isn’t the idea of divide by zero being an error just dogma we blindly accept over the years when dividing by zero is not actually an erroneous thing to do. The inability to return infinity is not an error of the calculation but an error of the compiler design.

On Sat, 27 Jun 2020 at 20:13, Roger L Costello <costello@m...> wrote:

Hi Folks,

I am writing a Machine Learning (ML) program using XML and XSLT. Part of the program involves evaluating something called a Sigmoid function:

The right-hand side of that expression can be expressed in XPath this way:

1 div (1 + math.exp(-$x))

An equivalent expression is this:

math:pow(1 + math:exp(-$x), -1)

Which expression is better? By "better" I mean any one of these:

  • produces more accurate results
  • is faster
  • is easier to understand, more intuitive

Or, are the two expressions equally good?

Scroll down for the answer …

 

 

 

The first one is better. Here’s why.

They are not equivalent! 1 div 0.0 and math:pow(0.0,-1) produce different results. The first throws an error with the message, “Decimal divide by zero.” The second silently (without error) returns INF; it might not be till some remote downstream process that the INF finally manifests an error. I want to be informed immediately of an error, so the first is definitely better for me.

Thank you David Carlisle for pointing out this difference to me.

/Roger

--
----
Stephen D Green


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member