diff options
author | Suchita Lad | 2025-07-02 17:39:09 +0530 |
---|---|---|
committer | Suchita Lad | 2025-07-08 16:20:48 +0530 |
commit | c5aee207a2ea70c0ea1befd7682db4036685f480 (patch) | |
tree | 8b8da2595fe350d1b5653af0f6aca990efe1ec49 | |
parent | 76677d1cdf3ec9a90a3c17ad8b813a2c44a64160 (diff) | |
download | Common-Interface-Project-c5aee207a2ea70c0ea1befd7682db4036685f480.tar.gz Common-Interface-Project-c5aee207a2ea70c0ea1befd7682db4036685f480.tar.bz2 Common-Interface-Project-c5aee207a2ea70c0ea1befd7682db4036685f480.zip |
Updated si-format in head.xsl
-rw-r--r-- | blocks/xcos2xml/head.xsl | 121 |
1 files changed, 43 insertions, 78 deletions
diff --git a/blocks/xcos2xml/head.xsl b/blocks/xcos2xml/head.xsl index 6b0c28a5..80e6f83a 100644 --- a/blocks/xcos2xml/head.xsl +++ b/blocks/xcos2xml/head.xsl @@ -21,85 +21,50 @@ </xsl:template> <xsl:template name="si-format"> - <xsl:param name="num" /> + <xsl:param name="num" /> - <!-- Compute absolute value manually --> - <xsl:variable name="absNum"> - <xsl:choose> - <xsl:when test="$num < 0"><xsl:value-of select="-$num" /></xsl:when> - <xsl:otherwise><xsl:value-of select="$num" /></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <!-- Compute exponent --> - <xsl:variable name="exponent"> - <xsl:choose> - <xsl:when test="$absNum = 0">0</xsl:when> - <xsl:otherwise> - <xsl:call-template name="compute-exp"> - <xsl:with-param name="n" select="$absNum" /> - <xsl:with-param name="exp" select="0" /> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <!-- Define SI prefixes --> - <xsl:choose> - <xsl:when test="$exponent >= -2 and $exponent <= 0"> - <xsl:value-of select="round($num div 1E-3)" /> m - </xsl:when> - <xsl:when test="$exponent >= -5 and $exponent <= -3"> - <xsl:value-of select="round($num div 1E-6)" /> μ <!-- Unicode for μ --> - </xsl:when> - <xsl:when test="$exponent >= -8 and $exponent <= -6"> - <xsl:value-of select="round($num div 1E-9)" /> n - </xsl:when> - <xsl:when test="$exponent >= -11 and $exponent <= -9"> - <xsl:value-of select="round($num div 1E-12)" /> p - </xsl:when> - <xsl:when test="$exponent >= 1 and $exponent <= 3"> - <xsl:value-of select="round($num div 1)" /> - </xsl:when> - <xsl:when test="$exponent >= 4 and $exponent <= 6"> - <xsl:value-of select="round($num div 1E3)" /> k</xsl:when> - <xsl:when test="$exponent >= 7 and $exponent <= 9"> - <xsl:value-of select="round($num div 1E6)" /> M - </xsl:when> - <xsl:when test="$exponent >= 10 and $exponent <= 12"> - <xsl:value-of select="round($num div 1E9)" /> G - </xsl:when> - <xsl:when test="$exponent >= 13 and $exponent <= 15"> - <xsl:value-of select="round($num div 1E12)" /> T - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$num" /> 10^<xsl:value-of select="$exponent " /> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <!-- Recursive template to compute the exponent --> - <xsl:template name="compute-exp"> - <xsl:param name="n" /> - <xsl:param name="exp" /> - - <xsl:choose> - <xsl:when test="$n < 1"> - <xsl:call-template name="compute-exp"> - <xsl:with-param name="n" select="$n * 10" /> - <xsl:with-param name="exp" select="$exp - 1" /> - </xsl:call-template> - </xsl:when> - <xsl:when test="$n >= 10"> - <xsl:call-template name="compute-exp"> - <xsl:with-param name="n" select="$n div 10" /> - <xsl:with-param name="exp" select="$exp + 1" /> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$exp" /> - </xsl:otherwise> - </xsl:choose> - </xsl:template> + <xsl:choose> + <xsl:when test="number($num) >= 1000000000000"> + <xsl:value-of select="format-number($num div 1000000000000, '#.##')" /> + <xsl:text> T</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 1000000000"> + <xsl:value-of select="format-number($num div 1000000000, '#.##')" /> + <xsl:text> G</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 1000000"> + <xsl:value-of select="format-number($num div 1000000, '#.##')" /> + <xsl:text> M</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 1000"> + <xsl:value-of select="format-number($num div 1000, '#.##')" /> + <xsl:text> k</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 1"> + <xsl:value-of select="format-number($num, '#.##')" /> + </xsl:when> + <xsl:when test="number($num) >= 0.001"> + <xsl:value-of select="format-number($num div 0.001, '#.##')" /> + <xsl:text> m</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 0.000001"> + <xsl:value-of select="format-number($num div 0.000001, '#.##')" /> + <xsl:text> μ</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 0.000000001"> + <xsl:value-of select="format-number($num div 0.000000001, '#.##')" /> + <xsl:text> n</xsl:text> + </xsl:when> + <xsl:when test="number($num) >= 0.000000000001"> + <xsl:value-of select="format-number($num div 0.000000000001, '#.##')" /> + <xsl:text> p</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="format-number($num, '#.##')" /> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + <xsl:output method="xml" indent="no" /> <xsl:key name="k-in" match="ExplicitInputPort | ImplicitInputPort" use="@parent" /> |