summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/tex4ht/longdiv.4ht
blob: 8a827ebbf4449710b1c528f7a6726a65e8f09d27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% longdiv.4ht                           2009-04-14-17:07 %
% Copyright (C) 2002--2009       Eitan M. Gurari         %
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3c of this license or (at your option) any   %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3c or later is part of all distributions %
% of LaTeX version 2005/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is Eitan M. Gurari.                                    %
%                                                        %
% If you modify this program your changing its signature %
% with a directive of the following form will be         %
% appreciated.                                           %
%            \message{signature}                         %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version 2009-04-14-17:07}


\def\longdiv#1#2{{%
   \def\showdig{\edef\temp{&{\the\scratch}}\temp\cr
                &{\the\rtot}\cr}%
   \global\rtot=#1\relax
   \count0=\rtot\divide\count0by#2\edef\quotient{\the\count0}%
   \def\temp##1{\ifx##1\temp\else \noexpand\dodig ##1\expandafter\temp\fi}%
   \edef\routine{\expandafter\temp\quotient\temp}%
   \def\dodig##1{\global\multiply\gpten
     by10\relax}\global\gpten=1\relax\routine
   \def\dodig##1{\global\divide\gpten by10\relax
      \scratch =\gpten
      \multiply\scratch  by##1\relax
      \multiply\scratch  by#2\relax
      \global\advance\rtot-\scratch \relax
      \ifnum\scratch>0 \showdig \fi
   }%
   \a:longdiv \long:div{#2}\b:longdiv
}}
\catcode`\#=13
\catcode`\@=6
\def\long:div@1{\halign{#&#\cr
     &\quotient\cr
     @1&\the\rtot\cr
     \routine \cr
}}
\catcode`\#=6
\catcode`\@=11

\NewConfigure{longdiv}{2}

\Hinput{longdiv}
\endinput