From 873660d1a83ece926fe7206288dda9c36b349c1b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:46:03 +0000 Subject: generic 1 git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/generic/fltpoint/deccomma.sty | 31 ++ .../texmf-dist/tex/generic/fltpoint/fltpoint.sty | 31 ++ .../texmf-dist/tex/generic/fltpoint/fltpoint.tex | 585 +++++++++++++++++++++ 3 files changed, 647 insertions(+) create mode 100644 Master/texmf-dist/tex/generic/fltpoint/deccomma.sty create mode 100644 Master/texmf-dist/tex/generic/fltpoint/fltpoint.sty create mode 100644 Master/texmf-dist/tex/generic/fltpoint/fltpoint.tex (limited to 'Master/texmf-dist/tex/generic/fltpoint') diff --git a/Master/texmf-dist/tex/generic/fltpoint/deccomma.sty b/Master/texmf-dist/tex/generic/fltpoint/deccomma.sty new file mode 100644 index 00000000000..d9e8423949e --- /dev/null +++ b/Master/texmf-dist/tex/generic/fltpoint/deccomma.sty @@ -0,0 +1,31 @@ +%% +%% This is file `deccomma.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fltpoint.dtx (with options: `deccomma') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from deccomma.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fltpoint.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\mathchardef\CommaOrdinary="013B +\mathchardef\CommaPunct ="613B +\mathcode`,="8000 +{\catcode`\,=\active + \gdef ,{\obeyspaces\futurelet\next\CommaCheck}} +\def\CommaCheck{\if\space\next\CommaPunct\else\CommaOrdinary\fi} +\endinput +%% +%% End of file `deccomma.sty'. diff --git a/Master/texmf-dist/tex/generic/fltpoint/fltpoint.sty b/Master/texmf-dist/tex/generic/fltpoint/fltpoint.sty new file mode 100644 index 00000000000..0c912c50c3d --- /dev/null +++ b/Master/texmf-dist/tex/generic/fltpoint/fltpoint.sty @@ -0,0 +1,31 @@ +%% +%% This is file `fltpoint.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fltpoint.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from fltpoint.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fltpoint.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{fltpoint}[2004/11/12 v1.1b floating point arithmetic] +\DeclareOption{comma}{\AtBeginDocument{\fpDecimalSign,}} +\DeclareOption{point}{\AtBeginDocument{\fpDecimalSign.}} +\ProcessOptions*\relax +\input{fltpoint} +\endinput +%% +%% End of file `fltpoint.sty'. diff --git a/Master/texmf-dist/tex/generic/fltpoint/fltpoint.tex b/Master/texmf-dist/tex/generic/fltpoint/fltpoint.tex new file mode 100644 index 00000000000..8f0dc0b87c9 --- /dev/null +++ b/Master/texmf-dist/tex/generic/fltpoint/fltpoint.tex @@ -0,0 +1,585 @@ +%% +%% This is file `fltpoint.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fltpoint.dtx (with options: `fltmain') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from fltpoint.tex. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file fltpoint.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\edef\atcatcode{\the\catcode`\@} +\catcode`\@=11 +\ifx\documentclass\relax +\long\def\@ifnextchar#1#2#3{% + \let\reserved@d=#1% + \def\reserved@a{#2}% + \def\reserved@b{#3}% + \futurelet\@let@token\@ifnch} +\def\@ifnch{% + \ifx\@let@token\@sptoken + \let\reserved@c\@xifnch + \else + \ifx\@let@token\reserved@d + \let\reserved@c\reserved@a + \else + \let\reserved@c\reserved@b + \fi + \fi + \reserved@c} +\def\:{\let\@sptoken= } \: +\def\:{\@xifnch} \expandafter\def\: {\futurelet\@let@token\@ifnch} +\fi +\def\iloop#1\irepeat{\def\ibody{#1}\iiterate} +\def\iiterate{\ibody\let\inext=\iiterate\else\let\inext=\relax\fi + \inext} +\def\xloop#1\xrepeat{\def\xbody{#1}\xiterate} +\def\xiterate{\xbody\let\xnext\xiterate\else\let\xnext\relax\fi\xnext} +\let\repeat\fi +\let\irepeat\fi +\let\xrepeat\fi +\newcount\fp@loopcount +\newcount\fp@loopcountii +\newcount\fp@result +\newcount\fp@carryover +\newcount\fp@tempcount +\newcount\fp@tempcountii +\def\fp@setparam#1{\xdef\fp@param{#1}}% +\def\ar@set#1#2#3{\expandafter\edef\csname#1@\number#2\endcsname{% + \number#3}} +\def\ar@get#1#2{\csname#1@\number#2\endcsname} +\def\ar@setsig#1#2{\expandafter\edef\csname#1@sig\endcsname{#2}} +\def\ar@getsig#1{\csname#1@sig\endcsname} +\def\ar@getul#1{\csname#1@ul\endcsname} +\def\ar@getll#1{\csname#1@ll\endcsname} +\def\ar@setul#1#2{\expandafter\edef\csname#1@ul\endcsname{\number#2}} +\def\ar@setll#1#2{\expandafter\edef\csname#1@ll\endcsname{\number#2}} +\def\fp@settomax#1#2#3{% + \ifnum#2<#3\relax + #1=#3\relax + \else + #1=#2\relax + \fi +} +\def\fp@settomin#1#2#3{% + \ifnum#2<#3\relax + #1=#2\relax + \else + #1=#3\relax + \fi +} +\def\fp@modulo#1#2{% + \fp@tempcount=#1\relax + \fp@tempcountii=#1\relax + \divide\fp@tempcountii#2\relax + \multiply\fp@tempcountii#2\relax + \advance\fp@tempcount-\fp@tempcountii + \edef\fp@param{\number\fp@tempcount}} +\def\fp@regread#1#2{% + \fp@regread@raw{#1}{#2}% + \fp@cleanreg{#1}} +\def\fp@regread@raw#1#2{% + \fp@tempcount=0 + \edef\fp@arrayname{#1}% + \ar@setsig{#1}{+}% + \edef\fp@scratch{#2\fp@decimalsign}% + \expandafter\fp@readchars\fp@scratch\end + \ifnum\ar@getul{#1}=-1 + \ar@setul{#1}{0}% + \ar@set{#1}{0}{0}% + \fi + \fp@tempcount=0 + \fp@tempcountii=\ar@getul{#1}\relax + \iloop + \ifnum\fp@tempcount<\fp@tempcountii + \edef\fp@scratch{\ar@get{#1}{\fp@tempcountii}}% + \ar@set{#1}{\fp@tempcountii}{\ar@get{#1}{\fp@tempcount}}% + \ar@set{#1}{\fp@tempcount}{\fp@scratch}% + \advance\fp@tempcount by 1 + \advance\fp@tempcountii by -1 + \irepeat +}% end \fp@regread@raw +\def\fp@readchars#1{% + \ifx#1\end + \let\inext=\relax + \ifnum\fp@tempcount<0 + \advance\fp@tempcount by 1 + \ar@setll{\fp@arrayname}{\fp@tempcount}% + \else + \ar@setll{\fp@arrayname}{0}% + \fi + \else % \ifx#1\end + \let\inext=\fp@readchars + \ifx#1+% + \else + \ifx#1-% + \if\ar@getsig{\fp@arrayname}-% + \ar@setsig{\fp@arrayname}{+}% + \else + \ar@setsig{\fp@arrayname}{-}% + \fi + \else + \if\noexpand#1\fp@decimalsign% + \ifnum\fp@tempcount>-1 + \advance\fp@tempcount by -1 + \ar@setul{\fp@arrayname}{\fp@tempcount}% + \fp@tempcount=-1 + \fi + \else + \ar@set{\fp@arrayname}{\fp@tempcount}{#1}% + \ifnum\fp@tempcount<0 + \advance\fp@tempcount by -1 + \else + \advance\fp@tempcount by 1 + \fi + \fi% end \if\noexpand#1\fp@decimalsign + \fi% end \ifx#1- + \fi% end \ifx#1+ + \fi% end \ifx#1\end + \inext +}% end \fp@readchars +\def\fp@regget#1#2{% + \if\ar@getsig{#1}-% + \def#2{-}% + \else + \def#2{}% + \fi + \fp@tempcount=\ar@getul{#1}\relax + \iloop + \ifnum\fp@tempcount=-1 + \edef#2{#2\fp@decimalsign}% + \fi + \edef#2{#2\ar@get{#1}{\fp@tempcount}}% + \ifnum\fp@tempcount>\ar@getll{#1}\relax + \advance\fp@tempcount by -1 + \irepeat +}% end \def\fp@regget +\def\fp@cleanreg#1{% + \fp@tempcount=\ar@getul{#1}\relax + \iloop + \ifnum\fp@tempcount>0 + \ifnum\ar@get{#1}{\fp@tempcount}=0 + \advance\fp@tempcount by -1 + \ar@setul{#1}{\fp@tempcount}% + \else + \fp@tempcount=0 + \fi + \irepeat + \fp@tempcount=\ar@getll{#1}\relax + \iloop + \ifnum\fp@tempcount<0 + \ifnum\ar@get{#1}{\fp@tempcount}=0 + \advance\fp@tempcount by 1 + \ar@setll{#1}{\fp@tempcount}% + \else + \fp@tempcount=0 + \fi + \irepeat + \ifnum\ar@getll{#1}=\ar@getul{#1}\relax + \ifnum\ar@get{#1}{0}=0\relax + \ar@setsig{#1}{+}% + \fi + \fi +}% end \fp@regclean +\def\fp@getdigit#1#2{% + \ifnum#2<\ar@getll{#1}\relax + \fp@setparam0% + \else + \ifnum#2>\ar@getul{#1}\relax + \fp@setparam0% + \else + \fp@setparam{\ar@get{#1}{#2}}% + \fi + \fi +}% end \fp@getdigit +\def\fp@shiftright#1#2{% + \edef\fp@shiftamount{\number#2}% + \fp@settomax{\fp@tempcount}{\ar@getul{#1}}{-\fp@shiftamount}% + \fp@settomin{\fp@tempcountii}{\ar@getll{#1}}{-\fp@shiftamount}% + \def\fp@shiftnum{}% + \iloop + \fp@getdigit{#1}{\fp@tempcount}% + \edef\fp@shiftnum{\fp@shiftnum\fp@param}% + \ifnum\fp@tempcount=-\fp@shiftamount\relax + \edef\fp@shiftnum{\fp@shiftnum\fp@decimalsign}% + \fi + \ifnum\fp@tempcount>\fp@tempcountii + \advance\fp@tempcount by -1 + \irepeat + \fp@regread{#1}{\fp@shiftnum}% +}% end \fp@shiftright +\def\fp@firstnonzero#1{% + \fp@regcomp{#1}{@0}% + \if\fp@param=% + \fp@setparam0% + \else + \fp@tempcount=\ar@getul{#1}\relax% + \fp@tempcountii=\ar@getll{#1}\relax% + \iloop + \ifnum\ar@get{#1}{\fp@tempcount}>0 + \fp@setparam{\number\fp@tempcount}% + \fp@tempcount=\fp@tempcountii + \fi + \ifnum\fp@tempcount>\fp@tempcountii + \advance\fp@tempcount by -1 + \irepeat + \fi +}% end \fp@firstnonzero +\def\fp@regcomp#1#2{% + {% + \if\ar@getsig{#1}-% + \if\ar@getsig{#2}-% + \fp@regcomp@main{#1}{#2}<>% + \else + \fp@setparam{<}% + \fi + \else + \if\ar@getsig{#2}-% + \fp@setparam{>}% + \else + \fp@regcomp@main{#1}{#2}><% + \fi + \fi + }% +} +\def\fp@regcomp@main#1#2#3#4{% + \fp@settomax{\fp@loopcount}{\ar@getul{#1}}{\ar@getul{#2}}% + \fp@settomin{\fp@loopcountii}{\ar@getll{#1}}{\ar@getll{#2}}% + \loop + \fp@getdigit{#1}{\fp@loopcount}% + \fp@tempcount=\fp@param\relax + \fp@getdigit{#2}{\fp@loopcount}% + \fp@tempcountii=\fp@param\relax + \ifnum\fp@tempcount<\fp@tempcountii + \fp@setparam{#4}% + \fp@loopcount=\fp@loopcountii + \else + \ifnum\fp@tempcount>\fp@tempcountii + \fp@setparam{#3}% + \fp@loopcount=\fp@loopcountii + \else + \ifnum\fp@loopcount=\fp@loopcountii + \fp@setparam{=}% + \fi + \fi + \fi + \ifnum\fp@loopcount>\fp@loopcountii + \advance\fp@loopcount by -1 + \repeat +}% end \fp@regcomp@main +\def\fp@regabs#1{% + \ar@setsig{#1}{+}% +} +\def\fp@regneg#1{% + \if\ar@getsig{#1}-% + \ar@setsig{#1}{+}% + \else + \fp@regcomp{#1}{@0}% + \if\fp@param=% + \else + \ar@setsig{#1}{-}% + \fi + \fi +} +\def\fp@reground#1#2{% + \ifnum#2>\ar@getll{#1}\relax + {% + \fp@tempcount=#2\relax + \advance\fp@tempcount by -1 + \fp@getdigit{#1}{\fp@tempcount}% + \ifnum\fp@param>4 + \fp@regcopy{fp@temp}{@1}% + \fp@shiftright{fp@temp}{#2}% + \fp@regcomp{#1}{@0}% + \if\fp@param<% + \fp@regneg{fp@temp}% + \fi + \fp@regadd{#1}{fp@temp}% + \fi + \ifnum#2>0 + \fp@loopcount=#2\relax + \iloop + \ifnum\fp@loopcount>0 + \advance\fp@loopcount by -1 + \ar@set{#1}{\fp@loopcount}{0}% + \irepeat + \ar@setll{#1}{0}% + \else + \ar@setll{#1}{#2}% + \fi + \fp@regget{#1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \fp@regread{#1}{\fp@param}% + \fi +} % end \fp@reground +\def\fp@regcopy#1#2{% + \fp@regget{#2}{\fp@scratch}% + \fp@regread{#1}{\fp@scratch}% +} +\def\fp@regadd#1#2{% + {% + \if\ar@getsig{#1}\ar@getsig{#2}% + \fp@settomin{\fp@loopcount}{\ar@getll{#1}}{\ar@getll{#2}}% + \edef\fp@add@start{\number\fp@loopcount}% + \fp@settomax{\fp@tempcount}{\ar@getul{#1}}{\ar@getul{#2}}% + \edef\fp@add@finish{\number\fp@tempcount}% + \fp@carryover=0 + \loop + \fp@getdigit{#1}{\fp@loopcount}% + \fp@result=\fp@param\relax + \fp@getdigit{#2}{\fp@loopcount}% + \advance\fp@result by \fp@param\relax + \advance\fp@result by \fp@carryover + \ifnum\fp@result>9 + \fp@carryover=1 + \advance\fp@result by -10 + \else + \fp@carryover=0 + \fi + \ar@set{#1}{\fp@loopcount}{\fp@result}% + \ifnum\fp@loopcount<\fp@add@finish\relax + \advance\fp@loopcount by 1 + \repeat + \ifnum\fp@carryover>0 + \advance\fp@loopcount by 1 + \ar@set{#1}{\fp@loopcount}{\fp@carryover}% + \fi + \ar@setll{#1}{\fp@add@start}% + \ar@setul{#1}{\fp@loopcount}% + \fp@regget{#1}{\fp@scratch}% + \fp@setparam\fp@scratch + \else % \if sign + \fp@regcopy{fp@tempi}{#1}% + \fp@regcopy{fp@tempii}{#2}% + \fp@regabs{fp@tempi}% + \fp@regabs{fp@tempii}% + \fp@regcomp{fp@tempi}{fp@tempii}% + \if\fp@param>% + \fp@regadd@sub{#1}{fp@tempi}{fp@tempii}% + \else + \fp@regadd@sub{#2}{fp@tempii}{fp@tempi}% + \fi + \fi % end \if sign + }% + \fp@regread{#1}{\fp@param}% +}% end \fp@regadd +\def\fp@regadd@sub#1#2#3{% + \fp@regsub@restricted{#2}{#3}% + \fp@regcomp{#1}{@0}% + \if\fp@param<% + \fp@regneg{#2}% + \fi + \fp@regget{#2}{\fp@scratch}% + \fp@setparam\fp@scratch +}% end \fp@regadd@sub +\def\fp@regsub@restricted#1#2{% + {% + \fp@settomin{\fp@loopcount}{\ar@getll{#1}}{\ar@getll{#2}}% + \edef\fp@lowermin{\number\fp@loopcount}% + \fp@settomax{\fp@tempcount}{\ar@getul{#1}}{\ar@getul{#2}}% + \edef\fp@uppermin{\number\fp@tempcount}% + \fp@carryover=0 + \loop + \fp@getdigit{#1}{\fp@loopcount}% + \fp@result=\fp@param\relax + \fp@getdigit{#2}{\fp@loopcount}% + \advance\fp@result by -\fp@param\relax + \advance\fp@result by \fp@carryover + \ifnum\fp@result<0 + \fp@carryover=-1 + \advance\fp@result by 10 + \else + \fp@carryover=0 + \fi + \ar@set{#1}{\fp@loopcount}{\fp@result}% + \ifnum\fp@loopcount<\fp@uppermin\relax + \advance\fp@loopcount by 1 + \repeat + \ifnum\fp@carryover=-1 + \advance\fp@loopcount by 1 + \ar@set{#1}{\fp@loopcount}{-1}% + \fi + \ar@setll{#1}{\fp@lowermin}% + \ar@setul{#1}{\fp@loopcount}% + \fp@regget{#1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \fp@regread{#1}{\fp@param}% +}% end \fp@regsub@restricted +\def\fp@regsub#1#2{% + {% + \fp@regneg{#2}% + \fp@regadd{#1}{#2}% + \fp@regget{#1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \fp@regread{#1}{\fp@param}% +} +\def\fp@regmul#1#2{% + {% + \fp@regcopy{fp@temp1}{@0}% + \fp@loopcountii=\ar@getll{#2}\relax + \xloop + \fp@loopcount=\ar@getll{#1}\relax + \fp@carryover=0 + \def\fp@newnum{}% + \loop + \fp@result=\ar@get{#2}{\fp@loopcountii}\relax + \multiply\fp@result by \ar@get{#1}{\fp@loopcount}\relax + \advance\fp@result by \fp@carryover + \ifnum\fp@result>9 + \fp@carryover=\fp@result + \divide\fp@carryover by 10 + \fp@tempcount=\fp@carryover + \multiply\fp@tempcount by 10 + \advance\fp@result by -\fp@tempcount + \else + \fp@carryover=0 + \fi + \edef\fp@newnum{\number\fp@result\fp@newnum}% + \ifnum\fp@loopcount<\ar@getul{#1}\relax + \advance\fp@loopcount by 1 + \repeat + \edef\fp@newnum{\number\fp@carryover\fp@newnum}% + \fp@regread{fp@temp2}{\fp@newnum}% + \fp@tempcount=\fp@loopcountii + \advance\fp@tempcount by -\number\ar@getll{#2}\relax + \fp@shiftright{fp@temp2}{\fp@tempcount}% + \fp@regadd{fp@temp1}{fp@temp2}% + \ifnum\fp@loopcountii<\ar@getul{#2}\relax + \advance\fp@loopcountii by 1 + \xrepeat + \fp@tempcount=\ar@getll{#1}\relax + \advance\fp@tempcount by \ar@getll{#2}\relax + \fp@shiftright{fp@temp1}{\fp@tempcount}% + \if\ar@getsig{#1}\ar@getsig{#2}% + \else + \fp@regneg{fp@temp1}% + \fi + \fp@regget{fp@temp1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \fp@regread{#1}{\fp@param}% +} % end \fp@regmul +\def\fp@regdiv#1#2{% + {% + \fp@regcopy{fp@temp1}{#1}% + \fp@regcopy{fp@temp2}{#2}% + \fp@regabs{fp@temp1}% + \fp@regabs{fp@temp2}% + \fp@firstnonzero{fp@temp1}% + \fp@loopcountii=\fp@param\relax + \fp@firstnonzero{fp@temp2}% + \advance\fp@loopcountii by -\fp@param\relax + \fp@shiftright{fp@temp2}{\fp@loopcountii}% + \def\fp@divnum{}% + \ifnum\fp@loopcountii<0 + \fp@tempcount=\fp@loopcountii + \loop + \ifnum\fp@tempcount<-1 + \edef\fp@divnum{0\fp@divnum}% + \advance\fp@tempcount by 1 + \repeat + \edef\fp@divnum{\fp@decimalsign\fp@divnum}% + \fi + \xloop + \fp@tempcount=\fp@loopcountii + \advance\fp@tempcount by 1 + \ifnum\fp@tempcount>-\fp@accuracy\relax + \fp@loopcount=0 + \loop + \fp@regcomp{fp@temp2}{fp@temp1}% + \if\fp@param=% + \def\fp@accuracy{0}% + \gdef\fp@param{<}% + \fi + \if\fp@param<% + \fp@regsub@restricted{fp@temp1}{fp@temp2}% + \advance\fp@loopcount by 1 + \repeat + \ifnum\fp@loopcountii=-1 + \edef\fp@divnum{\fp@divnum\fp@decimalsign}% + \fi + \edef\fp@divnum{\fp@divnum\number\fp@loopcount}% + \fp@shiftright{fp@temp2}{-1}% + \advance\fp@loopcountii by -1 + \xrepeat + \if\ar@getsig{#1}\ar@getsig{#2}% + \fp@regread{fp@temp1}{\fp@divnum}% + \else + \fp@regread{fp@temp1}{-\fp@divnum}% + \fi + \fp@regget{fp@temp1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \fp@regread{#1}{\fp@param}% +} +\def\fp@call@bin#1#2#3#4{% + {% + \fp@regread{fp@user1}{#2}% + \fp@regread{fp@user2}{#3}% + \csname fp@reg#4\endcsname{fp@user1}{fp@user2}% + \fp@regget{fp@user1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \edef#1{\fp@param}% +} +\def\fpAdd#1#2#3{\fp@call@bin{#1}{#2}{#3}{add}} +\def\fpSub#1#2#3{\fp@call@bin{#1}{#2}{#3}{sub}} +\def\fpMul#1#2#3{\fp@call@bin{#1}{#2}{#3}{mul}} +\def\fpDiv#1#2#3{\fp@call@bin{#1}{#2}{#3}{div}} +\def\fp@call@un#1#2#3{% + {% + \fp@regread{fp@user1}{#2}% + \csname fp@reg#3\endcsname{fp@user1}% + \fp@regget{fp@user1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \edef#1{\fp@param}% +} +\def\fpAbs#1#2{\fp@call@un{#1}{#2}{abs}} +\def\fpNeg#1#2{\fp@call@un{#1}{#2}{neg}} +\def\fpRound#1#2#3{% + {% + \fpRegSet{fp@user1}{#2}% + \fpRegRound{fp@user1}{#3}% + \fpRegGet{fp@user1}{\fp@scratch}% + \fp@setparam\fp@scratch + }% + \edef#1{\fp@param}% +} +\def\fpRegSet#1#2{\fp@regread{#1}{#2}} +\def\fpRegGet#1#2{\fp@regget{#1}{#2}} +\def\fpRegAdd#1#2{\fp@regadd{#1}{#2}} +\def\fpRegSub#1#2{\fp@regsub{#1}{#2}} +\def\fpRegMul#1#2{\fp@regmul{#1}{#2}} +\def\fpRegDiv#1#2{\fp@regdiv{#1}{#2}} +\def\fpRegAbs#1{\fp@regabs{#1}} +\def\fpRegNeg#1{\fp@regneg{#1}} +\def\fpRegCopy#1#2{\fp@regcopy{#1}{#2}} +\def\fpRegRound#1#2{\fp@reground{#1}{#2}} +\def\fpAccuracy#1{\edef\fp@accuracy{#1}} +\fpAccuracy{5} +\def\fpDecimalSign#1{\edef\fp@decimalsign{#1}} +\fpDecimalSign{,} +\def\fpThousandSep#1{\edef\fp@thousandsep{#1}} +\fpThousandSep{} +\fp@regread{@0}{0} +\fp@regread{@1}{1} +\catcode`\@=\atcatcode\relax +\endinput +%% +%% End of file `fltpoint.tex'. -- cgit v1.2.3