|
Subject: Re: [xsl] Math "functions" for XSLT 1.0 From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Wed, 3 Mar 2010 19:37:55 -0800 |
> By the way, almost 30 years ago, I already knew that calculators never use
> Taylor series (CORDIC algorithms were written in 1959)... Even if they are
> mathematically correct, they require too many iterations for small systems
> and managing huge numbers such as factorials is not always possible. I'm
> interested in XSLT at browser side and speed is important.
I must comment on one other mis-statement here: " Even if they are
mathematically correct, they require too many iterations for small
systems and managing huge numbers such as factorials is not always
possible"
I want to assure our readers that nowhere in the FXSL implementation
of sin() (or any other Taylor series - based implementation), there
are " huge numbers such as factorials".
I don't think even a naive freshman implementation would use
"factorials". To be up to the point, the following 25 lines contain
the most significant template that carries out the sin() calculation
-- do you see a factorial anywhere?
<xsl:template name="_sineIter">
<xsl:param name="pX2"/>
<xsl:param name="pRslt"/>
<xsl:param name="pElem"/>
<xsl:param name="pN"/>
<xsl:param name="pEps"/>
<xsl:variable name="vnextN" select="$pN+2"/>
<xsl:variable name="vnewElem" select="-$pElem*$pX2 div
($vnextN*($vnextN - 1))"/>
<xsl:variable name="vnewResult" select="$pRslt + $vnewElem"/>
<xsl:variable name="vdiffResult" select="$vnewResult - $pRslt"/>
<xsl:choose>
<xsl:when test="$vdiffResult > $pEps or $vdiffResult < -$pEps">
<xsl:call-template name="_sineIter">
<xsl:with-param name="pX2" select="$pX2"/>
<xsl:with-param name="pRslt" select="$vnewResult"/>
<xsl:with-param name="pElem" select="$vnewElem"/>
<xsl:with-param name="pN" select="$vnextN"/>
<xsl:with-param name="pEps" select="$pEps"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$vnewResult"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The full code may be viewed here:
http://fxsl.cvs.sourceforge.net/viewvc/fxsl/fxsl-xslt2/f/func-trignm.xsl?revi
sion=1.3&view=markup
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
On Wed, Mar 3, 2010 at 10:49 AM, COUTHURES Alain
<alain.couthures@xxxxxxxxxxxxx> wrote:
> Dimitre,
>
> Unfortunately, FXSL is not in first results listed by Google when searching
> "xslt sin" or "xslt cos".
>
> By the way, almost 30 years ago, I already knew that calculators never use
> Taylor series (CORDIC algorithms were written in 1959)... Even if they are
> mathematically correct, they require too many iterations for small systems
> and managing huge numbers such as factorials is not always possible. I'm
> interested in XSLT at browser side and speed is important.
>
> So, if FXSL users consider it good enough for their requirements, it's good
> to know. Do you know if they are working at client-side or at server-side ?
>
> Because I spent no more than one day to find algorithms and less than one
> another to implement the ones I need, it wasn't for me a costly effort,
> anyway.
>
> If only Microsoft had already implemented XSLT 2.0, XPath 2.x, SVG,
> XForms,... more efforts would have been saved...
>
> Best regards,
>
> -Alain
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Math "functions" for XSLT, Dimitre Novatchev | Thread | Re: [xsl] Math "functions" for XSLT, Liam R E Quin |
| Re: [xsl] Math "functions" for XSLT, Dimitre Novatchev | Date | Re: [xsl] Pattern Substring, Senthilukvelaan |
| Month |