mirror of
https://github.com/jezhiggins/arabica
synced 2024-11-15 19:48:00 +01:00
Useful performance testing example
This commit is contained in:
parent
9d0ac38302
commit
5a42e28743
2 changed files with 136 additions and 0 deletions
40
bin/fractal.xml
Normal file
40
bin/fractal.xml
Normal file
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- XSLT Mandelbrot - written by Joel Yliluoma 2007, http://iki.fi/bisqwit/ -->
|
||||
<?xml-stylesheet type='text/xsl' href='mandelbrot.xsl'?>
|
||||
<fractal>
|
||||
<scale>100</scale>
|
||||
<y><min>-120</min> <max>120</max> <step>3.9</step></y>
|
||||
<x><min>-203</min> <max>100</max> <step>1.4</step></x>
|
||||
<maxiter>28</maxiter>
|
||||
|
||||
<background>#500</background>
|
||||
|
||||
<magnitude value="0"><symbol>.</symbol><color>#115</color></magnitude>
|
||||
<magnitude value="1"><symbol>.</symbol><color>#228</color></magnitude>
|
||||
<magnitude value="2"><symbol>.</symbol><color>#22B</color></magnitude>
|
||||
<magnitude value="3"><symbol>.</symbol><color>#33D</color></magnitude>
|
||||
<magnitude value="4"><symbol>.</symbol><color>#44F</color></magnitude>
|
||||
<magnitude value="5"><symbol>+</symbol><color>#55C</color></magnitude>
|
||||
<magnitude value="6"><symbol>+</symbol><color>#55D</color></magnitude>
|
||||
<magnitude value="7"><symbol>+</symbol><color>#55E</color></magnitude>
|
||||
<magnitude value="8"><symbol>*</symbol><color>#55F</color></magnitude>
|
||||
<magnitude value="9"><symbol>*</symbol><color>#66F</color></magnitude>
|
||||
<magnitude value="10"><symbol>*</symbol><color>#77F</color></magnitude>
|
||||
<magnitude value="11"><symbol>*</symbol><color>#88F</color></magnitude>
|
||||
<magnitude value="12"><symbol>#</symbol><color>#88F</color></magnitude>
|
||||
<magnitude value="13"><symbol>*</symbol><color>#99F</color></magnitude>
|
||||
<magnitude value="14"><symbol>#</symbol><color>#99F</color></magnitude>
|
||||
<magnitude value="15"><symbol>*</symbol><color>#AAF</color></magnitude>
|
||||
<magnitude value="16"><symbol>#</symbol><color>#AAF</color></magnitude>
|
||||
<magnitude value="17"><symbol>*</symbol><color>#BBF</color></magnitude>
|
||||
<magnitude value="18"><symbol>#</symbol><color>#BBF</color></magnitude>
|
||||
<magnitude value="19"><symbol>*</symbol><color>#CCF</color></magnitude>
|
||||
<magnitude value="20"><symbol>#</symbol><color>#CCF</color></magnitude>
|
||||
<magnitude value="21"><symbol>*</symbol><color>#DDF</color></magnitude>
|
||||
<magnitude value="22"><symbol>#</symbol><color>#DDF</color></magnitude>
|
||||
<magnitude value="23"><symbol>*</symbol><color>#EEF</color></magnitude>
|
||||
<magnitude value="24"><symbol>#</symbol><color>#EEF</color></magnitude>
|
||||
<magnitude value="25"><symbol>*</symbol><color>#FFF</color></magnitude>
|
||||
<magnitude value="26"><symbol>#</symbol><color>#FFF</color></magnitude>
|
||||
<magnitude value="27"><symbol>.</symbol><color>#000</color></magnitude>
|
||||
</fractal>
|
96
bin/mandelbrot.xsl
Normal file
96
bin/mandelbrot.xsl
Normal file
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<!-- XSLT Mandelbrot - written by Joel Yliluoma 2007, http://iki.fi/bisqwit/ -->
|
||||
|
||||
<xsl:output method="html" indent="no"
|
||||
doctype-public="-//W3C//DTD HTML 4.01//EN"
|
||||
doctype-system="http://www.w3.org/TR/REC-html40/strict.dtd"
|
||||
/>
|
||||
|
||||
<xsl:template match="/fractal">
|
||||
<html>
|
||||
<head>
|
||||
<title>XSLT fractal</title>
|
||||
<style type="text/css">
|
||||
body { color:#55F; background:#000 }
|
||||
pre { font-family:monospace; font-size:7px }
|
||||
pre span { background:<xsl:value-of select="background" /> }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div style="position:absolute;top:20px;left:20em">
|
||||
Copyright 1992,2007 Joel Yliluoma
|
||||
(<a href="http://iki.fi/bisqwit/">http://iki.fi/bisqwit/</a>)
|
||||
</div>
|
||||
<h1 style="margin:0px">XSLT fractal</h1>
|
||||
<pre><xsl:call-template name="bisqwit-mandelbrot" /></pre>
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="bisqwit-mandelbrot">
|
||||
<xsl:call-template name="bisqwit-mandelbrot-line">
|
||||
<xsl:with-param name="y" select="y/min"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="bisqwit-mandelbrot-line">
|
||||
<xsl:param name="y"/>
|
||||
<xsl:call-template name="bisqwit-mandelbrot-column">
|
||||
<xsl:with-param name="x" select="x/min"/>
|
||||
<xsl:with-param name="y" select="$y"/>
|
||||
</xsl:call-template>
|
||||
<xsl:if test="$y < y/max">
|
||||
<br/>
|
||||
<xsl:call-template name="bisqwit-mandelbrot-line">
|
||||
<xsl:with-param name="y" select="$y + y/step"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="bisqwit-mandelbrot-column">
|
||||
<xsl:param name="x"/>
|
||||
<xsl:param name="y"/>
|
||||
<xsl:call-template name="bisqwit-mandelbrot-slot">
|
||||
<xsl:with-param name="x" select="$x" />
|
||||
<xsl:with-param name="y" select="$y" />
|
||||
<xsl:with-param name="zr" select="$x" />
|
||||
<xsl:with-param name="zi" select="$y" />
|
||||
</xsl:call-template>
|
||||
<xsl:if test="$x < x/max">
|
||||
<xsl:call-template name="bisqwit-mandelbrot-column">
|
||||
<xsl:with-param name="x" select="$x + x/step"/>
|
||||
<xsl:with-param name="y" select="$y" />
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="bisqwit-mandelbrot-slot">
|
||||
<xsl:param name="x"/>
|
||||
<xsl:param name="y"/>
|
||||
<xsl:param name="zr"/>
|
||||
<xsl:param name="zi"/>
|
||||
<xsl:param name="iter" select="0"/>
|
||||
<xsl:variable name="zrsqr" select="($zr * $zr)"/>
|
||||
<xsl:variable name="zisqr" select="($zi * $zi)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="(4*scale*scale >= $zrsqr + $zisqr) and (maxiter > $iter+1)">
|
||||
<xsl:call-template name="bisqwit-mandelbrot-slot">
|
||||
<xsl:with-param name="x" select="$x" />
|
||||
<xsl:with-param name="y" select="$y" />
|
||||
<xsl:with-param name="zi" select="(2 * $zr * $zi) div scale + $y" />
|
||||
<xsl:with-param name="zr" select="($zrsqr - $zisqr) div scale + $x" />
|
||||
<xsl:with-param name="iter" select="$iter + 1" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:variable name="magnitude" select="magnitude[@value=$iter]"/>
|
||||
<span style="color:{$magnitude/color}">
|
||||
<xsl:value-of select="$magnitude/symbol"/>
|
||||
</span>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
Loading…
Reference in a new issue