/[dtapublic]/to_be_filed/uculib01/doc/manual/c_afn0/c_afn0.tex
ViewVC logotype

Annotation of /to_be_filed/uculib01/doc/manual/c_afn0/c_afn0.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 30 - (hide annotations) (download) (as text)
Sat Oct 8 07:22:17 2016 UTC (7 years, 10 months ago) by dashley
File MIME type: application/x-tex
File size: 49008 byte(s)
Initial commit.
1 dashley 30 %$Header: /home/dashley/cvsrep/uculib01/uculib01/doc/manual/c_afn0/c_afn0.tex,v 1.37 2010/05/12 18:35:49 dashley Exp $
2    
3     \chapter{Arithmetic Functions}
4    
5     \label{cafn0}
6    
7     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10     \section{Introduction and Overview}
11     %Section tag: iov0
12     \label{cafn0:siov0}
13    
14     This chapter documents functions that perform arithmetic.
15    
16     \begin{itemize}
17     \item \S{}\ref{cafn0:sscx0} (p. \pageref{cafn0:sscx0}) documents
18     functions that compare UCU\_UINT16 data.
19     \item \S{}\ref{cafn0:slsf0} (p. \pageref{cafn0:slsf0}) documents
20     functions that calculate or approximate functions of the form
21     $y=mx$, where $y$ is a UCU\_UINT16.
22     \item \S{}\ref{cafn0:ssre0} (p. \pageref{cafn0:ssre0}) documents
23     functions that calculate or approximate square roots.
24     \end{itemize}
25    
26    
27     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
30     \section{UCU\_UINT16 Comparison Functions}
31     %Section tag: scx0
32     \label{cafn0:sscx0}
33    
34     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
35     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
36     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37     \subsection[\emph{UcuAtU16CmpDiffAbsGtRxx(\protect\mbox{\protect$\cdot$})}]
38     {\emph{UcuAtU16CmpDiffAbsGtRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
39     %Subsection tag: csx0
40     \label{cafn0:sscx0:scsx0}
41    
42     \index{UcuAtU16CmpDiffAbsGtRxx()@\emph{UcuAtU16CmpDiffAbsGtRxx($\cdot$)}}%
43    
44     \noindent\textbf{PROTOTYPE}
45     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
46     \item
47     \begin{verbatim}
48     UCU_BOOLEAN UcuAtU16CmpDiffAbsGtRxx(
49     UCU_UINT16 x1,
50     UCU_UINT16 x2,
51     UCU_UINT16 d
52     )
53     \end{verbatim}
54     \end{list}
55     \vspace{2.8ex}
56    
57     \noindent\textbf{SYNOPSIS}
58     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
59     \item Returns UCU\_TRUE if $|x_1-x_2|>d$, or UCU\_FALSE otherwise.
60     \end{list}
61     \vspace{2.8ex}
62    
63     \noindent\textbf{INPUTS}
64     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
65     \item \emph{\textbf{x1}}, \emph{\textbf{x2}}\\
66     The UCU\_UINT16 arguments to compare.
67     \item \emph{\textbf{d}}\\
68     The comparison threshold.
69     \end{list}
70     \vspace{2.8ex}
71    
72     \noindent\textbf{OUTPUT}
73     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
74     \item UCU\_TRUE if $|x_1-x_2|>d$, or UCU\_FALSE otherwise.
75     \end{list}
76     \vspace{2.8ex}
77    
78     \noindent\textbf{DETAILED DESCRIPTION}
79     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
80     \item \emph{UcuAtU16CmpDiffAbsGtRxx($\cdot$)} determines whether
81     $x_1$ and $x_2$ are more than $d$ apart.
82     \item The function is
83     typically used to detect change in a value (either negative or positive)
84     of a magnitude greater than $d$,
85     or to determine if two values are within $d$ of each other.
86     \item \emph{UcuAtU16CmpDiffAbsGtRxx($\cdot$)} is symmetric with
87     respect to its arguments: $f(x_1, x_2) \equiv f(x_2, x_1)$.
88     \end{list}
89     \vspace{2.8ex}
90    
91     \noindent\textbf{INTERRUPT COMPATIBILITY}
92     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
93     \item This function may be used from both non-ISR and ISR software.
94     \item This function is thread-safe.
95     \end{list}
96     \vspace{2.8ex}
97    
98     \noindent\textbf{EXECUTION TIME}
99     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
100     \item TBD.
101     \end{list}
102     \vspace{2.8ex}
103    
104     \noindent\textbf{FUNCTION NAME MNEMONIC}
105     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
106     \item \emph{U16}: arguments and return type are UCU\_UINT16.
107     \emph{Cmp}: compare.
108     \emph{Diff}: difference.
109     \emph{Abs}: absolute value.
110     \emph{Gt}: greater than.
111     \end{list}
112    
113    
114     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
115     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
116     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
117     %\section{UCU\_SINT32 Complement and Negation Functions}
118     %\label{cafn0:scnf0}
119     %
120     %
121     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
122     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124     %\subsection[\emph{UcuAtS32NegationRxx(\protect\mbox{\protect$\cdot$})}]
125     % {\emph{UcuAtS32NegationRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
126     %\label{cafn0:scnf0:sstf0}
127     %
128     %\index{UcuAtS32NegationRxx()@\emph{UcuAtS32NegationRxx($\cdot$)}}%
129     %
130     %\noindent\textbf{PROTOTYPE}
131     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
132     %\item
133     %\begin{verbatim}
134     %UCU_SINT32 UcuAtS32NegationRxx( UCU_SINT32 x )
135     %\end{verbatim}
136     %\end{list}
137     %\vspace{2.8ex}
138     %
139     %\noindent\textbf{SYNOPSIS}
140     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
141     %\item Returns the 1's complement of $x$, plus 1. In most cases, this represents
142     % $-x$, but $-2^{31}$ (the most negative representable value) maps to
143     % $-2^{31}$ (this is a standard feature of the 2's complement representation of signed
144     % integers).
145     %\end{list}
146     %\vspace{2.8ex}
147     %
148     %\noindent\textbf{INPUTS}
149     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
150     %\item \emph{\textbf{x}} \\
151     % The UCU\_SINT32 integer to negate.
152     %\end{list}
153     %\vspace{2.8ex}
154     %
155     %\noindent\textbf{OUTPUT}
156     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
157     %\item The 1's complement of $x$, plus 1
158     %\end{list}
159     %\vspace{2.8ex}
160     %
161     %\noindent\textbf{INTERRUPT COMPATIBILITY}
162     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
163     %\item This function may be used from both non-ISR and ISR software.
164     %\item This function is thread-safe.
165     %\end{list}
166     %\vspace{2.8ex}
167     %
168     %\noindent\textbf{EXECUTION TIME}
169     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
170     %\item TBD.
171     %\end{list}
172     %\vspace{2.8ex}
173     %
174     %\noindent\textbf{FUNCTION NAME MNEMONIC}
175     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
176     %\item \emph{Negation}: negates the argument.
177     %\end{list}
178     %
179     %
180     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
181     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
182     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
183     \section{UCU\_UINT16 Linear Scaling Functions, Zero Y-Intercept}
184     %Section tag: lsf0
185     \label{cafn0:slsf0}
186    
187    
188     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
189     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
190     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191     \subsection[\emph{UcuAtU16LscZyiFAxdAxrRxx(\protect\mbox{\protect$\cdot$})}]
192     {\emph{UcuAtU16LscZyiFAxdAxrRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
193     %Subsection tag: faa0
194     \label{cafn0:slsf0:sfaa0}
195    
196     \index{UcuAtU16LscZyiFAxdAxrRxx()@\emph{UcuAtU16LscZyiFAxdAxrRxx($\cdot$)}}%
197    
198     \noindent\textbf{PROTOTYPE}
199     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
200     \item
201     \begin{verbatim}
202     UCU_UINT16 UcuAtU16LscZyiFAxdAxrRxx(
203     UCU_UINT16 x,
204     UCU_UINT16 x_max,
205     UCU_UINT16 y_max
206     )
207     \end{verbatim}
208     \end{list}
209     \vspace{2.8ex}
210    
211     \noindent\textbf{SYNOPSIS}
212     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
213     \item Linearly scales (or projects) from $[0, x_{max}]$ to $[0, y_{max}]$,
214     implementing the floor function (discarding any remainder resulting
215     from the division). The value calculated is
216     $\displaystyle{\left\lfloor \frac{y_{max} x}{x_{max}} \right\rfloor}$,
217     with the provision that the function output will never
218     exceed $y_{max}$.
219    
220     \end{list}
221     \vspace{2.8ex}
222    
223     \noindent\textbf{INPUTS}
224     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
225     \item \emph{\textbf{x}}\\
226     The input to scale.
227     \item \emph{\textbf{x\_max}}\\
228     The value of $x$ that should correspond to $y_{max}$.
229     \item \emph{\textbf{y\_max}}\\
230     The maximum output value of the function.
231     \end{list}
232     \vspace{2.8ex}
233    
234     \noindent\textbf{OUTPUT}
235     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
236     \item $\displaystyle{\left\lfloor \frac{y_{max} x}{x_{max}} \right\rfloor}$, with
237     a maximum of $y_{max}$.
238     \end{list}
239     \vspace{2.8ex}
240    
241     \noindent\textbf{EXCEPTION CASES}
242     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
243     \item If $x>x_{max}$, $y_{max}$ is returned.
244     \item If $x_{max}=0$ or $y_{max}=0$, 0 is returned. (In either of these
245     cases, it isn't possible to determine the intent of the caller,
246     so 0 is the safest return value.)
247     \end{list}
248     \vspace{2.8ex}
249    
250     \noindent\textbf{INTERRUPT COMPATIBILITY}
251     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
252     \item This function may be used from both non-ISR and ISR software.
253     \item This function is thread-safe.
254     \end{list}
255     \vspace{2.8ex}
256    
257     \noindent\textbf{EXECUTION TIME}
258     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
259     \item TBD.
260     \end{list}
261     \vspace{2.8ex}
262    
263     \noindent\textbf{FUNCTION NAME MNEMONIC}
264     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
265     \item \emph{U16}: operates on and returns UCU\_UINT16.
266     \emph{Lsc}: linear scaling function.
267     \emph{Zyi}: zero $y$ intercept.
268     \emph{F}: result floored (rather than rounded).
269     \emph{Axd}: arbitrary maxima of domain.
270     \emph{Axr}: arbitrary maxima of range.
271     \end{list}
272    
273    
274     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
275     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
276     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
277     \subsection[\emph{UcuAtU16LscZyiRAxdAxrRxx(\protect\mbox{\protect$\cdot$})}]
278     {\emph{UcuAtU16LscZyiRAxdAxrRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
279     %Subsection tag: faa1
280     \label{cafn0:slsf0:sfaa1}
281    
282     \index{UcuAtU16LscZyiRAxdAxrRxx()@\emph{UcuAtU16LscZyiRAxdAxrRxx($\cdot$)}}%
283    
284     \noindent\textbf{PROTOTYPE}
285     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
286     \item
287     \begin{verbatim}
288     UCU_UINT16 UcuAtU16LscZyiRAxdAxrRxx(
289     UCU_UINT16 x,
290     UCU_UINT16 x_max,
291     UCU_UINT16 y_max
292     )
293     \end{verbatim}
294     \end{list}
295     \vspace{2.8ex}
296    
297     \noindent\textbf{SYNOPSIS}
298     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
299     \item Linearly scales from $[0, x_{max}]$ to $[0, y_{max}]$, rounding the result
300     to the nearest integer with a downward bias. The result calculated is
301     $\displaystyle{\left\lfloor \frac{y_{max} x + \left\lfloor \displaystyle{\frac{x_{max} - 1}{2}} \right\rfloor}{x_{max}} \right\rfloor}$,
302     with the provision that the function output will never exceed $y_{max}$.
303     \end{list}
304     \vspace{2.8ex}
305    
306     \noindent\textbf{INPUTS}
307     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
308     \item \emph{\textbf{x}}\\
309     The input to scale.
310     \item \emph{\textbf{x\_max}}\\
311     The value of $x$ that should correspond to $y_{max}$.
312     \item \emph{\textbf{y\_max}}\\
313     The maximum output value of the function.
314     \end{list}
315     \vspace{2.8ex}
316    
317     \noindent\textbf{OUTPUT}
318     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
319     \item $\displaystyle{\left\lfloor \frac{y_{max} x + \left\lfloor \displaystyle{\frac{x_{max} - 1}{2}} \right\rfloor}{x_{max}} \right\rfloor}$,
320     with a maximum of $y_{max}$.
321     \end{list}
322     \vspace{2.8ex}
323    
324     \noindent\textbf{EXCEPTION CASES}
325     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
326     \item If $x>x_{max}$, $y_{max}$ is returned.
327     \item If $x_{max}=0$ or $y_{max}=0$, 0 is returned. (In either
328     of these cases, it isn't possible to determine the intent of
329     the caller, so 0 is the safest return value.)
330     \end{list}
331     \vspace{2.8ex}
332    
333     \noindent\textbf{INTERRUPT COMPATIBILITY}
334     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
335     \item This function may be used from both non-ISR and ISR software.
336     \item This function is thread-safe.
337     \end{list}
338     \vspace{2.8ex}
339    
340     \noindent\textbf{EXECUTION TIME}
341     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
342     \item TBD.
343     \end{list}
344     \vspace{2.8ex}
345    
346     \noindent\textbf{FUNCTION NAME MNEMONIC}
347     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
348     \item \emph{U16}: operates on UCU\_UINT16 operands.
349     \emph{Lsc}: linear scaling function.
350     \emph{Zyi}: zero $y$ intercept.
351     \emph{R}: result rounded to nearest integer.
352     \emph{Axd}: arbitrary maxima of domain.
353     \emph{Axr}: arbitrary maxima of range.
354     \end{list}
355    
356    
357     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
358     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
359     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
360     \section{Ratiometric Adjustment Functions}
361     %Section tag: sraf0
362     \label{cafn0:sraf0}
363    
364    
365     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
366     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
367     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
368     \subsection[\emph{UcuAtU16RatAdjRRxx(\protect\mbox{\protect$\cdot$})}]
369     {\emph{UcuAtU16RatAdjRRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
370     %Subsection tag: rat0
371     \label{cafn0:sraf0:srat0}
372    
373     \index{UcuAtU16RatAdjRRxx()@\emph{UcuAtU16RatAdjRRxx($\cdot$)}}%
374    
375     \noindent\textbf{PROTOTYPE}
376     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
377     \item
378     \begin{verbatim}
379     UCU_UINT16 UcuAtU16RatAdjRRxx(
380     UCU_UINT16 arg,
381     UCU_UINT16 arg_max,
382     UCU_UINT16 adj_in,
383     UCU_UINT16 adj_nom
384     )
385     \end{verbatim}
386     \end{list}
387     \vspace{2.8ex}
388    
389     \noindent\textbf{SYNOPSIS}
390     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
391     \item Ratiometrically adjusts $arg$ according to the formula
392     $\displaystyle{\left\lfloor \frac{arg\;adj_{nom} + \left\lfloor \displaystyle{\frac{adj_{in} - 1}{2}} \right\rfloor}{adj_{in}} \right\rfloor}$,
393     with the result then clipped at $arg_{max}$.
394     \end{list}
395     \vspace{2.8ex}
396    
397     \noindent\textbf{INPUTS}
398     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
399     \item \emph{\textbf{arg}}\\
400     The input to scale.
401     \item \emph{\textbf{arg\_max}}\\
402     The maximum value of $arg$ that may be returned by the function.
403     \item \emph{\textbf{adj\_in}}\\
404     The value of the adjustment parameter that should be used for calculation.
405     \item \emph{\textbf{adj\_nom}}\\
406     The nominal value of the adjustment parameter that should leave $arg$ unchanged. As
407     $adj_{in}$ increases, the value returned will decrease, and vice-versa.
408     \end{list}
409     \vspace{2.8ex}
410    
411     \noindent\textbf{OUTPUT}
412     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
413     \item $\displaystyle{\left\lfloor \frac{arg\;adj_{nom} + \left\lfloor \displaystyle{\frac{adj_{in} - 1}{2}} \right\rfloor}{adj_{in}} \right\rfloor}$,
414     with a maximum of $arg_{max}$.
415     \end{list}
416     \vspace{2.8ex}
417    
418     \noindent\textbf{EXCEPTION CASES}
419     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
420     \item If $adj_{in}=0$ and $arg=0$, 0 is returned.
421     \item If $adj_{in}=0$ and $arg>0$, $arg_{max}$ is returned.
422     \item If $adj_{nom}=0$, 0 is returned.
423     \end{list}
424     \vspace{2.8ex}
425    
426     \noindent\textbf{INTERRUPT COMPATIBILITY}
427     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
428     \item This function may be used from both non-ISR and ISR software.
429     \item This function is thread-safe.
430     \end{list}
431     \vspace{2.8ex}
432    
433     \noindent\textbf{EXECUTION TIME}
434     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
435     \item TBD.
436     \end{list}
437     \vspace{2.8ex}
438    
439     \noindent\textbf{FUNCTION NAME MNEMONIC}
440     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
441     \item \emph{U16}: operates on UCU\_UINT16 operands.
442     \emph{RatAdj}: ratiometric adjustment.
443     \emph{R}: result rounded to nearest integer.
444     \end{list}
445    
446    
447     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
449     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
450     \section{Vector Functions, 2-Dimensional}
451     \label{cafn0:svft0}
452    
453    
454     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
455     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
456     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
457     %\subsection[\emph{UcuAtS32S16v2CpRxx(\protect\mbox{\protect$\cdot$})}]
458     % {\emph{UcuAtS32S16v2CpRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
459     %\label{cafn0:svft0:scpt1}
460     %
461     %\index{UcuAtS32S16v2CpRxx()@\emph{UcuAtS32S16v2CpRxx($\cdot$)}}%
462     %
463     %\noindent\textbf{PROTOTYPE}
464     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
465     %\item
466     %\begin{verbatim}
467     %UCU_SINT32 UcuAtS32S16v2CpRxx(
468     % UCU_SINT16 a_x,
469     % UCU_SINT16 a_y,
470     % UCU_SINT16 b_x,
471     % UCU_SINT16 b_y
472     % )
473     %\end{verbatim}
474     %\end{list}
475     %\vspace{2.8ex}
476     %
477     %\noindent\textbf{SYNOPSIS}
478     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
479     %\item Calculates the signed magnitude of the $\hat{k}$-component of the
480     % cross-product of $\vec{a}$ and $\vec{b}$:
481     %
482     % \begin{equation}
483     % \label{eq:cafn0:svft0:scpt1:01}
484     % a_x b_y - a_y b_x .
485     % \end{equation}
486     %\end{list}
487     %\vspace{2.8ex}
488     %
489     %\noindent\textbf{INPUTS}
490     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
491     %\item \emph{\textbf{a\_x, a\_y, b\_x, b\_y}}\\
492     % The $x$ and $y$ components of the two vectors. The correct cross-product
493     % will be returned over the entire domain of input arguments.
494     %\end{list}
495     %\vspace{2.8ex}
496     %
497     %\noindent\textbf{OUTPUT}
498     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
499     %\item $a_x b_y - a_y b_x$.
500     %\end{list}
501     %\vspace{2.8ex}
502     %
503     %\noindent\textbf{EXCEPTION CASES}
504     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
505     %\item None.
506     %\end{list}
507     %\vspace{2.8ex}
508     %
509     %\noindent\textbf{INTERRUPT COMPATIBILITY}
510     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
511     %\item This function may be used from both non-ISR and ISR software.
512     %\item This function is thread-safe.
513     %\end{list}
514     %\vspace{2.8ex}
515     %
516     %\noindent\textbf{EXECUTION TIME}
517     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
518     %\item TBD.
519     %\end{list}
520     %\vspace{2.8ex}
521     %
522     %\noindent\textbf{FUNCTION NAME MNEMONIC}
523     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
524     %\item \emph{S32}: returned value is a UCU\_SINT32.
525     % \emph{S16v2}: operates on 2-dimensional vecotrs with UCU\_SINT16 components.
526     % \emph{Cp}: cross-product.
527     %\end{list}
528     %\vspace{2.8ex}
529     %
530     %\noindent\textbf{DETAILED DESCRIPTION / ADDITIONAL INFORMATION}
531     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
532     %\item The three-dimensional vector cross product is defined as
533     %
534     % \begin{equation}
535     % \label{eq:cafn0:svft0:scpt1:02}
536     % \vec{a} \times \vec{b} = \left |
537     % {
538     % \begin{array}{ccc}
539     % \hat{i} & \hat{j} & \hat{k} \\
540     % a_x & a_y & a_z \\
541     % b_x & b_y & b_z
542     % \end{array}
543     % }
544     % \right |.
545     % \end{equation}
546     %\item In two dimensions ($a_z = b_z = 0$), the vector
547     % cross-product is defined as
548     %
549     % \begin{equation}
550     % \label{eq:cafn0:svft0:scpt1:03}
551     % \vec{a} \times \vec{b} = \left |
552     % {
553     % \begin{array}{ccc}
554     % \hat{i} & \hat{j} & \hat{k} \\
555     % a_x & a_y & 0 \\
556     % b_x & b_y & 0
557     % \end{array}
558     % }
559     % \right | = \hat{k} (a_x b_y - a_y b_x) .
560     % \end{equation}
561     %
562     % This function calculates the magnitude of the $\vec{k}$ component
563     % of a 3-dimensional vector cross-product when $a_z = b_z = 0$.
564     %\item This function returns a maximum when $a_x = b_y = a_y = -2^{15}$
565     % and $b_x = 2^{15} - 1$, leading to a maximum of $2^{31} - 2^{15}$.
566     % Similarly, the minimum can be shown to be $-2^{31} + 2^{15}$\@.
567     % Thus, the calculated result is always exact and always fits in a UCU\_SINT32.
568     %\end{list}
569     %
570     %
571     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
572     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
573     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
574     \subsection[\emph{UcuAtU16v2CpDiva2FRxx(\protect\mbox{\protect$\cdot$})}]
575     {\emph{UcuAtU16v2CpDiva2FRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
576     \label{cafn0:svft0:scpt0}
577    
578     \index{UcuAtU16v2CpDiva2FRxx()@\emph{UcuAtU16v2CpDiva2FRxx($\cdot$)}}%
579    
580     \noindent\textbf{PROTOTYPE}
581     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
582     \item
583     \begin{verbatim}
584     UCU_UINT16 UcuAtU16v2CpDiva2FRxx(
585     UCU_UINT16 a_x,
586     UCU_UINT16 a_y,
587     UCU_UINT16 b_x,
588     UCU_UINT16 b_y
589     )
590     \end{verbatim}
591     \end{list}
592     \vspace{2.8ex}
593    
594     \noindent\textbf{SYNOPSIS}
595     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
596     \item Calculates an approximation to
597    
598     \begin{equation}
599     \label{eq:cafn0:svft0:scpt0:01}
600     \left\lfloor \frac{| \vec{a} \times \vec{b} |}{| \vec{b} |} \right\rfloor
601     =
602     \left\lfloor \frac{| \vec{a} | | \vec{b} | \sin \theta}{| \vec{b} |} \right\rfloor ,
603     \end{equation}
604    
605     where $\vec{a}$ and $\vec{b}$ are in a special form as described below.
606     \item This function is a special purpose function and not especially portable. In particular, the design
607     of the interface is awkward. This function will eventually be replaced in the library.
608     \end{list}
609     \vspace{2.8ex}
610    
611     \noindent\textbf{INPUTS}
612     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
613     \item \emph{\textbf{a\_x, a\_y, b\_x, b\_y}}\\
614     The $x$ and $y$ components of the two vectors. Each is in ``excess-4096'' format, so that a value of 0 represents -4096, a value of 4096
615     represents 0, and a value of 8192 represents 4096.
616    
617     Each of these parameters are clipped into [32, 8160] by the function before any calculation
618     is performed, representing vector component values in [-4064, 4064].
619     \end{list}
620     \vspace{2.8ex}
621    
622     \noindent\textbf{OUTPUT}
623     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
624     \item An approximation of
625     $\left\lfloor \frac{| \vec{a} \times \vec{b} |}{| \vec{b} |}\right\rfloor
626     =
627     \left\lfloor\frac{| \vec{a} | | \vec{b} | \sin \theta}{| \vec{b} |}\right\rfloor$.
628     The approximation is within several counts of the ideal value.
629     \end{list}
630     \vspace{2.8ex}
631    
632     \noindent\textbf{EXCEPTION CASES}
633     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
634     \item If $\vec{b} = \vec{0}$, 0 is returned.
635     \end{list}
636     \vspace{2.8ex}
637    
638     \noindent\textbf{INTERRUPT COMPATIBILITY}
639     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
640     \item This function may be used from both non-ISR and ISR software.
641     \item This function is thread-safe.
642     \end{list}
643     \vspace{2.8ex}
644    
645     \noindent\textbf{EXECUTION TIME}
646     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
647     \item TBD.
648     \end{list}
649     \vspace{2.8ex}
650    
651     \noindent\textbf{FUNCTION NAME MNEMONIC}
652     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
653     \item \emph{U16v2}: operates on 2-dimensional vecotrs with UCU\_UINT16 components.
654     \emph{Cp}: cross-product.
655     \emph{Diva2}: divided by the second argument (the second vector).
656     \emph{F}: the result is floor'd.
657     \end{list}
658    
659    
660     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
662     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663     %\subsection[\emph{UcuAtS32S16v2CpDiva2FRxx(\protect\mbox{\protect$\cdot$})}]
664     % {\emph{UcuAtS32S16v2CpDiva2FRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
665     %\label{cafn0:svft0:scpt2}
666     %
667     %\index{UcuAtS32S16v2CpDiva2FRxx()@\emph{UcuAtS32S16v2CpDiva2FRxx($\cdot$)}}%
668     %
669     %\noindent\textbf{PROTOTYPE}
670     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
671     %\item
672     %\begin{verbatim}
673     %UCU_SINT32 UcuAtS32S16v2CpDiva2FRxx(
674     % UCU_SINT16 a_x,
675     % UCU_SINT16 a_y,
676     % UCU_SINT16 b_x,
677     % UCU_SINT16 b_y
678     % )
679     %\end{verbatim}
680     %\end{list}
681     %\vspace{2.8ex}
682     %
683     %\noindent\textbf{SYNOPSIS}
684     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
685     %\item Calculates
686     %
687     % \begin{equation}
688     % \label{eq:cafn0:svft0:scpt2:01}
689     % \left\lfloor \frac{\vec{a} \times \vec{b}}{| \vec{b} | \hat{k}} \right\rfloor ,
690     % \end{equation}
691     %
692     % where the floor function rounds negative values towards zero. It should be noted that by definition
693     %
694     % \begin{equation}
695     % \label{eq:cafn0:svft0:scpt2:02}
696     % \left\lfloor \left| \frac{\vec{a} \times \vec{b}}{| \vec{b} | \hat{k}} \right| \right\rfloor
697     % =
698     % \lfloor |\vec{a}| \sin \theta \rfloor ,
699     % \end{equation}
700     %
701     % where $\theta$ is the angle between $\vec{a}$ and $\vec{b}$, $0 \leq \theta \leq \pi$,
702     % so that this function provides an excellent approximation to
703     % $\lfloor |\vec{a}| \sin \theta \rfloor$.
704     %\item For two vectors $\vec{a}$ and $\vec{b}$ that both begin at the origin,
705     % the absolute value of this function's return value is
706     % the floor of the shortest distance between the tip of $\vec{a}$ and the line coincident with
707     % $\vec{b}$.
708     %\item The precise calculation method used by this function is described in
709     % \S{}\ref{ctbg0:svec2} (p. \pageref{ctbg0:svec2}).
710     %\end{list}
711     %\vspace{2.8ex}
712     %
713     %\noindent\textbf{INPUTS}
714     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
715     %\item \emph{\textbf{a\_x, a\_y, b\_x, b\_y}}\\
716     % The $x$ and $y$ components of the two vectors. All components are signed, and this function
717     % will return correct results over the entire input domain.
718     %\end{list}
719     %\vspace{2.8ex}
720     %
721     %\noindent\textbf{OUTPUT}
722     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
723     %\item $\displaystyle{\left\lfloor \frac{\vec{a} \times \vec{b}}{| \vec{b} | \hat{k}} \right\rfloor}$,
724     % where the floor function rounds negative values towards zero.
725     %\end{list}
726     %\vspace{2.8ex}
727     %
728     %\noindent\textbf{EXCEPTION CASES}
729     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
730     %\item None.
731     %\end{list}
732     %\vspace{2.8ex}
733     %
734     %\noindent\textbf{INTERRUPT COMPATIBILITY}
735     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
736     %\item This function may be used from both non-ISR and ISR software.
737     %\item This function is thread-safe.
738     %\end{list}
739     %\vspace{2.8ex}
740     %
741     %\noindent\textbf{EXECUTION TIME}
742     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
743     %\item TBD.
744     %\end{list}
745     %\vspace{2.8ex}
746     %
747     %\noindent\textbf{FUNCTION NAME MNEMONIC}
748     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
749     %\item \emph{S32}: the return value is UCU\_SINT32.
750     % \emph{S16v2}: operates on 2-dimensional vectors with UCU\_SINT16 components.
751     % \emph{Cp}: cross-product.
752     % \emph{Diva2}: divided by the second argument (the second vector).
753     % \emph{F}: the result is floor'd.
754     %\end{list}
755     %
756     %
757     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
758     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
759     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
760     %\subsection[\emph{UcuAtU32S16v2MagSquaredRxx(\protect\mbox{\protect$\cdot$})}]
761     % {\emph{UcuAtU32S16v2MagSquaredRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
762     %\label{cafn0:svft0:svmf0}
763     %
764     %\index{UcuAtU32S16v2MagSquaredRxx()@\emph{UcuAtU32S16v2MagSquaredRxx($\cdot$)}}%
765     %
766     %\noindent\textbf{PROTOTYPE}
767     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
768     %\item
769     %\begin{verbatim}
770     %UCU_UINT32 UcuAtU32S16v2MagSquaredRxx(
771     % UCU_SINT16 a_x,
772     % UCU_SINT16 a_y
773     % )
774     %\end{verbatim}
775     %\end{list}
776     %\vspace{2.8ex}
777     %
778     %\noindent\textbf{SYNOPSIS}
779     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
780     %\item Calculates $a_x^2 + a_y^2$.
781     %\item The maximum value of $a_x^2 + a_y^2$ is $2(2^{15})^2$ = $2^{31}$,
782     % so the return value of this function may exceed the maximum value
783     % of an UCU\_SINT32, hence the return type UCU\_UINT32 is necessary,
784     % and the result of this function may not be safely cast to
785     % UCU\_SINT32.
786     %\end{list}
787     %\vspace{2.8ex}
788     %
789     %\noindent\textbf{INPUTS}
790     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
791     %\item \emph{\textbf{a\_x, a\_y}}\\
792     % The $x$ and $y$ components of a vector. The components are signed, and this function
793     % will return correct results over the entire input domain.
794     %\end{list}
795     %\vspace{2.8ex}
796     %
797     %\noindent\textbf{OUTPUT}
798     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
799     %\item $a_x^2 + a_y^2$.
800     %\end{list}
801     %\vspace{2.8ex}
802     %
803     %\noindent\textbf{EXCEPTION CASES}
804     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
805     %\item None.
806     %\end{list}
807     %\vspace{2.8ex}
808     %
809     %\noindent\textbf{INTERRUPT COMPATIBILITY}
810     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
811     %\item This function may be used from both non-ISR and ISR software.
812     %\item This function is thread-safe.
813     %\end{list}
814     %\vspace{2.8ex}
815     %
816     %\noindent\textbf{EXECUTION TIME}
817     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
818     %\item TBD.
819     %\end{list}
820     %\vspace{2.8ex}
821     %
822     %\noindent\textbf{FUNCTION NAME MNEMONIC}
823     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
824     %\item \emph{U32}: the return value is UCU\_UINT32.
825     % \emph{S16v2}: operates on 2-dimensional vectors with UCU\_SINT16 components.
826     % \emph{MagSquared}: returns the vector magnitude squared.
827     %\end{list}
828     %
829     %
830     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
831     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
832     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
833     \section{Square Root Extraction Functions}
834     %Section tag: sre0
835     \label{cafn0:ssre0}
836    
837    
838     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
839     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
840     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
841     \subsection[\emph{UcuAtU8SqrtFRxx(\protect\mbox{\protect$\cdot$})}]
842     {\emph{UcuAtU8SqrtFRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
843     %Subsection tag: lcp0
844     \label{cafn0:ssre0:suee0}
845    
846     \index{UcuAtU8SqrtFRxx()@\emph{UcuAtU8SqrtFRxx($\cdot$)}}%
847    
848     \noindent\textbf{PROTOTYPE}
849     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
850     \item
851     \begin{verbatim}
852     UCU_UINT8 UcuAtU8SqrtFRxx( UCU_UINT8 x )
853     \end{verbatim}
854     \end{list}
855     \vspace{2.8ex}
856    
857     \noindent\textbf{SYNOPSIS}
858     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
859     \item
860     Calculates $\lfloor \sqrt{x} \rfloor$ using a 4-iteration
861     trial squaring algorithm.
862     \end{list}
863     \vspace{2.8ex}
864    
865     \noindent\textbf{INPUT}
866     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
867     \item \emph{\textbf{x}}\\
868     The unsigned 8-bit integer whose square root is to be calculated.
869     \end{list}
870     \vspace{2.8ex}
871    
872     \noindent\textbf{OUTPUT}
873     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
874     \item $\lfloor \sqrt{x} \rfloor$.
875     \end{list}
876     \vspace{2.8ex}
877    
878     \noindent\textbf{INTERRUPT COMPATIBILITY}
879     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
880     \item This function may be used from both non-ISR and ISR software.
881     \item This function is thread-safe.
882     \end{list}
883     \vspace{2.8ex}
884    
885     \noindent\textbf{EXECUTION TIME}
886     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
887     \item TBD.
888     \end{list}
889     \vspace{2.8ex}
890    
891     \noindent\textbf{FUNCTION NAME MNEMONIC}
892     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
893     \item \emph{U8}: operates on UCU\_UINT8 operands.
894     \emph{Sqrt}: square root.
895     \emph{F}: result is floor'd.
896     \end{list}
897    
898    
899     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
900     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
901     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
902     \subsection[\emph{UcuAtU16SqrtFRxx(\protect\mbox{\protect$\cdot$})}]
903     {\emph{UcuAtU16SqrtFRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
904     \label{cafn0:ssre0:suee1}
905    
906     \index{UcuAtU16SqrtFRxx()@\emph{UcuAtU16SqrtFRxx($\cdot$)}}%
907    
908     \noindent\textbf{PROTOTYPE}
909     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
910     \item
911     \begin{verbatim}
912     UCU_UINT8 UcuAtU16SqrtFRxx( UCU_UINT16 x )
913     \end{verbatim}
914     \end{list}
915     \vspace{2.8ex}
916    
917     \noindent\textbf{SYNOPSIS}
918     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
919     \item
920     Calculates $\lfloor \sqrt{x} \rfloor$ using an 8-iteration
921     trial squaring algorithm.
922     \end{list}
923     \vspace{2.8ex}
924    
925     \noindent\textbf{INPUT}
926     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
927     \item \emph{\textbf{x}}\\
928     The unsigned 16-bit integer whose square root is to be calculated.
929     \end{list}
930     \vspace{2.8ex}
931    
932     \noindent\textbf{OUTPUT}
933     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
934     \item $\lfloor \sqrt{x} \rfloor$.
935     \end{list}
936     \vspace{2.8ex}
937    
938     \noindent\textbf{INTERRUPT COMPATIBILITY}
939     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
940     \item This function may be used from both non-ISR and ISR software.
941     \item This function is thread-safe.
942     \end{list}
943     \vspace{2.8ex}
944    
945     \noindent\textbf{EXECUTION TIME}
946     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
947     \item TBD.
948     \end{list}
949     \vspace{2.8ex}
950    
951     \noindent\textbf{FUNCTION NAME MNEMONIC}
952     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
953     \item \emph{U16}: operates on UCU\_UINT16 operands.
954     \emph{Sqrt}: square root.
955     \emph{F}: result is floor'd.
956     \end{list}
957    
958    
959     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
960     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
961     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
962     \subsection[\emph{UcuAtU16SqrtX10FRxx(\protect\mbox{\protect$\cdot$})}]
963     {\emph{UcuAtU16SqrtX10FRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
964     \label{cafn0:ssre0:suee2}
965    
966     \index{UcuAtU16SqrtX10FRxx()@\emph{UcuAtU16SqrtX10FRxx($\cdot$)}}%
967    
968     \noindent\textbf{PROTOTYPE}
969     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
970     \item
971     \begin{verbatim}
972     UCU_UINT16 UcuAtU16SqrtX10FRxx( UCU_UINT16 val )
973     \end{verbatim}
974     \end{list}
975     \vspace{2.8ex}
976    
977     \noindent\textbf{SYNOPSIS}
978     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
979     \item
980     Calculates an approximation to $10 \sqrt{x}$ using the Babylonian method.
981     The value returned will be either $\lfloor 10 \sqrt{x} \rfloor$
982     or $\lfloor 10 \sqrt{x} \rfloor + 1$.
983     \end{list}
984     \vspace{2.8ex}
985    
986     \noindent\textbf{INPUT}
987     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
988     \item \emph{\textbf{x}}\\
989     The unsigned 16-bit integer whose square root is to be calculated.
990     \end{list}
991     \vspace{2.8ex}
992    
993     \noindent\textbf{OUTPUT}
994     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
995     \item $\lfloor 10 \sqrt{x} \rfloor$ or $\lfloor 10 \sqrt{x} \rfloor + 1$. There is
996     no rule as to which will be returned (i.e. the value returned does not
997     represent rounding). The possibility of returning either value is tied
998     to the algorithm used.\footnote{This is a to-do item for this function.
999     It should be modified to return $\lfloor 10 \sqrt{x} \rfloor$ in
1000     all cases. Alternate algorithms should also be explored (for speed).}
1001     \item This function is known to return a maximum of 2,559,
1002     corresponding to $x = 65535$.
1003     \end{list}
1004     \vspace{2.8ex}
1005    
1006     \noindent\textbf{INTERRUPT COMPATIBILITY}
1007     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1008     \item This function may be used from both non-ISR and ISR software.
1009     \item This function is thread-safe.
1010     \end{list}
1011     \vspace{2.8ex}
1012    
1013     \noindent\textbf{EXECUTION TIME}
1014     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1015     \item TBD.
1016     \end{list}
1017     \vspace{2.8ex}
1018    
1019     \noindent\textbf{FUNCTION NAME MNEMONIC}
1020     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1021     \item \emph{U16}: operates on UCU\_UINT16 operands.
1022     \emph{Sqrt}: square root.
1023     \emph{X10}: result is multiplied by 10.
1024     \emph{F}: result is floor'd.
1025     \end{list}
1026    
1027    
1028     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1029     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1030     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1031     %\subsection[\emph{UcuAtU32SqrtFRxx(\protect\mbox{\protect$\cdot$})}]
1032     % {\emph{UcuAtU32SqrtFRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
1033     %\label{cafn0:ssre0:suee5}
1034     %
1035     %\index{UcuAtU32SqrtFRxx()@\emph{UcuAtU32SqrtFRxx($\cdot$)}}%
1036     %
1037     %\noindent\textbf{PROTOTYPE}
1038     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1039     %\item
1040     %\begin{verbatim}
1041     %UCU_UINT16 UcuAtU32SqrtFRxx( UCU_UINT32 x )
1042     %\end{verbatim}
1043     %\end{list}
1044     %\vspace{2.8ex}
1045     %
1046     %\noindent\textbf{SYNOPSIS}
1047     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1048     %\item
1049     %Calculates $\lfloor \sqrt{x} \rfloor$ using a 16-iteration
1050     %trial squaring algorithm.
1051     %\end{list}
1052     %\vspace{2.8ex}
1053     %
1054     %\noindent\textbf{INPUT}
1055     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
1056     %\item \emph{\textbf{x}}\\
1057     % The unsigned 32-bit integer whose square root is to be calculated.
1058     %\end{list}
1059     %\vspace{2.8ex}
1060     %
1061     %\noindent\textbf{OUTPUT}
1062     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1063     %\item $\lfloor \sqrt{x} \rfloor$.
1064     %\end{list}
1065     %\vspace{2.8ex}
1066     %
1067     %\noindent\textbf{INTERRUPT COMPATIBILITY}
1068     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1069     %\item This function may be used from both non-ISR and ISR software.
1070     %\item This function is thread-safe.
1071     %\end{list}
1072     %\vspace{2.8ex}
1073     %
1074     %\noindent\textbf{EXECUTION TIME}
1075     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1076     %\item TBD.
1077     %\end{list}
1078     %\vspace{2.8ex}
1079     %
1080     %\noindent\textbf{FUNCTION NAME MNEMONIC}
1081     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1082     %\item \emph{U32}: operates on UCU\_UINT32 operands.
1083     % \emph{Sqrt}: square root.
1084     % \emph{F}: result is floor'd.
1085     %\end{list}
1086     %
1087     %
1088     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1089     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1090     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1091     %\section{Sign Determination Functions}
1092     %\label{cafn0:ssdf0}
1093     %
1094     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1095     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1096     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1097     %\subsection[\emph{UcuAtS32IsNegRxx(\protect\mbox{\protect$\cdot$})}]
1098     % {\emph{UcuAtS32IsNegRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
1099     %\label{cafn0:ssdf0:sisn0}
1100     %
1101     %\index{UcuAtS32IsNegRxx()@\emph{UcuAtS32IsNegRxx($\cdot$)}}%
1102     %
1103     %\noindent\textbf{PROTOTYPE}
1104     %\begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1105     %\item
1106     %\begin{verbatim}
1107     %UCU_BOOLEAN UcuAtS32IsNegRxx( UCU_SINT32 x )
1108     %\end{verbatim}
1109     %\end{list}
1110     %\vspace{2.8ex}
1111     %
1112     %\noindent\textbf{SYNOPSIS}
1113     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1114     %\item
1115     %Returns UCU\_TRUE if $x<0$ or UCU\_FALSE otherwise.
1116     %\end{list}
1117     %\vspace{2.8ex}
1118     %
1119     %\noindent\textbf{INPUT}
1120     %\begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
1121     %\item \emph{\textbf{x}}\\
1122     % The signed 32-bit integer to be tested for negativity.
1123     %\end{list}
1124     %\vspace{2.8ex}
1125     %
1126     %\noindent\textbf{OUTPUT}
1127     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1128     %\item UCU\_TRUE if $x<0$ or UCU\_FALSE otherwise.
1129     %\end{list}
1130     %\vspace{2.8ex}
1131     %
1132     %\noindent\textbf{INTERRUPT COMPATIBILITY}
1133     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1134     %\item This function may be used from both non-ISR and ISR software.
1135     %\item This function is thread-safe.
1136     %\end{list}
1137     %\vspace{2.8ex}
1138     %
1139     %\noindent\textbf{EXECUTION TIME}
1140     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1141     %\item TBD.
1142     %\end{list}
1143     %\vspace{2.8ex}
1144     %
1145     %\noindent\textbf{FUNCTION NAME MNEMONIC}
1146     %\begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1147     %\item \emph{S32}: operates on UCU\_SINT32 operands.
1148     % \emph{IsNeg}: tests if the argument \emph{is} \emph{neg}ative.
1149     %\end{list}
1150     %
1151     %
1152     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1153     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1154     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1155     \section{Trigonometric Functions}
1156     \label{cafn0:strf0}
1157    
1158    
1159     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1160     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1161     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1162     \subsection[\emph{UcuAtAtanIx100Odegx1RRxx(\protect\mbox{\protect$\cdot$})}]
1163     {\emph{UcuAtAtanIx100Odegx1RRxx(\protect\mbox{\protect\boldmath $\cdot$})}}
1164     \label{cafn0:strf0:sata0}
1165    
1166     \index{UcuAtAtanIx100Odegx1RRxx()@\emph{UcuAtAtanIx100Odegx1RRxx($\cdot$)}}%
1167    
1168     \noindent\textbf{PROTOTYPE}
1169     \begin {list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1170     \item
1171     \begin{verbatim}
1172     UCU_UINT8 UcuAtAtanIx100Odegx1RRxx( UCU_UINT16 x )
1173     \end{verbatim}
1174     \end{list}
1175     \vspace{2.8ex}
1176    
1177     \noindent\textbf{SYNOPSIS}
1178     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1179     \item Calculates $\tan{}^{-1}x$ to 1-degree precision in the first quadrant
1180     only using a binary search on an internal 90-element lookup table.
1181     \end{list}
1182     \vspace{2.8ex}
1183    
1184     \noindent\textbf{INPUT}
1185     \begin{list}{}{\setlength{\leftmargin}{0.5in}\setlength{\itemindent}{-0.25in}\setlength{\topsep}{0.0in}\setlength{\partopsep}{0.0in}}
1186     \item \emph{\textbf{x}}\\
1187     100 times the tangent whose arctangent is to be calculated.
1188     For example, 0.58 would be supplied to this function
1189     as $x=58$.
1190     \end{list}
1191     \vspace{2.8ex}
1192    
1193     \noindent\textbf{OUTPUT}
1194     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1195     \item $\tan{}^{-1}x$, in the first quadrant, rounded approximately to the
1196     nearest degree.
1197     \end{list}
1198     \vspace{2.8ex}
1199    
1200     \noindent\textbf{EXCEPTION CASES}
1201     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1202     \item This function returns the expected value for all input arguments,
1203     so there are no exception cases.
1204     Input arguments from 11459 through $2^{16}-1$ will result
1205     in a returned value of 90.\footnote{The tangent of 89.5 degrees is approximately 114.5887,
1206     so an input argument of 11458 will result in a return value of 89, while an
1207     input argument of 11459 will result in a return value of 90.}
1208     \end{list}
1209     \vspace{2.8ex}
1210    
1211     \noindent\textbf{INTERRUPT COMPATIBILITY}
1212     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1213     \item This function may be used from both non-ISR and ISR software.
1214     \item This function is thread-safe.
1215     \end{list}
1216     \vspace{2.8ex}
1217    
1218     \noindent\textbf{EXECUTION TIME}
1219     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1220     \item TBD.
1221     \end{list}
1222     \vspace{2.8ex}
1223    
1224     \noindent\textbf{FUNCTION NAME MNEMONIC}
1225     \begin{list}{}{\setlength{\leftmargin}{0.25in}\setlength{\topsep}{0.0in}}
1226     \item \emph{Atan}: arctangent.
1227     \emph{Ix100}: input $\times$ 100.
1228     \emph{Odegx1}: output in degrees $\times$ 1.
1229     \emph{R}: rounded (to nearest degree).
1230     \end{list}
1231    
1232    
1233     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1234     \noindent\begin{figure}[!b]
1235     \noindent\rule[-0.25in]{\textwidth}{1pt}
1236     \begin{tiny}
1237     \begin{verbatim}
1238     $RCSfile: c_afn0.tex,v $
1239     $Source: /home/dashley/cvsrep/uculib01/uculib01/doc/manual/c_afn0/c_afn0.tex,v $
1240     $Revision: 1.37 $
1241     $Author: dashley $
1242     $Date: 2010/05/12 18:35:49 $
1243     \end{verbatim}
1244     \end{tiny}
1245     \noindent\rule[0.25in]{\textwidth}{1pt}
1246     \end{figure}
1247     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1248     %$Log: c_afn0.tex,v $
1249     %Revision 1.37 2010/05/12 18:35:49 dashley
1250     %Removal of UcuAtS32S16v2CpDiva2FRxx() function.
1251     %
1252     %Revision 1.36 2010/05/12 18:29:49 dashley
1253     %Removal of UcuAtS32S16v2CpRxx() function.
1254     %
1255     %Revision 1.35 2010/05/12 17:20:51 dashley
1256     %Removal of UcuAtS32NegationRxx() function.
1257     %
1258     %Revision 1.34 2010/05/12 17:16:47 dashley
1259     %Removal of UcuAtU32S16v2MagSquaredRxx() function.
1260     %
1261     %Revision 1.33 2010/05/12 17:09:42 dashley
1262     %UcuAtS32IsNegRxx() function backed out.
1263     %
1264     %Revision 1.32 2010/05/12 17:04:17 dashley
1265     %UcuAtU32SqrtFRxx() function backed out. This function is not yet
1266     %implemented.
1267     %
1268     %Revision 1.31 2010/04/16 19:35:41 dashley
1269     %Missing word added.
1270     %
1271     %Revision 1.30 2010/04/16 19:33:37 dashley
1272     %Addition of UcuAtS32NegationRxx() function.
1273     %
1274     %Revision 1.29 2010/04/15 20:21:07 dashley
1275     %Typo corrected.
1276     %
1277     %Revision 1.28 2010/04/15 19:34:39 dashley
1278     %Addition of UcuAtU32S16v2MagSquaredRxx() function.
1279     %
1280     %Revision 1.27 2010/04/15 17:34:52 dashley
1281     %Addition of UcuAtS32IsNegRxx() function.
1282     %
1283     %Revision 1.26 2010/04/15 14:56:28 dashley
1284     %Addition of UcuAtU32SqrtFRxx() function.
1285     %
1286     %Revision 1.25 2010/04/14 14:29:47 dashley
1287     %Incorrect equation labels changed.
1288     %
1289     %Revision 1.24 2010/04/05 15:13:50 dashley
1290     %Edits.
1291     %
1292     %Revision 1.23 2010/04/05 13:22:09 dashley
1293     %Function documentation updated.
1294     %
1295     %Revision 1.22 2010/04/01 20:21:50 dashley
1296     %Edits.
1297     %
1298     %Revision 1.21 2010/04/01 14:49:25 dashley
1299     %Addition of UcuAtS32S16v2CpRxx() function.
1300     %
1301     %Revision 1.20 2010/02/20 16:55:52 dashley
1302     %Function added.
1303     %
1304     %Revision 1.19 2010/02/19 17:12:55 dashley
1305     %Function added.
1306     %
1307     %Revision 1.18 2010/02/18 17:05:57 dashley
1308     %Edits.
1309     %
1310     %Revision 1.17 2010/02/17 19:07:34 dashley
1311     %Documentation added.
1312     %
1313     %Revision 1.16 2010/02/16 23:38:42 dashley
1314     %Description of Sqrtx10 function corrected.
1315     %
1316     %Revision 1.15 2010/02/15 20:33:56 dashley
1317     %Minor typo corrected.
1318     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1319    

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25