xsl-list
[Top] [All Lists]

Re: [xsl] trig functions in XSL?

2009-01-11 17:21:47
On Sun, Jan 11, 2009 at 1:06 PM, Stuart A. Yeates 
<syeates(_at_)gmail(_dot_)com> wrote:
Hello

I'm wanting to use trig functions (cos, sin and tan) for  generating
some SVG. There seem to be lots of libraries and templates around to
do these, does someone have advice on which is the best to use?

My priorities are:
(a) XSL 1.0
(b) Cross platform

I'm not all that concerned about efficiency.

Hi Stuart,

This is exactly when you can use FXSL 1.x (for XSLT 1.0):

Here is a test example from the library:

testTrig.xsl
========


<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

 <xsl:import href="trignm.xsl"/>
 <!-- To be applied on any xml file -->

 <xsl:output method="text"/>

  <xsl:template match="/">
         <xsl:call-template name="cos">
            <xsl:with-param name="pX" select="240"/>
        <xsl:with-param name="pUnit" select="'deg'"/>
         </xsl:call-template>

  </xsl:template>
</xsl:stylesheet>

The result is:

-0.5000000000079126


All trig functions and there inverese functions are ready for you to use.

Regarding your priorities:


My priorities are:
(a) XSL 1.0

   Yes.

(b) Cross platform

Yes. FXSL 1.x is written in XSLT 1.0.  The only extension function
used is xxx:node-set(). I would recommend to use the edition of FXSL
1.x, which uses the EXSLT function ext:node-set(), as most XSLT 1.0
processors, including the .NET CompiledXslTransform class, do support
this ext:node-set() extension function.


I'm not all that concerned about efficiency.

The FXSL implementation uses good algorithms (fast converging Taylor
series and the Newton - Raphston method for the inverse functions) so
its time complexity is not too bad :)


Whenever you upgrade to XSLT 2.0 you may prefer to use FXSL 2, which
does not use any extension functions at all.




-- 
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





cheers
stuart

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





-- 
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--