*** empty log message ***

This commit is contained in:
George Weigt 2007-06-26 10:25:21 -07:00
parent 97f678fe1c
commit 088a1f28c3
3 changed files with 48 additions and 2 deletions

View file

@ -1035,7 +1035,7 @@ zero($i,j,\ldots$) returns a null tensor with dimensions $i$, $j$, etc.
Useful for creating a tensor and then setting the component values.
See page \pageref{example2}.
%\include{how-it-works}
\include{how-it-works}
\newpage

View file

@ -29,7 +29,7 @@ The following script compares the two.
\verb$vs/ac$
\verb$last*60*"min"/"hr"$
\verb$vs/ac*60*"min"/"hr"$
\medskip
\noindent

46
how-it-works.tex Normal file
View file

@ -0,0 +1,46 @@
\chapter{How it works}
Eigenmath is written in the C programming language.
Its central data structure is
an array of one million 16-byte blocks of memory.
\begin{verbatim}
_______
0 |_______| \
1 |_______| |
2 |_______| |
| | |
. . | 16,000,000 bytes
. . |
. . |
|_______| |
999,999 |_______| /
\end{verbatim}
If necessary, Eigenmath will allocate additional memory in increments of one
million blocks.
The maximum amount of memory allocated is 160 million bytes,
or ten times what is shown above.
\newpage
This data structure is fundamentally different from a normal linked
list.
\begin{verbatim}
For example, (a b + c) is built like this:
_______ _______ _______
|CONS |--->|CONS |----------------------------->|CONS |
| | | | | |
|_______| |_______| |_______|
| | |
___v___ ___v___ _______ _______ ___v___
|ADD | |CONS |--->|CONS |--->|CONS | |SYM c |
| | | | | | | | | |
|_______| |_______| |_______| |_______| |_______|
| | |
___v___ ___v___ ___v___
|MUL | |SYM a | |SYM b |
| | | | | |
|_______| |_______| |_______|
\end{verbatim}