diff options
author | Karl Berry <karl@freefriends.org> | 2012-05-31 00:02:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2012-05-31 00:02:26 +0000 |
commit | 19fc9fd9a26973d87fad437ce549ffaba479df54 (patch) | |
tree | f40a9d2592b3cf827970c8bf54a1eebf9cc8f9c0 /Build/source/utils/asymptote/doc | |
parent | 24b3bac312553b2cc61e94fda581aba311967f5c (diff) |
asy 2.16 sources
git-svn-id: svn://tug.org/texlive/trunk@26734 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/doc')
15 files changed, 1290 insertions, 669 deletions
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf Binary files differindex af88c9c9895..bb61b12dd4d 100644 --- a/Build/source/utils/asymptote/doc/CAD.pdf +++ b/Build/source/utils/asymptote/doc/CAD.pdf diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info index 379b772757c..ce35b88fc2b 100644 --- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info +++ b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 19 Jun 2011 + 30 May 2012 This is the list of Frequently Asked Questions about Asymptote (asy). diff --git a/Build/source/utils/asymptote/doc/FAQ/install-sh b/Build/source/utils/asymptote/doc/FAQ/install-sh index 377bb8687ff..6781b987bdb 100755 --- a/Build/source/utils/asymptote/doc/FAQ/install-sh +++ b/Build/source/utils/asymptote/doc/FAQ/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ scriptversion=2011-11-20.07; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written @@ -156,10 +156,6 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac shift;; -T) no_target_directory=true;; @@ -190,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -202,17 +194,13 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -240,9 +228,9 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -264,7 +252,12 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -354,7 +347,7 @@ do if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. + # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in @@ -392,7 +385,7 @@ do case $dstdir in /*) prefix='/';; - [-=\(\)!]*) prefix='./';; + -*) prefix='./';; *) prefix='';; esac @@ -410,7 +403,7 @@ do for d do - test X"$d" = X && continue + test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/Build/source/utils/asymptote/doc/Makefile.in b/Build/source/utils/asymptote/doc/Makefile.in index c93e4f57f46..0a924bafa82 100644 --- a/Build/source/utils/asymptote/doc/Makefile.in +++ b/Build/source/utils/asymptote/doc/Makefile.in @@ -2,7 +2,8 @@ MANFILES = asy.1 xasy.1x ASYFILES = $(filter-out $(wildcard latexusage-*.asy),$(wildcard *.asy)) SOURCE = asymptote.texi version.texi options ASY = ../asy -dir ../base -config "" -render=0 -DOCFILES = asymptote.pdf asy-latex.pdf CAD.pdf TeXShopAndAsymptote.pdf +DOCFILES = asymptote.pdf asy-latex.pdf CAD.pdf TeXShopAndAsymptote.pdf \ + asyRefCard.pdf docdir = $(DESTDIR)@docdir@ infodir = $(DESTDIR)@infodir@ @@ -25,7 +26,9 @@ dvi: doc asymptote.dvi doc: $(DOCFILES) asy.1 faq latexusage.eps cd png && $(MAKE) all -man: $(DOCFILES) asy.1 +manpage: $(MANFILES) + +man: $(DOCFILES) manpage cd png && $(MAKE) asymptote.info faq: @@ -55,7 +58,9 @@ options: ../settings.cc $(ASY) -h 2>&1 | grep -iv Asymptote > options asy.1: options asy.1.begin asy.1.end - cat options | grep \^- | sed -e "s/-\(.*\) \([a-zA-Z0-9].*\)/.TP\n.B -\1\n\2\./" | sed -e "/^.B/ s/-/\\\\-/g" | cat asy.1.begin - asy.1.end > asy.1 + cat options | grep \^- | \ + sed -e "s/-\(.*\) \([a-zA-Z0-9].*\)/.TP\n.B -\1\n\2\./" | \ + sed -e "/^.B/ s/-/\\\\-/g" | cat asy.1.begin - asy.1.end > asy.1 asymptote.dvi: $(SOURCE) $(ASYFILES:.asy=.eps) latexusage.pdf ln -sf asymptote.texi asymptote_.texi @@ -76,11 +81,17 @@ TeXShopAndAsymptote.pdf: TeXShopAndAsymptote.tex latex TeXShopAndAsymptote dvipdf TeXShopAndAsymptote +asyRefCard.pdf: asyRefCard.tex + tex asyRefCard + dvipdf asyRefCard + clean: FORCE -rm -f asy-latex.{aux,idx,ins,log,toc} -rm -f $(ASYFILES:.asy=.pdf) - -rm -f *.eps latexusage.{dvi,eps,pdf,log,aux,*.eps} latexusage-* latexusage.pre - -rm -f {asymptote,asymptote_}.{aux,cp,cps,dvi,fn,info,ky,log,pg,toc,tp,vr} + -rm -f *.eps latexusage.{dvi,eps,pdf,log,aux,*.eps} latexusage-* \ + latexusage.pre + -rm -f \ + {asymptote,asymptote_}.{aux,cp,cps,dvi,fn,info,ky,log,pg,toc,tp,vr} -rm -f asymptote_.texi -rm -f CAD.{aux,dvi,log,toc} -rm -f options asy.1 @@ -100,7 +111,7 @@ install-prebuilt: install-man options cd png && $(MAKE) install cd FAQ && $(MAKE) install-prebuilt -install-all: $(DOCFILES) asy.1 faq latexusage.eps install-man +install-all: $(DOCFILES) $(MANFILES) faq latexusage.eps install-man cd png && $(MAKE) install-all cd FAQ && $(MAKE) install-info diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf Binary files differindex 669f1660b2f..61dfa38cc71 100755 --- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf +++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf diff --git a/Build/source/utils/asymptote/doc/asy-latex.dtx b/Build/source/utils/asymptote/doc/asy-latex.dtx index 3cb386cd6b4..1e9c795303f 100644 --- a/Build/source/utils/asymptote/doc/asy-latex.dtx +++ b/Build/source/utils/asymptote/doc/asy-latex.dtx @@ -38,7 +38,7 @@ Licence: GPL2+ %</driver> %<pkg>\ProvidesPackage{asymptote} %<*pkg> - [2011/05/15 v1.24 Asymptote style file for LaTeX] + [2011/11/29 v1.26 Asymptote style file for LaTeX] %</pkg> % %<*driver> @@ -129,11 +129,11 @@ Licence: GPL2+ % addition to locally setting \texttt{inline} and \texttt{attach}, the % following options may also be used: % \begin{description} -% \item[height] Height of the figure % \item[width] Width of the figure +% \item[height] Height of the figure % \item[keepAspect] Maintain aspect ratio [default true] -% \item[viewportheight] Viewport height for 3D figures % \item[viewportwidth] Viewport width for 3D figures +% \item[viewportheight] Viewport height for 3D figures % \end{description} % These may also be set globally using the \cmd\asysetup\ command. % @@ -230,6 +230,7 @@ Licence: GPL2+ % % \begin{macro}{\CatchFileDef} % Used for \cmd\asyinclude. +% Note that the fallback definition is not as robust as the one provided by catchfile. % \begin{macrocode} \IfFileExists{catchfile.sty}{ \RequirePackage{catchfile} @@ -240,12 +241,12 @@ Licence: GPL2+ \ENDCATCHFILEMARKER \noexpand }% - \long\def\@tempa##1\ENDCATCHFILEMARKER{% + \long\def\@tempa####1\ENDCATCHFILEMARKER{% \endgroup - \def#1{##1}% + \def##1{####1}% }% - #3% - \expandafter\@tempa\@@input #2\relax + ##3% + \expandafter\@tempa\@@input ##2\relax } } % \end{macrocode} @@ -526,11 +527,7 @@ Licence: GPL2+ \fi % \end{macrocode} % Setting \verb|viewportsize=()|. Same logic as for \verb|size()|. -% Note that \cs{ASYviewportwidth} varies according to \cs{ASYattach}, -% by default, so it needs to be fully expanded before checking if it equals -% zero. % \begin{macrocode} - \edef\ASYviewportwidth{\ASYviewportwidth}% locally "freeze" viewportwidth \ifx\ASYviewportwidth\@empty \ifx\ASYviewportheight\@empty % write nothing! @@ -619,25 +616,25 @@ Licence: GPL2+ \immediate\write\AsyPreStream{% \noexpand\InputIfFileExists{% \ASYprefix\noexpand\jobname-\the\c@asy.pre}{}{}% - } + }% \asy@write@graphic@header \IfFileExists{#2.asy}{% \CatchFileDef\@tempa{#2.asy}{% \let\do\@makeother \dospecials \endlinechar=10\relax - } - }{ + }% + }{% \IfFileExists{#2}{% \CatchFileDef\@tempa{#2}{% \let\do\@makeother \dospecials \endlinechar=10\relax - } - }{ + }% + }{% \PackageWarning{asymptote}{file #2 not found}% - } - } + }% + }% \immediate\write\AsyStream{\unexpanded\expandafter{\@tempa}}% \asy@finalise@stream \asy@input@graphic @@ -649,7 +646,7 @@ Licence: GPL2+ \newcommand{\ASYanimategraphics}[5][]{% \IfFileExists{_#3.pdf}{% \animategraphics[{#1}]{#2}{_#3}{#4}{#5}% - }{} + }{}% } % \end{macrocode} % @@ -676,10 +673,7 @@ Licence: GPL2+ {\ASYkeepAspecttrue} {\ASYkeepAspectfalse}% } -\def\ASYviewportwidth{\ASYdefaultviewportwidth} -\def\ASYdefaultviewportwidth{% - \ifASYattach \@empty \else \the\linewidth \fi -} +\def\ASYviewportwidth{} \define@key{ASYkeys}{viewportwidth}{% \edef\ASYviewportwidth{\the\dimexpr#1\relax}% } diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf Binary files differindex c028d584dd5..272cb138084 100755 --- a/Build/source/utils/asymptote/doc/asy-latex.pdf +++ b/Build/source/utils/asymptote/doc/asy-latex.pdf diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf Binary files differnew file mode 100644 index 00000000000..bed262c88fd --- /dev/null +++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf diff --git a/Build/source/utils/asymptote/doc/asyRefCard.tex b/Build/source/utils/asymptote/doc/asyRefCard.tex new file mode 100644 index 00000000000..e058b857d58 --- /dev/null +++ b/Build/source/utils/asymptote/doc/asyRefCard.tex @@ -0,0 +1,556 @@ +% Reference Card for Asymptote + +% Copyright (c) 2011 John C. Bowman. May be freely distributed. +% Thanks to Stephen Gildea for the multicolumn macro package +% and Joseph H. Silverman for the C Reference card. + +%**start of header +\newcount\columnsperpage + +\overfullrule=0pt + +% This file can be printed with 1, 2, or 3 columns per page (see below). +% [For 2 or 3 columns, you'll need 6 and 8 point fonts.] +% Specify how many you want here. Nothing else needs to be changed. + +\columnsperpage=2 + +% This reference card is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +% This file is intended to be processed by plain TeX (TeX82). +% +% The final reference card has six columns, three on each side. +% This file can be used to produce it in any of three ways: +% 1 column per page +% produces six separate pages, each of which needs to be reduced to 80%. +% This gives the best resolution. +% 2 columns per page +% produces three already-reduced pages. +% You will still need to cut and paste. +% 3 columns per page +% produces two pages which must be printed sideways to make a +% ready-to-use 8.5 x 11 inch reference card. +% For this you need a dvi device driver that can print sideways. +% Which mode to use is controlled by setting \columnsperpage above. +% +% (reference card macros due to Stephen Gildea) +% + +\def\versionnumber{0.0} % Version of this reference card +\def\year{2011} +\def\month{August} +\def\version{\month\ \year\ v\versionnumber} + +\def\shortcopyrightnotice{\vskip .5ex plus 2 fill + \centerline{\small \copyright\ \year\ John C. Bowman + Permissions on back. v\versionnumber}} + +\def\copyrightnotice{ +\vskip 1ex plus 100 fill\begingroup\small +\centerline{\version. Copyright \copyright\ \year\ John C. Bowman} + +Permission is granted to make and distribute copies of +this card provided the copyright notice and this permission notice +are preserved on all copies. +\endgroup} + +% make \bye not \outer so that the \def\bye in the \else clause below +% can be scanned without complaint. +\def\bye{\par\vfill\supereject\end} + +\newdimen\intercolumnskip +\newbox\columna +\newbox\columnb + +\def\ncolumns{\the\columnsperpage} + +\message{[\ncolumns\space + column\if 1\ncolumns\else s\fi\space per page]} + +\def\scaledmag#1{ scaled \magstep #1} + +% This multi-way format was designed by Stephen Gildea +% October 1986. +\if 1\ncolumns + \hsize 4in + \vsize 10in + \voffset -.7in + \font\titlefont=\fontname\tenbf \scaledmag3 + \font\headingfont=\fontname\tenbf \scaledmag2 + \font\headingfonttt=\fontname\tentt \scaledmag2 + \font\smallfont=\fontname\sevenrm + \font\smallsy=\fontname\sevensy + + \footline{\hss\folio} + \def\makefootline{\baselineskip10pt\hsize6.5in\line{\the\footline}} +\else + \hsize 3.2in + \vsize 7.95in + \hoffset -.75in + \voffset -.745in + \font\titlefont=cmbx10 \scaledmag2 + \font\headingfont=cmbx10 \scaledmag1 + \font\headingfonttt=cmtt10 \scaledmag1 + \font\smallfont=cmr6 + \font\smallsy=cmsy6 + \font\eightrm=cmr8 + \font\eightbf=cmbx8 + \font\eightit=cmti8 + \font\eighttt=cmtt8 + \font\eightsy=cmsy8 + \font\eightsl=cmsl8 + \font\eighti=cmmi8 + \font\eightex=cmex10 at 8pt + \textfont0=\eightrm + \textfont1=\eighti + \textfont2=\eightsy + \textfont3=\eightex + \def\rm{\fam0 \eightrm} + \def\bf{\eightbf} + \def\it{\eightit} + \def\tt{\eighttt} + \def\sl{\eightsl} + \normalbaselineskip=.8\normalbaselineskip + \normallineskip=.8\normallineskip + \normallineskiplimit=.8\normallineskiplimit + \normalbaselines\rm %make definitions take effect + + \if 2\ncolumns + \let\maxcolumn=b + \footline{\hss\rm\folio\hss} + \def\makefootline{\vskip 2in \hsize=6.86in\line{\the\footline}} + \else \if 3\ncolumns + \let\maxcolumn=c + \nopagenumbers + \else + \errhelp{You must set \columnsperpage equal to 1, 2, or 3.} + \errmessage{Illegal number of columns per page} + \fi\fi + + \intercolumnskip=.46in + \def\abc{a} + \output={% + % This next line is useful when designing the layout. + %\immediate\write16{Column \folio\abc\space starts with \firstmark} + \if \maxcolumn\abc \multicolumnformat \global\def\abc{a} + \else\if a\abc + \global\setbox\columna\columnbox \global\def\abc{b} + %% in case we never use \columnb (two-column mode) + \global\setbox\columnb\hbox to -\intercolumnskip{} + \else + \global\setbox\columnb\columnbox \global\def\abc{c}\fi\fi} + \def\multicolumnformat{\shipout\vbox{\makeheadline + \hbox{\box\columna\hskip\intercolumnskip + \box\columnb\hskip\intercolumnskip\columnbox} + \makefootline}\advancepageno} + \def\columnbox{\leftline{\pagebody}} + + \def\bye{\par\vfill\supereject + \if a\abc \else\null\vfill\eject\fi + \if a\abc \else\null\vfill\eject\fi + \end} +\fi + +% we won't be using math mode much, so redefine some of the characters +% we might want to talk about +\catcode`\^=12 +%\catcode`\_=12 +\catcode`\~=12 + +\chardef\\=`\\ +\chardef\{=`\{ +\chardef\}=`\} +\chardef\underscore=`\_ + +\hyphenation{} + +\parindent 0pt +\parskip .85ex plus .35ex minus .5ex + +\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip} + +\outer\def\newcolumn{\vfill\eject} + +\outer\def\title#1{{\titlefont\centerline{#1}}\vskip 1ex plus .5ex} + +\outer\def\section#1{\par\filbreak + \vskip .5ex minus .1ex {\headingfont #1}\mark{#1}% + \vskip .3ex minus .1ex} + +\outer\def\librarysection#1#2{\par\filbreak + \vskip .5ex minus .1ex {\headingfont #1}\quad{\headingfonttt<#2>}\mark{#1}% + \vskip .3ex minus .1ex} + + +\newdimen\keyindent + +\def\beginindentedkeys{\keyindent=1em} +\def\endindentedkeys{\keyindent=0em} +\def\begindoubleindentedkeys{\keyindent=2em} +\def\enddoubleindentedkeys{\keyindent=1em} +\endindentedkeys + +\def\paralign{\vskip\parskip\halign} + +\def\<#1>{$\langle${\rm #1}$\rangle$} + +\def\kbd#1{{\tt#1}\null} %\null so not an abbrev even if period follows + +\def\beginexample{\par\vskip1\jot +\hrule width.5\hsize +\vskip1\jot +\begingroup\parindent=2em + \obeylines\obeyspaces\parskip0pt\tt} +{\obeyspaces\global\let =\ } +\def\endexample{\endgroup} + +\def\Example{\qquad{\sl Example\/}.\enspace\ignorespaces} + +\def\key#1#2{\leavevmode\hbox to \hsize{\vtop + {\hsize=.75\hsize\rightskip=1em + \hskip\keyindent\relax#1}\kbd{#2}\hfil}} + +\newbox\metaxbox +\setbox\metaxbox\hbox{\kbd{M-x }} +\newdimen\metaxwidth +\metaxwidth=\wd\metaxbox + +\def\metax#1#2{\leavevmode\hbox to \hsize{\hbox to .75\hsize + {\hskip\keyindent\relax#1\hfil}% + \hskip -\metaxwidth minus 1fil + \kbd{#2}\hfil}} + +\def\threecol#1#2#3{\hskip\keyindent\relax#1\hfil&\kbd{#2}\quad + &\kbd{#3}\quad\cr} + +% Define Italic Names +\def\makedef#1 {% +\expandafter\edef\csname#1\endcsname{\hbox{\it#1\/}}} +\makedef array +\makedef arg +\makedef const +\makedef dim +\makedef expr +\makedef filename +\makedef fnc +\makedef format +\makedef member +\makedef name +\makedef statement +\makedef statements +\makedef string +\makedef type +\makedef value +\makedef var + +%**end of header + + +\title{Asymptote Reference Card} + +\section{Program structure/functions} +\halign{\tt#\hfil&\qquad#\hfil\cr +import "\filename"&import module\cr +import "\filename" as name&import filename as module name\cr +include "\filename"&include verbatim text from file\cr +\type\ \fnc(\type,\dots);&optional function declaration\cr +\type\ \name;&variable declaration\cr +\type\ \fnc(\type\ \arg,\dots) \{&function definition\cr +\quad\statements\cr +\quad return \value;\cr +\}\cr +} + +\section{Data types/declarations} +\key{boolean (true or false)}{bool} +\key{tri-state boolean (true, default, or false)}{bool3} +\key{integer}{int} +\key{float (double precision)}{real} +\key{ordered pair (complex number)}{pair} +\key{character string}{string} +\key{fixed piecewise cubic Bezier spline}{path} +\key{unresolved piecewise cubic Bezier spline}{guide} +\key{color, line type/width/cap, font, fill rule}{pen} +\key{label with position, alignment, pen attributes}{Label} +\key{drawing canvas}{picture} +\key{affine transform}{transform} +\key{constant (unchanging) value}{const} +\key{allocate in higher scope}{static} +\key{no value}{void} +\key{inhibit implicit argument casting}{explicit} +\key{structure}{struct} +\key{create name by data type}{typedef \type\ \name} + +\section{3D data types (import three;)} +\key{ordered triple}{triple} +\key{3D path}{path3} +\key{3D guide}{guide3} +\key{3D affine transform}{transform3} + +\section{Constants} +\key{exponential form}{6.02e23} +\key{\TeX\ string constant}{"abc\dots de"} +\key{\TeX\ strings: special characters}{\\\\, \\"} +\key{C strings: constant}{'abc\dots de'} +\key{C strings: special characters}{\\\\, \\" \\' \\?} +\key{C strings: newline, cr, tab, backspace}{\\n \\r \\t \\b} +\key{C strings: octal, hexadecimal bytes}{\\0-\\377 \\x0-\\xFF} + +\section{Operators} +\key{arithmetic operations}{+ - * /} +\key{modulus (remainder)}{\%} +\key{comparisons}{== != > >= < <=} +\key{not}{!} +\key{and or (conditional evaluation of RHS)}{\&\& ||} +\key{and or xor}{\& | ^} +\key{cast expression to type}{(\type) \expr} +\key{increment decrement prefix operators}{++ --} +\key{assignment operators}{+= -= *= /= \%=} +\key{conditional expression}{\expr$_1$\ {?}\ \expr$_2$\ {:}\ \expr$_3$} +\key{structure member operator}{\name.\member} +\key{expression evaluation separator}{,} + +\section{Flow control} +\key{statement terminator}{;} +\key{block delimeters}{\{\quad\}} +\key{comment delimeters}{/*\quad*/} +\key{comment to end of line delimiter}{//} +\key{exit from \kbd{while}/\kbd{do}/\kbd{for}}{break;} +\key{next iteration of \kbd{while}/\kbd{do}/\kbd{for}}{continue;} +\key{return value from function}{return \expr;} +\key{terminate execution}{exit();} +\key{abort execution with error message}{abort(string);} +\metax{{\bf Flow constructions} ({\tt if/while/for/do})\hidewidth}{} +\beginexample +if(\expr)\ \statement +else if(\expr)\ \statement +else \statement +\endexample +\beginexample +while(\expr) +\quad\statement +\endexample +\beginexample +for(\expr$_1$; \expr$_2$; \expr$_3$) +\quad\statement +\endexample +\beginexample +for(\type var : \array) +\quad\statement +\endexample +\beginexample +do \statement +\quad while(\expr); +\endexample + +\section{Arrays} +\metax{array}{\type[]\ \name} +\metax{array element i}{\name[i]} +\metax{anonymous array}{new \type[\dim]} +\metax{array containing n deep copies of x}{array(n,x)} +\metax{length}{\name.length} +\metax{cyclic flag}{\name.cyclic} +\metax{pop element {\tt x}}{\name.pop()} +\metax{push element {\tt x}}{\name.push(x)} +\metax{append array {\tt a}}{\name.append(a)} +\metax{insert rest arguments at index {\tt i}}{\name.insert(i,\dots)} +\metax{delete element at index {\tt i}}{\name.delete(i)} +\metax{delete elements with indices in [{\tt i},{\tt j}]}{\name.delete(i,j)} +\metax{delete all elements}{\name.delete()} +\metax{test whether element n is initialized}{\name.initialized(n)} +\metax{array of indices of initialized elements}{\name.keys} +\metax{complement of int array in {\tt \{0,\dots,n-1\}}}{complement(a,n)} +\metax{deep copy of array {\tt a}}{copy(a)} +\metax{array {\tt \{0,1,\dots,n-1\}}}{sequence(n)} +\metax{array {\tt \{n,n+1,\dots,m\}}}{sequence(n,m)} +\metax{array {\tt \{n-1,n-2,\dots,0\}}}{reverse(n)} +\metax{array {\tt \{f(0),f(1),\dots,f(n-1)\}}}{sequence(f,n)} +\metax{array obtained by applying {\tt f} to array {\tt a}}{map(f,a)} +\metax{uniform partition of [{\tt a},{\tt b}] into n intervals}{uniform(a,b,n)} +\metax{concat specified 1D arrays}{concat(a,b,\dots)} +\metax{return sorted array}{sort(a)} +\metax{return array sorted using ordering {\tt less}}{sort(a,{\tt less})} +\metax{search sorted array {\tt a} for key}{search(a,key)} +\metax{index of first true value of bool array {\tt a}}{find(a)} +\metax{index of nth true value of bool array {\tt a}}{find(a,n)} + +\section{Initialization} +\key{initialize variable}{\type\ \name=\value;} +\key{initialize array}{\type[]\ \name=\{\dots\};} + +\section{path connectors} +\key{straight segment}{--} +\key{Bezi\'er segment with implicit control points}{..} +\key{Bezi\'er segment with explicit control points}{..controls c0 and c1..} +\key{concatenate}{\&} +\key{lift pen}{^^} +\key{..tension atleast 1..}{::} +\key{..tension atleast infinity..}{---} + +\section{Labels} +\key{implicit cast of string {\tt s} to Label}{s} +\key{Label {\tt s} with relative position and alignment}{Label(s,real,pair)} +\key{Label {\tt s} with absolute position and alignment}{Label(s,pair,pair)} +\key{Label {\tt s} with specified pen}{Label(s,pen)} + +\section{draw commands} +\key{draw path with current pen}{draw(path)} +\key{draw path with pen}{draw(path,pen)} +\key{draw labeled path}{draw(Label,path)} +\key{draw arrow with pen}{draw(path,pen,Arrow)} +\key{draw path on picture}{draw(picture,path)} + +\section{fill commands} +\key{fill path with current pen}{fill(path)} +\key{fill path with pen}{fill(path,pen)} +\key{fill path on picture}{fill(picture,path)} + +\section{label commands} +\key{label a pair with optional alignment z}{label(Label,pair,{\tt z})} +\key{label a path with optional alignment z}{label(Label,path,{\tt z})} +\key{add label to picture}{label(picture,Label)} + +\section{clip commands} +\key{clip to path}{clip(path)} +\key{clip to path with fill rule}{clip(path,pen)} +\key{clip picture to path}{clip(picture,path)} + +\section{pens} +\key{Grayscale pen from value in [0,1]}{gray(g)} +\key{RGB pen from values in [0,1]}{rgb(r,g,b)} +\key{CMYK pen from values in [0,1]}{cmyk(r,g,b)} +\key{RGB pen from heximdecimal string]}{rgb(string)} +\key{heximdecimal string from rgb pen]}{hex(pen)} +\key{hsv pen from values in [0,1]}{hsv(h,s,v)} +\key{invisible pen}{invisible} +\key{default pen}{defaultpen} +\key{current pen}{currentpen} +\key{solid pen}{solid} +\key{dotted pen}{dotted} +\key{wide dotted current pen}{Dotted} +\key{wide dotted pen}{Dotted(pen)} +\key{dashed pen}{dashed} +\key{long dashed pen}{longdashed} +\key{dash dotted pen}{dashdotted} +\key{long dash dotted pen}{longdashdotted} +\key{PostScript butt line cap}{squarecap} +\key{PostScript round line cap}{roundcap} +\key{PostScript projecting square line cap}{extendcap} +\key{miter join}{miterjoin} +\key{round join}{roundjoin} +\key{bevel join}{beveljoin} +\key{pen with miter limit}{miterlimit(real)} +\key{zero-winding fill rule}{zerowinding} +\key{even-odd fill rule}{evenodd} +\key{align to character bounding box (default)}{nobasealign} +\key{align to \TeX\ baseline}{basealign} +\key{pen with font size (pt)}{fontsize(real)} +\key{LaTeX pen from encoding,family,series,shape}{font(strings)} +\key{\TeX\ pen}{font(string)} +\key{scaled \TeX\ pen}{font(string,real)} +\key{PostScript font from strings}{Courier(series,shape)} +\key{pen with opacity in [0,1]}{opacity(real)} +\key{construct pen nib from polygonal path}{makepen(path)} +\key{pen mixing operator}{+} + +\section{path operations} +\key{number of segments in path {\tt p}}{length(p)} +\key{number of nodes in path {\tt p}}{size(p)} +\key{is path {\tt p} cyclic?}{cyclic(p)} +\key{is segment {\tt i} of path {\tt p} straight?}{straight(p,i)} +\key{is path {\tt p} straight?}{piecewisestraight(p)} +\key{coordinates of path {\tt p} at time {\tt t}}{point(p,t)} +\key{direction of path {\tt p} at time {\tt t}}{dir(p,t)} +\key{direction of path {\tt p} at {\tt length(p)}}{dir(p)} +\key{unit(dir(p)+dir(q))}{dir(p,q)} +\key{acceleration of path {\tt p} at time {\tt t}}{accel(p,t)} +\key{radius of curvature of path {\tt p} at time {\tt t}}{radius(p,t)} +\key{precontrol point of path {\tt p} at time {\tt t}}{precontrol(p,t)} +\key{postcontrol point of path {\tt p} at time {\tt t}}{postcontrol(p,t)} +\key{arclength of path {\tt p}}{arclength(p)} +\key{time at which {\tt arclength(p)=L}}{arctime(p,L)} +\key{point on path {\tt p} at arclength {\tt L}}{arcpoint(p,L)} +\key{first value {\tt t} at which {\tt dir(p,t)=z}}{dir(p,z)} +\key{time {\tt t} at relative fraction {\tt l} of {\tt arclength(p)}}{reltime(p,l)} +\key{point at relative fraction {\tt l} of {\tt arclength(p)}}{relpoint(p,l)} +\key{point midway along arclength of {\tt p}}{midpoint(p)} +\key{path running backwards along {\tt p}}{reverse(p)} +\key{subpath of {\tt p} between times {\tt a} and {\tt b}}{subpath(p,a,b)} +\key{times for one intersection of paths {\tt p} and {\tt q}}{intersect(p,q)} +\key{times at which {\tt p} reaches minimal extents}{mintimes(p)} +\key{times at which {\tt p} reaches maximal extents}{maxtimes(p)} +\key{intersection times of paths {\tt p} and {\tt q}}{intersections(p,q)} +\key{intersection times of paths {\tt p} and {\tt a--b}}{intersections(p,a,b)} +\key{intersection times of path {\tt p} crossing $x=${\tt x}}{times(p,x)} +\key{intersection times of path {\tt p} crossing $y=${\tt z.y}}{times(p,z)} +\key{intersection point of paths {\tt p} and {\tt q}}{intersectionpoint(p,q)} +\key{intersection points of {\tt p} and {\tt q}}{intersectionpoints(p,q)} +\key{intersection of extension of {\tt P--Q} and {\tt p--q}}{extension(P,Q,p,q)} +\key{lower left point of bounding box of path {\tt p}}{min(p)} +\key{upper right point of bounding box of path {\tt p}}{max(p)} +\key{subpaths of {\tt p} split by $n$th cut of {\tt knife}}{cut(p,knife,n)} +\key{winding number of path {\tt p} about pair {\tt z}}{windingnumber(p,z)} +\key{pair {\tt z} lies within path {\tt p}?}{interior(p,z)} +\key{pair {\tt z} lies within or on path {\tt p}?}{inside(p,z)} +\key{path surrounding region bounded by paths}{buildcycle(\dots)} +\key{path filled by \tt{draw(g,p)}}{strokepath(g,p)} +\key{unit square with lower-left vertex at origin}{unitsquare} +\key{unit circle centered at origin}{unitcircle} +\key{circle of radius {\tt r} about {\tt c}}{circle(c,r)} +\key{arc of radius {\tt r} about {\tt c} from angle {\tt a} to {\tt b}}{arc(c,r,a,b)} +\key{unit {\tt n}-sided polygon}{polygon(n)} +\key{unit {\tt n}-point cyclic cross}{cross(n)} + +\section{pictures} +\key{add picture {\tt pic} to currentpicture}{add(pic)} +\key{add picture {\tt pic} about pair {\tt z}}{add(pic,z)} + +\section{affine transforms} +\key{identity transform}{identity()} +\key{shift by values}{shift(real,real)} +\key{shift by pair}{shift(pair)} +\key{scale by {\tt x} in the $x$ direction}{xscale(x)} +\key{scale by {\tt y} in the $y$ direction}{yscale(y)} +\key{scale by {\tt x} in both directions}{scale(x)} +\key{scale by real values {\tt x} and {\tt y}}{scale(x,y)} +\key{map $(x,y) \rightarrow (x+${\tt s}$y,y)$}{slant(s)} +\key{rotate by real {\tt angle} in degrees about pair {\tt z}}{rotate(angle,z=(0,0))} +\key{reflect about line from {\tt P--Q}}{reflect(P,Q)} + +\section{string operations} +\key{concatenate operator}{+} +\key{string length}{length(string)} +\key{position $\ge$ {\tt pos} of first occurence of {\tt t} in {\tt s}}{find({\tt s},{\tt t},pos=0)} +\key{position $\le$ {\tt pos} of last occurence of {\tt t} in {\tt s}}{rfind({\tt s},{\tt t},pos=-1)} +\key{string with {\tt t} inserted in {\tt s} at {\tt pos}}{insert({\tt s},{\tt pos},{\tt t})} +\key{string {\tt s} with {\tt n} characters at {\tt pos} erased}{erase({\tt s},{\tt pos},{\tt n})} +\key{substring of string {\tt s} of length {\tt n} at {\tt pos}}{substr({\tt s},{\tt pos},{\tt n})} +\key{string {\tt s} reversed}{reverse({\tt s})} +\key{string {\tt s} with {\tt before} changed to {\tt after}}{replace({\tt s},{\tt before},{\tt after})} +\key{string {\tt s} translated via {\tt \{\{before,after\},\dots\}}}{replace({\tt +s},string [][] table)} +\key{format {\tt x} using C-style format string {\tt s} }{format({\tt s},x)} +\key{casts hexidecimal string to an integer}{hex(s)} +\key{casts {\tt x} to string using precision {\tt digits}}{string(x,digits=realDigits)} +\key{current time formatted by {\tt format}}{time(format="\%a \%b \%d \%T \%Z \%Y")} +\key{time in seconds of string {\tt t} using {\tt format}}{seconds(t,format)} +\key{string corresponding to {\tt seconds} using {\tt format}}{time(seconds,format)} +\key{split {\tt s} into strings separated by {\tt delimiter}}{split(s,delimiter="")} + +%%%%%%%%%%%%%%%%%%%%%%%%%% END LIBRARIES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This goes at the bottom of the last page (column 6) +%\copyrightnotice +% + +\bye + +% Local variables: +% compile-command: "tex AsyRefCard" +% End: + + + + diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf Binary files differindex 03e6987937e..914215456fb 100644 --- a/Build/source/utils/asymptote/doc/asymptote.pdf +++ b/Build/source/utils/asymptote/doc/asymptote.pdf diff --git a/Build/source/utils/asymptote/doc/asymptote.sty b/Build/source/utils/asymptote/doc/asymptote.sty index 6518baba61f..4433f6d607e 100644 --- a/Build/source/utils/asymptote/doc/asymptote.sty +++ b/Build/source/utils/asymptote/doc/asymptote.sty @@ -17,7 +17,7 @@ %% Licence: GPL2+ %% \ProvidesPackage{asymptote} - [2011/05/15 v1.24 Asymptote style file for LaTeX] + [2011/11/29 v1.26 Asymptote style file for LaTeX] \def\Asymptote{{\tt Asymptote}} \InputIfFileExists{\jobname.pre}{}{} \newbox\ASYbox @@ -58,12 +58,12 @@ \ENDCATCHFILEMARKER \noexpand }% - \long\def\@tempa##1\ENDCATCHFILEMARKER{% + \long\def\@tempa####1\ENDCATCHFILEMARKER{% \endgroup - \def#1{##1}% + \def##1{####1}% }% - #3% - \expandafter\@tempa\@@input #2\relax + ##3% + \expandafter\@tempa\@@input ##2\relax } } \newif\if@asy@attachfile@loaded @@ -252,7 +252,6 @@ \immediate\write\AsyStream{size(\ASYwidth,\ASYheight,\asy@expand@keepAspect);}% \fi \fi - \edef\ASYviewportwidth{\ASYviewportwidth}% locally "freeze" viewportwidth \ifx\ASYviewportwidth\@empty \ifx\ASYviewportheight\@empty % write nothing! @@ -329,25 +328,25 @@ \immediate\write\AsyPreStream{% \noexpand\InputIfFileExists{% \ASYprefix\noexpand\jobname-\the\c@asy.pre}{}{}% - } + }% \asy@write@graphic@header \IfFileExists{#2.asy}{% \CatchFileDef\@tempa{#2.asy}{% \let\do\@makeother \dospecials \endlinechar=10\relax - } - }{ + }% + }{% \IfFileExists{#2}{% \CatchFileDef\@tempa{#2}{% \let\do\@makeother \dospecials \endlinechar=10\relax - } - }{ + }% + }{% \PackageWarning{asymptote}{file #2 not found}% - } - } + }% + }% \immediate\write\AsyStream{\unexpanded\expandafter{\@tempa}}% \asy@finalise@stream \asy@input@graphic @@ -356,7 +355,7 @@ \newcommand{\ASYanimategraphics}[5][]{% \IfFileExists{_#3.pdf}{% \animategraphics[{#1}]{#2}{_#3}{#4}{#5}% - }{} + }{}% } \newcommand\asysetup[1]{\setkeys{ASYkeys}{#1}} \define@key{ASYkeys}{dir}{% @@ -375,10 +374,7 @@ {\ASYkeepAspecttrue} {\ASYkeepAspectfalse}% } -\def\ASYviewportwidth{\ASYdefaultviewportwidth} -\def\ASYdefaultviewportwidth{% - \ifASYattach \@empty \else \the\linewidth \fi -} +\def\ASYviewportwidth{} \define@key{ASYkeys}{viewportwidth}{% \edef\ASYviewportwidth{\the\dimexpr#1\relax}% } diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi index 3174459ac55..8f87a2eae0e 100644 --- a/Build/source/utils/asymptote/doc/asymptote.texi +++ b/Build/source/utils/asymptote/doc/asymptote.texi @@ -255,6 +255,12 @@ Links to many external resources, including an excellent user-written @quotation @url{http://asymptote.sourceforge.net/links.html}. @end quotation +@cindex reference +@cindex quick reference +A quick reference card for @code{Asymptote} is available at +@quotation +@url{http://asymptote.sourceforge.net/asyRefCard.pdf}. +@end quotation @node Installation @chapter Installation @@ -549,7 +555,8 @@ The current directory; @item @cindex @code{dir} A list of one or more directories specified by the configuration -variable @code{dir} (separated by @code{:} under UNIX and +variable @code{dir} or environment variable @code{ASYMPTOTE_DIR} +(separated by @code{:} under UNIX and @code{;} under @code{MSDOS}); @item @cindex @code{.asy} @@ -577,7 +584,7 @@ cd asymptote-x.xx @end verbatim By default the system version of the Boehm garbage collector will be used; if it is old we recommend first putting -@url{http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz} +@url{http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2b.tar.gz} in the @code{Asymptote} source directory. @cindex @code{freeglut} @@ -587,7 +594,7 @@ in the @code{Asymptote} source directory. @anchor{multisampling} @noindent If your graphics card supports multisampling, we recommend using version -@code{2.6.0} (or later) of @code{freeglut} to support antialiasing in +@code{2.6.0} of @code{freeglut} to support antialiasing in @code{Asymptote}'s adaptive @code{OpenGL} 3D renderer (@code{MacOS X} users can skip this step since @code{Asymptote} is configured to use the native glut library on that platform). Download @@ -1393,7 +1400,7 @@ picture clipping, see the first example in @ref{LaTeX usage}. @section label @verbatim void label(picture pic=currentpicture, Label L, pair position, - align align=NoAlign, pen p=nullpen, filltype filltype=NoFill) + align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) @end verbatim Draw Label @code{L} on picture @code{pic} using pen @code{p}. If @@ -1405,8 +1412,6 @@ the @code{PostScript} offset @code{align*labelmargin(p)}. The constant @code{Align} can be used to align the bottom-left corner of the label at @code{position}. @cindex @code{nullpen} -If @code{p} is @code{nullpen}, the pen specified within the -Label, which defaults to @code{currentpen}, will be used. @cindex @code{Label} @anchor{Label} The Label @code{L} can either be a string or the structure obtained by calling @@ -1427,6 +1432,7 @@ For example, @code{rotate(45)*xscale(2)*L} first scales @code{L} in the @math{x} direction and then rotates it counterclockwise by 45 degrees. The final position of a Label can also be shifted by a @code{PostScript} coordinate translation: @code{shift(10,0)*L}. +An explicit pen specified within the Label overrides other pen arguments. The @code{embed} argument determines how the Label should transform with the embedding picture: @table @code @@ -1455,7 +1461,7 @@ shift, rotate, slant, reflect, and scale with embedding picture. To add a label to a path, use @verbatim void label(picture pic=currentpicture, Label L, path g, align align=NoAlign, - pen p=nullpen, filltype filltype=NoFill); + pen p=currentpen, filltype filltype=NoFill); @end verbatim @cindex @code{Relative} By default the label will be positioned at the midpoint of the path. @@ -1794,12 +1800,18 @@ maximum value is @code{intMax}. @cindex @code{realMax} @cindex @code{realEpsilon} @cindex @code{realDigits} +@cindex @code{mask} +@cindex @code{inf} +@cindex @code{isnan} a real number; this should be set to the highest-precision native floating-point type on the architecture. The implicit initializer for reals is @code{0.0}. Real numbers have precision @code{realEpsilon}, with @code{realDigits} significant digits. The smallest positive real number is @code{realMin} and the largest -positive real number is @code{realMax}. +positive real number is @code{realMax}. +The variable @code{inf} and function @code{bool isnan(real x)} +are useful when floating-point exceptions are masked with +the @code{-mask} command-line option (the default in interactive mode). @item pair @cindex @code{pair} @@ -2070,24 +2082,30 @@ delimited by @code{delimiter} (an empty delimiter signifies a space, but with duplicate delimiters discarded); @anchor{format} -@item string format(string s, int n) +@item string format(string s, int n, string locale="") @cindex @code{format} returns a string containing @code{n} formatted according to the C-style -format string @code{s} using the current locale; +format string @code{s} using locale @code{locale} (or the current locale if an +empty string is specified); -@item string format(string s=defaultformat, real x, string locale="") +@item string format(string s=defaultformat, string s=defaultseparator, real x, string locale="") returns a string containing @code{x} formatted according to the C-style format string @code{s} using locale @code{locale} (or the current locale if an empty string is specified), following the behaviour of the C function @code{fprintf}), except that only one data field is allowed, trailing zeros are removed by default (unless @code{#} is specified), and (if the format string specifies math mode) @TeX{} is used to typeset -scientific notation; +scientific notation using the @code{defaultseparator="\!\times\!";}; @cindex @code{hex} @cindex @code{hexidecimal} @item int hex(string s); -casts a hexidecimal string @code{s} to an integer. +casts a hexidecimal string @code{s} to an integer; + +@cindex @code{ascii} +@cindex @code{ascii} +@item int ascii(string s); +returns the ASCII code for the first character of string @code{s}; @cindex @code{string} @item string string(real x, int digits=realDigits) @@ -2096,7 +2114,7 @@ casts @code{x} to a string using precision @code{digits} and the C locale; @cindex @code{locale} @item string locale(string s="") sets the locale to the given string, if nonempty, and returns the -current locale. +current locale; @item string time(string format="%a %b %d %T %Z %Y") @cindex @code{time} @@ -2144,6 +2162,17 @@ locale. For example, to return the date corresponding to 24 hours ago: time(seconds()-24*60*60); @end verbatim +@cindex @code{system} +@item int system(string s) +@item int system(string[] s) +if the setting @code{safe} is false, call the arbitrary system command @code{s}; + +@cindex @code{asy} +@item void asy(string format, bool overwrite=false ... string[] s) +conditionally process each file name in array @code{s} in a new environment, +using format @code{format}, overwriting the output file only if +@code{overwrite} is true; + @cindex @code{abort} @item void abort(string s="") aborts execution (with a non-zero return code in batch mode); if string @@ -2315,8 +2344,8 @@ cubic spline parameter @code{t-floor(t)} (@pxref{Bezier curves}). @item pair dir(path p) returns dir(p,length(p)). -@item pair dir(path p, path g) -returns unit(dir(p)+dir(g)). +@item pair dir(path p, path q) +returns unit(dir(p)+dir(q)). @cindex @code{accel} @item pair accel(path p, int t, int sign=0); @@ -2352,13 +2381,16 @@ returns the effective postcontrol point of @code{p} at parameter @code{t}. returns the length (in user coordinates) of the piecewise linear or cubic curve that path @code{p} represents. -@anchor{arctime} @cindex @code{arctime} @item real arctime(path p, real L); returns the path "time", a real number between 0 and the length of the path in the sense of @code{point(path p, real t)}, at which the cumulative arclength (measured from the beginning of the path) equals @code{L}. +@cindex @code{arcpoint} +@item real arcpoint(path p, real L); +returns @code{point(p,arctime(p,L))}. + @cindex @code{dirtime} @item real dirtime(path p, pair z); returns the first "time", a real number between 0 and the length of @@ -2805,8 +2837,8 @@ pen dashed=linetype(new real[] {8,8}); pen longdashed=linetype(new real[] {24,8}); pen dashdotted=linetype(new real[] {8,8,0,8}); pen longdashdotted=linetype(new real[] {24,8,0,8}); -pen Dotted=dotted+1.0; -pen Dotted(pen p=currentpen) {return dotted+2*linewidth(p);} +pen Dotted(pen p=currentpen) {return linetype(new real[] {0,3})+2*linewidth(p);} +pen Dotted=Dotted(); @end verbatim @sp 1 @center @image{linetype} @@ -2829,11 +2861,11 @@ The line type of a pen can be determined with the functions @code{pen linewidth(real)}. The default line width is 0.5 bp; this value may be changed with @code{defaultpen(pen)}. The line width of a pen is returned by @code{real linewidth(pen p=currentpen)}. -For convenience, in the module @code{plain} we define +For convenience, in the module @code{plain_pens} we define @verbatim -static void defaultpen(real w) {defaultpen(linewidth(w));} -static pen operator +(pen p, real w) {return p+linewidth(w);} -static pen operator +(real w, pen p) {return linewidth(w)+p;} +void defaultpen(real w) {defaultpen(linewidth(w));} +pen operator +(pen p, real w) {return p+linewidth(w);} +pen operator +(real w, pen p) {return linewidth(w)+p;} @end verbatim so that one may set the line width like this: @verbatim @@ -3622,8 +3654,11 @@ that can be used for importing @code{LaTeX} packages. value) files and portable @acronym{XDR} (External Data Representation) binary files. +@cindex @code{input} An input file must first be opened with -@code{input(string name, bool check=true, string comment="#")}; +@verbatim +input(string name="", bool check=true, string comment="#", string mode=""); +@end verbatim reading is then done by assignment: @cindex open @cindex @code{input} @@ -3665,7 +3700,7 @@ comment character as an ordinary character) and return it as a string. @cindex append A file named @code{name} can be open for output with @verbatim -file output(string name, bool update=false); +file output(string name="", bool update=false, string comment="#", string mode=""); @end verbatim @noindent If @code{update=false}, any existing data in the file will be erased @@ -3727,23 +3762,21 @@ write(fout,"List: ",1,2,3); // Writes "List: 1 2 3" @noindent @cindex binary format -@cindex @code{xinput} -@cindex @code{xoutput} -@cindex @code{binput} -@cindex @code{boutput} @cindex single precision @cindex double precision @cindex @code{singlereal} @cindex @code{singleint} @cindex @code{signedint} -A file may also be opened with @code{xinput} or @code{xoutput}, instead of -@code{input} or @code{output}, to read or write +@cindex @code{mode} +@cindex @code{binary} +@cindex @code{xdr} +A file may be opened with @code{mode="xdr"}, to read or write double precision (64-bit) reals and single precision (32-bit) integers in Sun Microsystem's @acronym{XDR} (External Data Representation) portable binary format (available on all @code{UNIX} platforms). -Alternatively, a file may also be opened with @code{binput} or -@code{boutput} to read or write double precision reals and single +Alternatively, a file may also be opened with @code{mode="binary"} +to read or write double precision reals and single precision integers in the native (nonportable) machine binary format. The virtual member functions @code{file singlereal(bool b=true)} and @code{file singleint(bool b=true)} @@ -3870,10 +3903,6 @@ int animate(string args="", string file="", string format=""); call the @code{ImageMagick} commands @code{convert} and @code{animate}, respectively, with the arguments @code{args} and the file name constructed from the strings @code{file} and @code{format}. -@cindex @code{system} -If the setting @code{safe} is false, then the functions -@code{int system(string s)} and @code{int system(string[] s)} can be -used to call the arbitrary system command @code{s}. @node Variable initializers @section Variable initializers @@ -4316,7 +4345,7 @@ not @cindex @code{?} @cindex conditional @verbatim -bool positive=(pi >= 0) ? true : false; +bool positive=(pi > 0) ? true : false; @end verbatim @cindex @code{interp} @@ -4919,6 +4948,7 @@ also defined. @cindex @code{F} @cindex @code{E} @cindex @code{P} +@cindex @code{sndncn} @cindex @code{Ei} @cindex @code{Si} @cindex @code{Ci} @@ -4936,6 +4966,7 @@ defines the airy functions @code{Ai(real)}, @code{J(real, real)}, @code{Y(real, real)}, @code{I(real, real)}, @code{K(real, real)}, @code{zero_J(real, int)}, the elliptic functions @code{F(real, real)}, @code{E(real, real)}, and @code{P(real, real)}, +the Jacobi elliptic functions @code{real[] sndncn(real,real)}, the exponential/trigonometric integrals @code{Ei}, @code{Si}, and @code{Ci}, the Legendre polynomials @code{Pl(int, real)}, and the Riemann zeta function @code{zeta(real)}. For example, to compute the sine integral @@ -5179,19 +5210,11 @@ searches an array @code{a} sorted in ascending order such that element @cindex @code{copy} @item T[] copy(T[] a) -returns a copy of the array @code{a}; - -@cindex @code{copy} -@item T[][] copy(T[][] a) -returns a copy of the array @code{a}; - -@cindex @code{copy} -@item T[][][] copy(T[][][] a) -returns a copy of the array @code{a}; +returns a deep copy of the array @code{a}; @cindex @code{concat} @item T[] concat(... T[][] a) -returns a new array formed by concatenating the arrays given as arguments; +returns a new array formed by concatenating the given one-dimensional arrays given as arguments; @cindex @code{alias} @item bool alias(T[] a, T[] b) @@ -5817,7 +5840,8 @@ code s=quote { eval(s,true); // Outputs 1 @end verbatim -To include the contents of a file @code{graph} verbatim (as if the +@cindex @code{include} +To include the contents of an existing file @code{graph} verbatim (as if the contents of the file were inserted at that point), use one of the forms: @verbatim include graph; @@ -5978,6 +6002,7 @@ and enclose your @code{Asymptote} code within a @code{\begin@{asy@}...\end@{asy@}} environment. As with the @code{LaTeX} @code{comment} environment, the @code{\end@{asy@}} command must appear on a line by itself, with no trailing commands/comments. +A blank line is not allowed after @code{\begin@{asy@}}. The sample @code{LaTeX} file below, named @code{latexusage.tex}, can be run as follows: @@ -6006,8 +6031,8 @@ An even better method for processing a @code{LaTeX} file with embedded @url{http://www.ctan.org/tex-archive/support/latexmk/} @end quotation @noindent -after putting the rules -@verbatiminclude latexmkrc +after putting the contents of +@url{http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc} @noindent in a file @code{latexmkrc} in the same directory. The command @verbatim @@ -6017,6 +6042,14 @@ latexmk -pdf latexusage will then call @code{Asymptote} automatically, recompiling only the figures that have changed. Since each figure is compiled in a separate system process, this method also tends to use less memory. +To store the figures in a separate directory named @code{asy}, one can define +@verbatim +\def\asydir{asy} +@end verbatim +in @code{latexusage.tex} and put the contents of +@url{http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc_asydir} +in a file @code{latexmkrc} in the same directory. +@noindent External @code{Asymptote} code in @code{filename.asy} should be included with @cindex @code{asyinclude} @verbatim @@ -6040,9 +6073,8 @@ environments. Three-dimensional @acronym{PRC} files may either be embedded within the page (the default) or attached as annotated (but printable) attachments, using the @code{attach} option and the @code{attachfile2} -(or older @code{attachfile}) @code{LaTeX} package. The default value -of @code{viewportwidth} is @code{\the\linewidth} for inline 3D figures -and @code{0} for attachments. The @code{inline} option generates +(or older @code{attachfile}) @code{LaTeX} package. +The @code{inline} option generates inline @code{LaTeX} code instead of @acronym{EPS} or @acronym{PDF} files. This makes 2D LaTeX symbols visible to the @code{\begin@{asy@}...\end@{asy@}} environment. In this mode, @@ -6384,7 +6416,7 @@ sharp corners of paths, as illustrated in the example file @code{roundpath.asy}. @cindex animation @cindex @code{ImageMagick} This module allows one to generate animations, as illustrated by the -files @code{wheel.asy}, @code{wavelet.asy}, and @code{cube.asy} in +files @code{wheel.asy}, @code{wavepacket.asy}, and @code{cube.asy} in the @code{animations} subdirectory of the examples directory. These animations use the @code{ImageMagick} @code{convert} program to merge multiple images into a @acronym{GIF} or @acronym{MPEG} @@ -7060,17 +7092,17 @@ void ytick(picture pic=currentpicture, Label L="", real y, void tick(picture pic=currentpicture, pair z, pair dir, real size=Ticksize, pen p=currentpen); void labelx(picture pic=currentpicture, Label L="", explicit pair z, - align align=S, string format="", pen p=nullpen); + align align=S, string format="", pen p=currentpen); void labelx(picture pic=currentpicture, Label L="", real x, - align align=S, string format="", pen p=nullpen); + align align=S, string format="", pen p=currentpen); void labelx(picture pic=currentpicture, Label L, string format="", explicit pen p=currentpen); void labely(picture pic=currentpicture, Label L="", explicit pair z, - align align=W, string format="", pen p=nullpen); + align align=W, string format="", pen p=currentpen); void labely(picture pic=currentpicture, Label L="", real y, - align align=W, string format="", pen p=nullpen); + align align=W, string format="", pen p=currentpen); void labely(picture pic=currentpicture, Label L, - string format="", explicit pen p=nullpen); + string format="", explicit pen p=currentpen); @end verbatim @end itemize @@ -8001,6 +8033,15 @@ This is equivalent to orthographic((x,y,z),up,target,zoom,viewportshift,showtarget,center) @end verbatim +The routine +@cindex @code{camera} +@verbatim +triple camera(real alpha, real beta); +@end verbatim +can be used to compute the camera position with the @math{x} axis below +the horizontal at angle @code{alpha}, the @math{y} axis below the horizontal +at angle @code{beta}, and the @math{z} axis up. + @cindex @code{autoadjust} @item perspective(triple camera, triple up=Z, triple target=O, @*@ @ @ @ @ @ @ @ @ @ @ @ real zoom=1, real angle=0, pair viewportshift=0, @*@ @ @ @ @ @ @ @ @ @ @ @ bool showtarget=true, bool autoadjust=true, @*@ @ @ @ @ @ @ @ @ @ @ @ bool center=autoadjust) @cindex @code{perspective} @@ -9243,12 +9284,12 @@ and @code{tk-devel} packages. Pictures are deconstructed into the @acronym{PNG} image format, which supports full alpha channel transparency. Under @code{Microsoft Windows}, -this requires @code{Python 2.6.2} and the @code{Python Imaging Library}: +this requires @code{Python 2.7.3} and the @code{Python Imaging Library}: @quotation -@url{http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi} +@url{http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi} @end quotation @quotation -@url{http://effbot.org/downloads/PIL-1.1.7.win32-py2.6.exe}. +@url{http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe}. @end quotation @noindent On @code{UNIX} systems, place @@ -9493,7 +9534,7 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: latexusage tex bbox PostScript subdirectory gcc emacs ASYDIR @c LocalWords: documentclass usepackage subpath shipout sqrt xN Mx bw AcroRd @c LocalWords: xscale xaxis yaxis BeginBar GIF postprocessing fpu de rpair xy -@c LocalWords: nomask noplain ImageMagick defaultfontsize defaultlinewidth cd +@c LocalWords: ImageMagick defaultfontsize defaultlinewidth cd asymptote Hy @c LocalWords: startup natively xasy tkinter VxN yingyang currentpicture toc @c LocalWords: MetaPost MetaFont Hammerlindl Healy texinfo autoload setq setf @c LocalWords: printindex setfilename settitle dircategory direntry titlepage @@ -9506,8 +9547,8 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: dirtime currentpen colorspaces grayscale cmyk defaultpen x cx @c LocalWords: linetype longdashed dashdotted longdashdotted linewidth y XP @c LocalWords: fontsize defaultfilename keepAspect IgnoreAspect ise flushleft -@c LocalWords: src dest XDR txt getc fout stdin stdout endl xinput eof js prc -@c LocalWords: xoutput Microsystem's eol exponentials postfix sayhi th Ubuntu +@c LocalWords: src dest XDR txt getc fout stdin stdout endl eof js prc +@c LocalWords: Microsystem's eol exponentials postfix sayhi th Ubuntu @c LocalWords: sqr intop addby libm asin acos atan sinh tanh asinh acosh cbrt @c LocalWords: atanh fabs hypot fmod ceil srand dereferenced alice pete sqrtx @c LocalWords: eval fft csv runtime nonalphanumeric labely LeftTicks NoTicks @@ -9592,7 +9633,7 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: labelpath intersectionpoints PSTricks pstextpath curvedlabel @c LocalWords: LeftJustified RightJustified tickmodifier gunzip gmake IRIX dv @c LocalWords: texcommand RET SITEDIR filegraph pathmarkers POSIX binput AOB -@c LocalWords: boutput nonportable markinterval stickframe circlebarframe tix +@c LocalWords: nonportable markinterval stickframe circlebarframe tix @c LocalWords: crossframe tildeframe markangle StickIntervalMarker gswin expm @c LocalWords: CrossIntervalMarker CircleBarIntervalMarker Ghostscript syzygy @c LocalWords: TildeIntervalMarker autoimport calculateTransform bitwise tk @@ -9637,9 +9678,14 @@ Mark Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. @c LocalWords: rotateY rotateZ wheelup zoomin wheeldown zoomout TeXLive pnorm @c LocalWords: viewportshift signedint signedness psview multiplatform nowarn @c LocalWords: singlereal singleint writeoverloaded dvisvg reddash lexorder -@c LocalWords: bigdiagonal autobillboard dvisvgm maxtiles hyperrefOptions +@c LocalWords: bigdiagonal autobillboard dvisvgm maxtiles hyperrefOptions xdr @c LocalWords: setpagesize pdfborder controlsystem OmitTickInterval SixViews @c LocalWords: OmitTickIntervals tickmodifiers autorotated SixViewsUS latexmk @c LocalWords: ThreeViewsUS ThreeViewsFR SixViewsFR ThreeViews partialsum @c LocalWords: defaultrender Vidiassov latexmkrc mktemp DOSendl DOSnewl perl -@c LocalWords: filename asyinclude latemk penfunctionimage +@c LocalWords: filename asyinclude latemk penfunctionimage Affine decrement +@c LocalWords: affine Redisplay redisplay isnan radians defaultseparator Jens +@c LocalWords: ascii piecewise arcpoint spacings tilings sndncn resizing +@c LocalWords: differentiable vectorization vectorized asydir normals quartic +@c LocalWords: wavepacket kerned parametrized specular hyperboloid Bourke's +@c LocalWords: Michail diff --git a/Build/source/utils/asymptote/doc/install-sh b/Build/source/utils/asymptote/doc/install-sh index 377bb8687ff..6781b987bdb 100755 --- a/Build/source/utils/asymptote/doc/install-sh +++ b/Build/source/utils/asymptote/doc/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -35,7 +35,7 @@ scriptversion=2011-11-20.07; # UTC # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it +# `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written @@ -156,10 +156,6 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac shift;; -T) no_target_directory=true;; @@ -190,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -202,17 +194,13 @@ if test $# -eq 0; then echo "$0: no input file specified." >&2 exit 1 fi - # It's OK to call 'install-sh -d' without argument. + # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -240,9 +228,9 @@ fi for src do - # Protect names problematic for 'test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -264,7 +252,12 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -354,7 +347,7 @@ do if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. + # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in @@ -392,7 +385,7 @@ do case $dstdir in /*) prefix='/';; - [-=\(\)!]*) prefix='./';; + -*) prefix='./';; *) prefix='';; esac @@ -410,7 +403,7 @@ do for d do - test X"$d" = X && continue + test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/Build/source/utils/asymptote/doc/latexusage.tex b/Build/source/utils/asymptote/doc/latexusage.tex index f3c858348b9..910cef5bf10 100644 --- a/Build/source/utils/asymptote/doc/latexusage.tex +++ b/Build/source/utils/asymptote/doc/latexusage.tex @@ -84,7 +84,7 @@ renderer. To support {\tt latexmk}, 3D figures should specify attachments; this requires the \verb+attach=true+ option as well as the \verb+attachfile2+ \LaTeX\ package. \begin{center} -\begin{asy}[height=4cm,inline=true,attach=false] +\begin{asy}[height=4cm,inline=true,attach=false,viewportwidth=\linewidth] currentprojection=orthographic(5,4,2); draw(unitcube,blue); label("$V-E+F=2$",(0,1,0.5),3Y,blue+fontsize(17pt)); diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info index 3bc2bee2a7f..ee7d4f40b51 100644 --- a/Build/source/utils/asymptote/doc/png/asymptote.info +++ b/Build/source/utils/asymptote/doc/png/asymptote.info @@ -1,7 +1,7 @@ This is asymptote.info, produced by makeinfo version 4.13 from ../asymptote.texi. -This file documents `Asymptote', version 2.13. +This file documents `Asymptote', version 2.16. `http://asymptote.sourceforge.net' @@ -23,7 +23,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir) Asymptote ********* -This file documents `Asymptote', version 2.13. +This file documents `Asymptote', version 2.16. `http://asymptote.sourceforge.net' @@ -237,6 +237,9 @@ output, including animations, are available at `Asymptote' tutorial can be found at `http://asymptote.sourceforge.net/links.html'. + A quick reference card for `Asymptote' is available at + + `http://asymptote.sourceforge.net/asyRefCard.pdf'. File: asymptote.info, Node: Installation, Next: Tutorial, Prev: Description, Up: Top @@ -471,7 +474,8 @@ following paths, in the order listed: 1. The current directory; 2. A list of one or more directories specified by the configuration - variable `dir' (separated by `:' under UNIX and `;' under `MSDOS'); + variable `dir' or environment variable `ASYMPTOTE_DIR' (separated + by `:' under UNIX and `;' under `MSDOS'); 3. The directory specified by the environment variable `ASYMPTOTE_HOME'; if this variable is not set, the directory @@ -495,14 +499,14 @@ tar -xf asymptote-x.xx.src.tar cd asymptote-x.xx By default the system version of the Boehm garbage collector will be used; if it is old we recommend first putting -`http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz' +`http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2b.tar.gz' in the `Asymptote' source directory. If your graphics card supports multisampling, we recommend using version -`2.6.0' (or later) of `freeglut' to support antialiasing in -`Asymptote''s adaptive `OpenGL' 3D renderer (`MacOS X' users can skip -this step since `Asymptote' is configured to use the native glut -library on that platform). Download +`2.6.0' of `freeglut' to support antialiasing in `Asymptote''s adaptive +`OpenGL' 3D renderer (`MacOS X' users can skip this step since +`Asymptote' is configured to use the native glut library on that +platform). Download `http://prdownloads.sourceforge.net/freeglut/freeglut-2.6.0.tar.gz' and type (as the root user): @@ -1108,17 +1112,15 @@ File: asymptote.info, Node: label, Prev: clip, Up: Drawing commands ========= void label(picture pic=currentpicture, Label L, pair position, - align align=NoAlign, pen p=nullpen, filltype filltype=NoFill) + align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) Draw Label `L' on picture `pic' using pen `p'. If `align' is `NoAlign', the label will be centered at user coordinate `position'; otherwise it will be aligned in the direction of `align' and displaced from `position' by the `PostScript' offset `align*labelmargin(p)'. The constant `Align' can be used to align the bottom-left corner of the -label at `position'. If `p' is `nullpen', the pen specified within the -Label, which defaults to `currentpen', will be used. The Label `L' can -either be a string or the structure obtained by calling one of the -functions +label at `position'. The Label `L' can either be a string or the +structure obtained by calling one of the functions Label Label(string s="", pair position, align align=NoAlign, pen p=nullpen, embed embed=Rotate, filltype filltype=NoFill); Label Label(string s="", align align=NoAlign, @@ -1132,8 +1134,9 @@ multiplying it on the left by an affine transform (*note Transforms::). For example, `rotate(45)*xscale(2)*L' first scales `L' in the x direction and then rotates it counterclockwise by 45 degrees. The final position of a Label can also be shifted by a `PostScript' coordinate -translation: `shift(10,0)*L'. The `embed' argument determines how the -Label should transform with the embedding picture: +translation: `shift(10,0)*L'. An explicit pen specified within the +Label overrides other pen arguments. The `embed' argument determines +how the Label should transform with the embedding picture: `Shift' only shift with embedding picture; @@ -1152,7 +1155,7 @@ Label should transform with the embedding picture: To add a label to a path, use void label(picture pic=currentpicture, Label L, path g, align align=NoAlign, - pen p=nullpen, filltype filltype=NoFill); + pen p=currentpen, filltype filltype=NoFill); By default the label will be positioned at the midpoint of the path. An alternative label position (in the sense of `point(path p, real t)') may be specified as a real value for `position' in constructing the @@ -1425,7 +1428,9 @@ user-defined types): for reals is `0.0'. Real numbers have precision `realEpsilon', with `realDigits' significant digits. The smallest positive real number is `realMin' and the largest positive real number is - `realMax'. + `realMax'. The variable `inf' and function `bool isnan(real x)' + are useful when floating-point exceptions are masked with the + `-mask' command-line option (the default in interactive mode). `pair' complex number, that is, an ordered pair of real components @@ -1653,11 +1658,12 @@ user-defined types): substrings delimited by `delimiter' (an empty delimiter signifies a space, but with duplicate delimiters discarded); - `string format(string s, int n)' + `string format(string s, int n, string locale="")' returns a string containing `n' formatted according to the - C-style format string `s' using the current locale; + C-style format string `s' using locale `locale' (or the + current locale if an empty string is specified); - `string format(string s=defaultformat, real x, string locale="")' + `string format(string s=defaultformat, string s=defaultseparator, real x, string locale="")' returns a string containing `x' formatted according to the C-style format string `s' using locale `locale' (or the current locale if an empty string is specified), following @@ -1665,10 +1671,13 @@ user-defined types): one data field is allowed, trailing zeros are removed by default (unless `#' is specified), and (if the format string specifies math mode) TeX is used to typeset scientific - notation; + notation using the `defaultseparator="\!\times\!";'; `int hex(string s);' - casts a hexidecimal string `s' to an integer. + casts a hexidecimal string `s' to an integer; + + `int ascii(string s);' + returns the ASCII code for the first character of string `s'; `string string(real x, int digits=realDigits)' casts `x' to a string using precision `digits' and the C @@ -1676,7 +1685,7 @@ user-defined types): `string locale(string s="")' sets the locale to the given string, if nonempty, and returns - the current locale. + the current locale; `string time(string format="%a %b %d %T %Z %Y")' returns the current time formatted by the ANSI C routine @@ -1709,6 +1718,17 @@ user-defined types): current locale. For example, to return the date corresponding to 24 hours ago: time(seconds()-24*60*60); + `int system(string s)' + + `int system(string[] s)' + if the setting `safe' is false, call the arbitrary system + command `s'; + + `void asy(string format, bool overwrite=false ... string[] s)' + conditionally process each file name in array `s' in a new + environment, using format `format', overwriting the output + file only if `overwrite' is true; + `void abort(string s="")' aborts execution (with a non-zero return code in batch mode); if string `s' is nonempty, a diagnostic message constructed @@ -1847,8 +1867,8 @@ File: asymptote.info, Node: Paths and guides, Next: Pens, Prev: Data types, `pair dir(path p)' returns dir(p,length(p)). - `pair dir(path p, path g)' - returns unit(dir(p)+dir(g)). + `pair dir(path p, path q)' + returns unit(dir(p)+dir(q)). `pair accel(path p, int t, int sign=0);' If `sign < 0', return the acceleration of the incoming path @@ -1887,6 +1907,9 @@ File: asymptote.info, Node: Paths and guides, Next: Pens, Prev: Data types, at which the cumulative arclength (measured from the beginning of the path) equals `L'. + `real arcpoint(path p, real L);' + returns `point(p,arctime(p,L))'. + `real dirtime(path p, pair z);' returns the first "time", a real number between 0 and the length of the path in the sense of `point(path, real)', at @@ -2250,8 +2273,8 @@ number, until it saturates with one or more color components equal to 1. pen longdashed=linetype(new real[] {24,8}); pen dashdotted=linetype(new real[] {8,8,0,8}); pen longdashdotted=linetype(new real[] {24,8,0,8}); - pen Dotted=dotted+1.0; - pen Dotted(pen p=currentpen) {return dotted+2*linewidth(p);} + pen Dotted(pen p=currentpen) {return linetype(new real[] {0,3})+2*linewidth(p);} + pen Dotted=Dotted(); @@ -2264,9 +2287,9 @@ number, until it saturates with one or more color components equal to 1. linewidth(real)'. The default line width is 0.5 bp; this value may be changed with `defaultpen(pen)'. The line width of a pen is returned by `real linewidth(pen p=currentpen)'. For convenience, - in the module `plain' we define static void defaultpen(real w) {defaultpen(linewidth(w));} - static pen operator +(pen p, real w) {return p+linewidth(w);} - static pen operator +(real w, pen p) {return linewidth(w)+p;} + in the module `plain_pens' we define void defaultpen(real w) {defaultpen(linewidth(w));} + pen operator +(pen p, real w) {return p+linewidth(w);} + pen operator +(real w, pen p) {return linewidth(w)+p;} so that one may set the line width like this: defaultpen(2); pen p=red+0.5; @@ -2862,8 +2885,9 @@ File: asymptote.info, Node: Files, Next: Variable initializers, Prev: Frames value) files and portable XDR (External Data Representation) binary files. - An input file must first be opened with `input(string name, bool -check=true, string comment="#")'; reading is then done by assignment: + An input file must first be opened with +input(string name="", bool check=true, string comment="#", string mode=""); + reading is then done by assignment: file fin=input("test.txt"); real a=fin; @@ -2888,7 +2912,7 @@ including a newline. In addition, `Asymptote' provides the function character as an ordinary character) and return it as a string. A file named `name' can be open for output with -file output(string name, bool update=false); +file output(string name="", bool update=false, string comment="#", string mode=""); If `update=false', any existing data in the file will be erased and only write operations can be used on the file. If `update=true', any existing data will be preserved, the position will be set to the @@ -2926,19 +2950,18 @@ file fout=output("test.txt"); write(fout,1); // Writes "1" write(fout); // Writes a new line write(fout,"List: ",1,2,3); // Writes "List: 1 2 3" - A file may also be opened with `xinput' or `xoutput', instead of -`input' or `output', to read or write double precision (64-bit) reals -and single precision (32-bit) integers in Sun Microsystem's XDR -(External Data Representation) portable binary format (available on all -`UNIX' platforms). Alternatively, a file may also be opened with -`binput' or `boutput' to read or write double precision reals and single -precision integers in the native (nonportable) machine binary format. -The virtual member functions `file singlereal(bool b=true)' and `file -singleint(bool b=true)' be used to change the precision of real and -integer I/O operations, respectively, for an XDR or binary file `f'. -Similarly, the function `file signedint(bool b=true)' can be used to -modify the signedness of integer reads and writes for an XDR or binary -file `f'. + A file may be opened with `mode="xdr"', to read or write double +precision (64-bit) reals and single precision (32-bit) integers in Sun +Microsystem's XDR (External Data Representation) portable binary format +(available on all `UNIX' platforms). Alternatively, a file may also be +opened with `mode="binary"' to read or write double precision reals and +single precision integers in the native (nonportable) machine binary +format. The virtual member functions `file singlereal(bool b=true)' +and `file singleint(bool b=true)' be used to change the precision of +real and integer I/O operations, respectively, for an XDR or binary +file `f'. Similarly, the function `file signedint(bool b=true)' can be +used to modify the signedness of integer reads and writes for an XDR or +binary file `f'. The virtual members `name', `mode', `singlereal', `singleint', and `signedint' may be used to query the respective parameters for a given @@ -3011,9 +3034,7 @@ int convert(string args="", string file="", string format=""); int animate(string args="", string file="", string format=""); call the `ImageMagick' commands `convert' and `animate', respectively, with the arguments `args' and the file name constructed from the -strings `file' and `format'. If the setting `safe' is false, then the -functions `int system(string s)' and `int system(string[] s)' can be -used to call the arbitrary system command `s'. +strings `file' and `format'. File: asymptote.info, Node: Variable initializers, Next: Structures, Prev: Files, Up: Programming @@ -3398,7 +3419,7 @@ the type of the result: not `Asymptote' also supports the C-like conditional syntax: -bool positive=(pi >= 0) ? true : false; +bool positive=(pi > 0) ? true : false; The function `T interp(T a, T b, real t)' returns `(1-t)*a+t*b' for nonintegral built-in arithmetic types `T'. If `a' and `b' are pens, @@ -3831,8 +3852,9 @@ module `gsl' that defines the airy functions `Ai(real)', `Bi(real)', `i_scaled(int, real)', `k_scaled(int, real)', `J(real, real)', `Y(real, real)', `I(real, real)', `K(real, real)', `zero_J(real, int)', the elliptic functions `F(real, real)', `E(real, real)', and `P(real, -real)', the exponential/trigonometric integrals `Ei', `Si', and `Ci', -the Legendre polynomials `Pl(int, real)', and the Riemann zeta function +real)', the Jacobi elliptic functions `real[] sndncn(real,real)', the +exponential/trigonometric integrals `Ei', `Si', and `Ci', the Legendre +polynomials `Pl(int, real)', and the Riemann zeta function `zeta(real)'. For example, to compute the sine integral `Si' of 1.0: import gsl; write(Si(1.0)); @@ -4035,17 +4057,11 @@ of type `T[]'. `i' precedes element `j' if `less(i,j)' is true; `T[] copy(T[] a)' - returns a copy of the array `a'; - -`T[][] copy(T[][] a)' - returns a copy of the array `a'; - -`T[][][] copy(T[][][] a)' - returns a copy of the array `a'; + returns a deep copy of the array `a'; `T[] concat(... T[][] a)' - returns a new array formed by concatenating the arrays given as - arguments; + returns a new array formed by concatenating the given + one-dimensional arrays given as arguments; `bool alias(T[] a, T[] b)' returns `true' if the arrays `a' and `b' are identical; @@ -4535,8 +4551,9 @@ code s=quote { }; eval(s,true); // Outputs 1 - To include the contents of a file `graph' verbatim (as if the -contents of the file were inserted at that point), use one of the forms: + To include the contents of an existing file `graph' verbatim (as if +the contents of the file were inserted at that point), use one of the +forms: include graph; `include "/usr/local/share/asymptote/graph.asy";' @@ -4672,7 +4689,8 @@ for each figure. Simply add the line `\usepackage{asymptote}' at the beginning of your file and enclose your `Asymptote' code within a `\begin{asy}...\end{asy}' environment. As with the `LaTeX' `comment' environment, the `\end{asy}' command must appear on a line by itself, -with no trailing commands/comments. +with no trailing commands/comments. A blank line is not allowed after +`\begin{asy}'. The sample `LaTeX' file below, named `latexusage.tex', can be run as follows: @@ -4691,18 +4709,19 @@ pdflatex latexusage `Asymptote' code is to use the `latexmk' utility from `http://www.ctan.org/tex-archive/support/latexmk/' - after putting the rules - -sub asy {return system("asy '$_[0]'");} -add_cus_dep("asy","eps",0,"asy"); -add_cus_dep("asy","pdf",0,"asy"); -add_cus_dep("asy","tex",0,"asy"); + after putting the contents of +`http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc' in a file `latexmkrc' in the same directory. The command latexmk -pdf latexusage will then call `Asymptote' automatically, recompiling only the figures that have changed. Since each figure is compiled in a separate system -process, this method also tends to use less memory. External -`Asymptote' code in `filename.asy' should be included with +process, this method also tends to use less memory. To store the +figures in a separate directory named `asy', one can define +\def\asydir{asy} + in `latexusage.tex' and put the contents of +`http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc_asydir' +in a file `latexmkrc' in the same directory. External `Asymptote' code +in `filename.asy' should be included with \asyinclude[<options>]{<filename.asy>} so that `latexmk' will recognize when the code is changed. Note that `latemk' requires `perl', available from `http://www.perl.org/'. @@ -4712,10 +4731,9 @@ process, this method also tends to use less memory. External the `asy' and `asyinclude' environments. Three-dimensional PRC files may either be embedded within the page (the default) or attached as annotated (but printable) attachments, using the `attach' option and -the `attachfile2' (or older `attachfile') `LaTeX' package. The default -value of `viewportwidth' is `\the\linewidth' for inline 3D figures and -`0' for attachments. The `inline' option generates inline `LaTeX' code -instead of EPS or PDF files. This makes 2D LaTeX symbols visible to the +the `attachfile2' (or older `attachfile') `LaTeX' package. The +`inline' option generates inline `LaTeX' code instead of EPS or PDF +files. This makes 2D LaTeX symbols visible to the `\begin{asy}...\end{asy}' environment. In this mode, Asymptote correctly aligns 2D LaTeX symbols defined outside of `\begin{asy}...\end{asy}', but treats their size as zero; an optional @@ -4817,7 +4835,7 @@ renderer. To support {\tt latexmk}, 3D figures should specify attachments; this requires the \verb+attach=true+ option as well as the \verb+attachfile2+ \LaTeX\ package. \begin{center} -\begin{asy}[height=4cm,inline=true,attach=false] +\begin{asy}[height=4cm,inline=true,attach=false,viewportwidth=\linewidth] currentprojection=orthographic(5,4,2); draw(unitcube,blue); label("$V-E+F=2$",(0,1,0.5),3Y,blue+fontsize(17pt)); @@ -5182,7 +5200,7 @@ File: asymptote.info, Node: animation, Next: embed, Prev: roundedpath, Up: B ================ This module allows one to generate animations, as illustrated by the -files `wheel.asy', `wavelet.asy', and `cube.asy' in the `animations' +files `wheel.asy', `wavepacket.asy', and `cube.asy' in the `animations' subdirectory of the examples directory. These animations use the `ImageMagick' `convert' program to merge multiple images into a GIF or MPEG movie. @@ -5734,17 +5752,17 @@ following routines: void tick(picture pic=currentpicture, pair z, pair dir, real size=Ticksize, pen p=currentpen); void labelx(picture pic=currentpicture, Label L="", explicit pair z, - align align=S, string format="", pen p=nullpen); + align align=S, string format="", pen p=currentpen); void labelx(picture pic=currentpicture, Label L="", real x, - align align=S, string format="", pen p=nullpen); + align align=S, string format="", pen p=currentpen); void labelx(picture pic=currentpicture, Label L, string format="", explicit pen p=currentpen); void labely(picture pic=currentpicture, Label L="", explicit pair z, - align align=W, string format="", pen p=nullpen); + align align=W, string format="", pen p=currentpen); void labely(picture pic=currentpicture, Label L="", real y, - align align=W, string format="", pen p=nullpen); + align align=W, string format="", pen p=currentpen); void labely(picture pic=currentpicture, Label L, - string format="", explicit pen p=nullpen); + string format="", explicit pen p=currentpen); Here are some simple examples of two-dimensional graphs: @@ -6972,6 +6990,11 @@ These projections to two dimensions are predefined: bool center=false)' This is equivalent to orthographic((x,y,z),up,target,zoom,viewportshift,showtarget,center) + The routine triple camera(real alpha, real beta); + can be used to compute the camera position with the x axis below + the horizontal at angle `alpha', the y axis below the horizontal + at angle `beta', and the z axis up. + `perspective(triple camera, triple up=Z, triple target=O, real zoom=1, real angle=0, pair viewportshift=0, bool showtarget=true, bool autoadjust=true, @@ -8241,11 +8264,11 @@ packages. Pictures are deconstructed into the PNG image format, which supports full alpha channel transparency. Under `Microsoft Windows', this -requires `Python 2.6.2' and the `Python Imaging Library': +requires `Python 2.7.3' and the `Python Imaging Library': - `http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi' + `http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi' - `http://effbot.org/downloads/PIL-1.1.7.win32-py2.6.exe'. + `http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe'. On `UNIX' systems, place `http://effbot.org/downloads/Imaging-1.1.7.tar.gz' in the `Asymptote' source directory, and type (as the root user): @@ -8475,7 +8498,7 @@ Index * -V <1>: Tutorial. (line 19) * -V: Configuring. (line 6) * ..: Tutorial. (line 127) -* .asy: Search paths. (line 13) +* .asy: Search paths. (line 14) * /: Arithmetic & logical. (line 20) * /=: Self & prefix operators. @@ -8483,7 +8506,7 @@ Index * 2D graphs: graph. (line 6) * 3D graphs: graph3. (line 6) * 3D grids: grid3. (line 6) -* 3D PostScript: three. (line 576) +* 3D PostScript: three. (line 581) * 3D rendering: Compiling from UNIX source. (line 16) * :: Arithmetic & logical. @@ -8508,11 +8531,11 @@ Index (line 6) * ^^: Tutorial. (line 134) * a4: Configuring. (line 61) -* abort: Data types. (line 322) +* abort: Data types. (line 339) * abs <1>: Mathematical functions. (line 35) -* abs: Data types. (line 60) -* accel <1>: three. (line 502) +* abs: Data types. (line 62) +* accel <1>: three. (line 507) * accel: Paths and guides. (line 115) * access: Import. (line 6) * acknowledgments: Credits. (line 6) @@ -8524,7 +8547,7 @@ Index (line 6) * add <1>: three. (line 271) * add: Frames and pictures. (line 196) -* addViews: three. (line 388) +* addViews: three. (line 393) * adjust: Pens. (line 115) * Ai: Mathematical functions. (line 48) @@ -8532,16 +8555,16 @@ Index (line 48) * Airy: Mathematical functions. (line 48) -* alias <1>: Arrays. (line 187) +* alias <1>: Arrays. (line 181) * alias: Structures. (line 52) * align: Options. (line 168) * Align: label. (line 12) -* all: Arrays. (line 335) +* all: Arrays. (line 329) * Allow: Pens. (line 327) * AND: Arithmetic & logical. (line 80) * and: Bezier curves. (line 56) -* angle: Data types. (line 68) +* angle: Data types. (line 70) * animate <1>: animation. (line 12) * animate <2>: Files. (line 154) * animate: Configuring. (line 67) @@ -8552,17 +8575,18 @@ Index * antialiasing: Compiling from UNIX source. (line 16) * append <1>: Arrays. (line 39) -* append: Files. (line 35) +* append: Files. (line 36) * arc: three. (line 283) * Arc: Paths and guides. (line 32) * arc: Paths and guides. (line 22) * ArcArrow: draw. (line 26) -* ArcArrow3: three. (line 543) +* ArcArrow3: three. (line 548) * ArcArrows: draw. (line 26) -* ArcArrows3: three. (line 543) -* arclength <1>: three. (line 502) +* ArcArrows3: three. (line 548) +* arclength <1>: three. (line 507) * arclength: Paths and guides. (line 142) -* arctime <1>: three. (line 502) +* arcpoint: Paths and guides. (line 152) +* arctime <1>: three. (line 507) * arctime: Paths and guides. (line 146) * arguments: Default arguments. (line 6) * arithmetic operators: Arithmetic & logical. @@ -8570,15 +8594,16 @@ Index * array: Arrays. (line 122) * array iteration: Programming. (line 33) * arrays: Arrays. (line 6) -* arrow: label. (line 72) +* arrow: label. (line 71) * Arrow: draw. (line 26) * arrow: Drawing commands. (line 31) * arrow keys: Tutorial. (line 37) -* Arrow3: three. (line 543) +* Arrow3: three. (line 548) * Arrows: draw. (line 26) * arrows: draw. (line 26) -* Arrows3: three. (line 543) +* Arrows3: three. (line 548) * as: Import. (line 68) +* ascii: Data types. (line 286) * aSin: Mathematical functions. (line 20) * asin: Mathematical functions. @@ -8586,12 +8611,13 @@ Index * asinh: Mathematical functions. (line 6) * Aspect: Frames and pictures. (line 54) -* assert: Data types. (line 327) +* assert: Data types. (line 344) * assignment: Programming. (line 8) -* asy: Import. (line 102) +* asy <1>: Import. (line 102) +* asy: Data types. (line 334) * asy-mode: Editing modes. (line 6) * asy.vim: Editing modes. (line 33) -* asyinclude: LaTeX usage. (line 44) +* asyinclude: LaTeX usage. (line 46) * asymptote.sty: LaTeX usage. (line 6) * asymptote.xml: Editing modes. (line 49) * ASYMPTOTE_CONFIG: Options. (line 115) @@ -8605,41 +8631,41 @@ Index (line 6) * atleast: Bezier curves. (line 56) * attach <1>: graph. (line 415) -* attach: LaTeX usage. (line 49) -* autoadjust: three. (line 354) +* attach: LaTeX usage. (line 51) +* autoadjust: three. (line 359) * autoimport: Options. (line 111) * automatic scaling: graph. (line 682) * axialshade: fill. (line 43) * axis <1>: graph3. (line 66) * axis: graph. (line 880) -* azimuth: Data types. (line 124) +* azimuth: Data types. (line 126) * babel: babel. (line 6) * background color: Frames and pictures. (line 168) -* BackView: three. (line 381) +* BackView: three. (line 386) * Bar: draw. (line 19) -* Bar3: three. (line 543) +* Bar3: three. (line 548) * Bars: draw. (line 19) -* Bars3: three. (line 543) +* Bars3: three. (line 548) * barsize: draw. (line 19) * base modules: Base modules. (line 6) * basealign: Pens. (line 168) -* baseline: label. (line 92) +* baseline: label. (line 91) * batch mode: Tutorial. (line 6) -* beep: Data types. (line 340) +* beep: Data types. (line 357) * BeginArcArrow: draw. (line 26) -* BeginArcArrow3: three. (line 543) +* BeginArcArrow3: three. (line 548) * BeginArrow: draw. (line 26) -* BeginArrow3: three. (line 543) +* BeginArrow3: three. (line 548) * BeginBar: draw. (line 19) -* BeginBar3: three. (line 543) +* BeginBar3: three. (line 548) * BeginDotMargin: draw. (line 42) -* BeginDotMargin3: three. (line 559) +* BeginDotMargin3: three. (line 564) * BeginMargin: draw. (line 42) -* BeginMargin3: three. (line 559) +* BeginMargin3: three. (line 564) * BeginPenMargin: draw. (line 42) -* BeginPenMargin2: three. (line 559) -* BeginPenMargin3: three. (line 559) -* BeginPoint: label. (line 57) +* BeginPenMargin2: three. (line 564) +* BeginPenMargin3: three. (line 564) +* BeginPoint: label. (line 56) * Bessel: Mathematical functions. (line 48) * bevel: flowchart. (line 75) @@ -8650,12 +8676,12 @@ Index (line 48) * Bi_deriv: Mathematical functions. (line 48) -* Billboard: three. (line 472) -* binary format: Files. (line 74) +* Billboard: three. (line 477) +* binary: Files. (line 75) +* binary format: Files. (line 75) * binary operators: Arithmetic & logical. (line 6) * binarytree: binarytree. (line 6) -* binput: Files. (line 74) * black stripes: three. (line 210) * Blank: draw. (line 26) * block.bottom: flowchart. (line 19) @@ -8675,10 +8701,9 @@ Index (line 6) * Bottom: graph. (line 134) * BottomTop: graph. (line 140) -* BottomView: three. (line 381) +* BottomView: three. (line 386) * bounding box: Frames and pictures. (line 168) * Bounds: graph3. (line 20) -* boutput: Files. (line 74) * box <1>: three. (line 305) * box: Frames and pictures. (line 22) * bp: Tutorial. (line 26) @@ -8687,22 +8712,23 @@ Index * brick: Pens. (line 251) * broken axis: graph. (line 783) * bug reports: Help. (line 23) -* buildcycle: Paths and guides. (line 255) +* buildcycle: Paths and guides. (line 258) * Button-1: GUI. (line 6) * Button-2: GUI. (line 6) * BWRainbow: palette. (line 15) * BWRainbow2: palette. (line 18) -* C string: Data types. (line 189) +* C string: Data types. (line 191) * CAD: CAD. (line 6) * calculateTransform: Frames and pictures. (line 107) +* camera: three. (line 354) * casts: Casts. (line 6) * cbrt: Mathematical functions. (line 6) -* cd: Files. (line 24) +* cd: Files. (line 25) * ceil: Mathematical functions. (line 26) * center: three. (line 338) -* Center: label. (line 62) +* Center: label. (line 61) * checker: Pens. (line 251) * Chinese: unicode. (line 12) * choose: Mathematical functions. @@ -8724,23 +8750,23 @@ Index * cm: Tutorial. (line 63) * cmd: Configuring. (line 34) * cmyk: Pens. (line 34) -* colatitude: Data types. (line 129) +* colatitude: Data types. (line 131) * color: Pens. (line 23) * coloredNodes: tube. (line 25) * coloredpath: tube. (line 18) * coloredSegments: tube. (line 25) * colorless: Pens. (line 54) * colors: Pens. (line 51) -* comma: Files. (line 60) -* comma-separated-value mode: Arrays. (line 368) +* comma: Files. (line 61) +* comma-separated-value mode: Arrays. (line 362) * command-line options <1>: Options. (line 6) * command-line options: Configuring. (line 83) -* comment character: Files. (line 15) +* comment character: Files. (line 16) * compass directions: Tutorial. (line 106) * Compiling from UNIX source: Compiling from UNIX source. (line 6) * complement: Arrays. (line 150) -* concat: Arrays. (line 183) +* concat: Arrays. (line 177) * conditional <1>: Arithmetic & logical. (line 73) * conditional: Programming. (line 8) @@ -8748,7 +8774,7 @@ Index * configuration file <1>: Options. (line 115) * configuration file: Configuring. (line 23) * configuring: Configuring. (line 6) -* conj: Data types. (line 57) +* conj: Data types. (line 59) * constructors: Structures. (line 91) * context: Options. (line 143) * continue <1>: Debugger. (line 31) @@ -8757,7 +8783,7 @@ Index * contour3: contour3. (line 6) * controls <1>: three. (line 6) * controls: Bezier curves. (line 45) -* controlSpecifier: Paths and guides. (line 379) +* controlSpecifier: Paths and guides. (line 382) * convert <1>: Options. (line 143) * convert <2>: animation. (line 6) * convert <3>: Files. (line 154) @@ -8775,33 +8801,33 @@ Index * crop: graph. (line 636) * cropping graphs: graph. (line 636) * cross <1>: graph. (line 484) -* cross: Data types. (line 167) +* cross: Data types. (line 169) * crossframe: markers. (line 23) * crosshatch: Pens. (line 267) -* csv: Arrays. (line 368) +* csv: Arrays. (line 362) * CTZ: Arithmetic & logical. (line 80) -* cubicroots: Arrays. (line 324) +* cubicroots: Arrays. (line 318) * curl <1>: three. (line 6) * curl: Bezier curves. (line 63) -* curlSpecifier: Paths and guides. (line 391) +* curlSpecifier: Paths and guides. (line 394) * currentpen: Pens. (line 6) -* currentprojection: three. (line 378) +* currentprojection: three. (line 383) * curve: slopefield. (line 20) * custom axis types: graph. (line 144) * custom mark routine: graph. (line 576) * custom tick locations: graph. (line 249) -* cut: Paths and guides. (line 237) +* cut: Paths and guides. (line 240) * cycle <1>: three. (line 6) * cycle: Tutorial. (line 75) -* cyclic <1>: three. (line 502) +* cyclic <1>: three. (line 507) * cyclic <2>: Arrays. (line 39) * cyclic: Paths and guides. (line 74) * Cyrillic: unicode. (line 7) * dashdotted: Pens. (line 95) * dashed: Pens. (line 95) * data types: Data types. (line 6) -* date: Data types. (line 292) +* date: Data types. (line 298) * Debian: UNIX binary distributions. (line 19) * debugger: Debugger. (line 6) @@ -8810,7 +8836,7 @@ Index * default arguments: Default arguments. (line 6) * defaultformat: graph. (line 175) * DefaultHead: draw. (line 26) -* DefaultHead3: three. (line 543) +* DefaultHead3: three. (line 548) * defaultpen: Pens. (line 46) * defaultrender: three. (line 47) * deferred drawing: simplex. (line 6) @@ -8818,35 +8844,35 @@ Index (line 17) * degrees <1>: Mathematical functions. (line 17) -* degrees: Data types. (line 73) +* degrees: Data types. (line 75) * delete <1>: Arrays. (line 39) * delete: Files. (line 149) * description: Description. (line 6) -* diagonal: Arrays. (line 309) +* diagonal: Arrays. (line 303) * diamond: flowchart. (line 57) -* dimension: Arrays. (line 373) -* dir <1>: three. (line 502) +* dimension: Arrays. (line 367) +* dir <1>: three. (line 507) * dir <2>: Paths and guides. (line 98) -* dir <3>: Data types. (line 85) +* dir <3>: Data types. (line 87) * dir: Search paths. (line 10) * direction specifier: Bezier curves. (line 6) -* directory: Files. (line 24) -* dirSpecifier: Paths and guides. (line 373) -* dirtime: Paths and guides. (line 152) +* directory: Files. (line 25) +* dirSpecifier: Paths and guides. (line 376) +* dirtime: Paths and guides. (line 155) * display: Configuring. (line 67) * do: Programming. (line 29) -* DOSendl: Files. (line 60) -* DOSnewl: Files. (line 60) -* dot <1>: Arrays. (line 265) -* dot <2>: Data types. (line 98) +* DOSendl: Files. (line 61) +* DOSnewl: Files. (line 61) +* dot <1>: Arrays. (line 259) +* dot <2>: Data types. (line 100) * dot: draw. (line 83) * DotMargin: draw. (line 42) -* DotMargin3: three. (line 559) +* DotMargin3: three. (line 564) * DotMargins: draw. (line 42) -* DotMargins3: three. (line 559) +* DotMargins3: three. (line 564) * dotted: Pens. (line 95) * double deferred drawing: three. (line 256) -* double precision: Files. (line 74) +* double precision: Files. (line 75) * Draw: Frames and pictures. (line 147) * draw: draw. (line 110) * Draw: draw. (line 26) @@ -8870,39 +8896,39 @@ Index * else: Programming. (line 8) * emacs: Editing modes. (line 6) * embed: embed. (line 6) -* Embedded: three. (line 472) +* Embedded: three. (line 477) * empty: Frames and pictures. (line 7) * EndArcArrow: draw. (line 26) -* EndArcArrow3: three. (line 543) +* EndArcArrow3: three. (line 548) * EndArrow: draw. (line 26) -* EndArrow3: three. (line 543) +* EndArrow3: three. (line 548) * EndBar: draw. (line 19) -* EndBar3: three. (line 543) +* EndBar3: three. (line 548) * EndDotMargin: draw. (line 42) -* EndDotMargin3: three. (line 559) -* endl: Files. (line 60) +* EndDotMargin3: three. (line 564) +* endl: Files. (line 61) * EndMargin: draw. (line 42) -* EndMargin3: three. (line 559) +* EndMargin3: three. (line 564) * EndPenMargin: draw. (line 42) -* EndPenMargin2: three. (line 559) -* EndPenMargin3: three. (line 559) -* EndPoint: label. (line 57) +* EndPenMargin2: three. (line 564) +* EndPenMargin3: three. (line 564) +* EndPoint: label. (line 56) * envelope: Frames and pictures. (line 22) * environment variables: Configuring. (line 87) -* eof <1>: Arrays. (line 350) +* eof <1>: Arrays. (line 344) * eof: Files. (line 92) -* eol <1>: Arrays. (line 350) +* eol <1>: Arrays. (line 344) * eol: Files. (line 92) * EPS <1>: Options. (line 143) -* EPS: label. (line 80) +* EPS: label. (line 79) * erase <1>: Frames and pictures. (line 7) -* erase <2>: Data types. (line 239) +* erase <2>: Data types. (line 241) * erase: Tutorial. (line 37) * erf: Mathematical functions. (line 6) * erfc: Mathematical functions. (line 6) -* error: Files. (line 15) +* error: Files. (line 16) * error bars: graph. (line 532) * errorbars: graph. (line 484) * eval: Import. (line 98) @@ -8910,10 +8936,10 @@ Index * evenodd: Tutorial. (line 148) * exit <1>: Debugger. (line 57) * exit <2>: Interactive mode. (line 59) -* exit: Data types. (line 331) +* exit: Data types. (line 348) * exp: Mathematical functions. (line 6) -* expi: Data types. (line 81) +* expi: Data types. (line 83) * explicit: Casts. (line 6) * explicit casts: Casts. (line 21) * expm1: Mathematical functions. @@ -8922,21 +8948,21 @@ Index (line 48) * extendcap: Pens. (line 129) * extension <1>: MetaPost. (line 10) -* extension: Paths and guides. (line 232) +* extension: Paths and guides. (line 235) * external: embed. (line 28) -* extrude: three. (line 496) +* extrude: three. (line 501) * F: Mathematical functions. (line 48) * fabs: Mathematical functions. (line 6) -* face: three. (line 584) +* face: three. (line 589) * factorial: Mathematical functions. (line 39) * Fedora: UNIX binary distributions. (line 15) * feynman: feynman. (line 6) * fft <1>: math. (line 26) -* fft: Arrays. (line 252) +* fft: Arrays. (line 246) * FFTW: Compiling from UNIX source. (line 58) * file <1>: Debugger. (line 45) @@ -8951,15 +8977,15 @@ Index * filloutside: fill. (line 27) * fillrule: Pens. (line 152) * find <1>: Arrays. (line 159) -* find: Data types. (line 224) -* firstcut: Paths and guides. (line 247) +* find: Data types. (line 226) +* firstcut: Paths and guides. (line 250) * fit: Frames and pictures. (line 103) * fit3: three. (line 269) * fixedscaling: Frames and pictures. (line 74) * floor: Mathematical functions. (line 26) * flowchart: flowchart. (line 6) -* flush: Files. (line 60) +* flush: Files. (line 61) * fmod: Mathematical functions. (line 6) * font: Pens. (line 192) @@ -8968,13 +8994,13 @@ Index * fontsize: Pens. (line 178) * for: Programming. (line 8) * format <1>: Options. (line 143) -* format: Data types. (line 267) +* format: Data types. (line 269) * forum: Help. (line 6) * frame: Frames and pictures. (line 7) * freeglut: Compiling from UNIX source. (line 16) * from: Import. (line 17) -* FrontView: three. (line 381) +* FrontView: three. (line 386) * function declarations: Functions. (line 67) * function shading: fill. (line 96) * Function shading: fill. (line 96) @@ -8987,7 +9013,7 @@ Index * Gaussrand: Mathematical functions. (line 39) * geometry: geometry. (line 6) -* getc: Files. (line 29) +* getc: Files. (line 30) * getpair: Files. (line 117) * getreal: Files. (line 117) * getstring: Files. (line 117) @@ -9001,7 +9027,7 @@ Index * gradient shading: fill. (line 32) * graph: graph. (line 6) * graph3: graph3. (line 6) -* graphic: label. (line 80) +* graphic: label. (line 79) * graphical user interface: GUI. (line 6) * gray: Pens. (line 25) * Grayscale: palette. (line 9) @@ -9018,27 +9044,27 @@ Index * GUI: GUI. (line 6) * GUI installation: GUI installation. (line 6) * GUI usage: GUI usage. (line 6) -* guide: Paths and guides. (line 300) +* guide: Paths and guides. (line 303) * guide3: three. (line 6) * hatch: Pens. (line 267) -* height: LaTeX usage. (line 49) +* height: LaTeX usage. (line 51) * help <1>: Debugger. (line 30) * help <2>: Help. (line 6) * help: Interactive mode. (line 44) * Hermite: graph. (line 37) * Hermite(splinetype splinetype: graph. (line 37) * hex <1>: Pens. (line 60) -* hex: Data types. (line 280) +* hex: Data types. (line 283) * hexidecimal <1>: Pens. (line 59) -* hexidecimal: Data types. (line 280) -* hidden surface removal: three. (line 584) +* hexidecimal: Data types. (line 283) +* hidden surface removal: three. (line 589) * histogram: Mathematical functions. (line 39) * history <1>: Interactive mode. (line 59) * history: Files. (line 142) * historylines: Interactive mode. (line 64) * HookHead: draw. (line 26) -* HookHead3: three. (line 543) +* HookHead3: three. (line 548) * Horizontal: flowchart. (line 81) * hyperrefOptions: Options. (line 130) * hypot: Mathematical functions. @@ -9048,11 +9074,11 @@ Index * i_scaled: Mathematical functions. (line 48) * iconic: three. (line 210) -* identity <1>: Arrays. (line 306) +* identity <1>: Arrays. (line 300) * identity <2>: Mathematical functions. (line 6) * identity: Transforms. (line 24) -* identity4: three. (line 432) +* identity4: three. (line 437) * if: Programming. (line 8) * IgnoreAspect: Frames and pictures. (line 58) * image: palette. (line 34) @@ -9065,47 +9091,50 @@ Index * implicit scaling: Implicit scaling. (line 6) * import: Import. (line 46) * inches: Tutorial. (line 63) -* including images: label. (line 80) +* include: Import. (line 127) +* including images: label. (line 79) * increasing: math. (line 59) +* inf: Data types. (line 33) * inheritance: Structures. (line 181) * initialized: Arrays. (line 39) * initializers: Variable initializers. (line 6) -* inline: LaTeX usage. (line 49) +* inline: LaTeX usage. (line 51) * InOutTicks: graph3. (line 34) * input <1>: Interactive mode. (line 48) -* input: Files. (line 11) +* input: Files. (line 10) * insert <1>: Arrays. (line 39) -* insert: Data types. (line 235) -* inside: Paths and guides. (line 279) +* insert: Data types. (line 237) +* inside: Paths and guides. (line 282) * inst: Debugger. (line 36) * installation: Installation. (line 6) * int: Data types. (line 28) * integer division: Arithmetic & logical. (line 6) * interactive mode: Interactive mode. (line 6) -* interior: Paths and guides. (line 275) +* interior: Paths and guides. (line 278) * international characters: unicode. (line 6) * interp: Arithmetic & logical. (line 76) * interpolate: interpolate. (line 6) -* intersect <1>: three. (line 502) +* intersect <1>: three. (line 507) * intersect <2>: math. (line 13) -* intersect: Paths and guides. (line 181) -* intersectionpoint <1>: three. (line 502) +* intersect: Paths and guides. (line 184) +* intersectionpoint <1>: three. (line 507) * intersectionpoint <2>: math. (line 17) -* intersectionpoint: Paths and guides. (line 224) -* intersectionpoints <1>: three. (line 502) -* intersectionpoints: Paths and guides. (line 228) -* intersections <1>: three. (line 502) -* intersections: Paths and guides. (line 192) +* intersectionpoint: Paths and guides. (line 227) +* intersectionpoints <1>: three. (line 507) +* intersectionpoints: Paths and guides. (line 231) +* intersections <1>: three. (line 507) +* intersections: Paths and guides. (line 195) * InTicks: graph3. (line 34) * intMax: Data types. (line 28) * intMin: Data types. (line 28) -* inverse <1>: Arrays. (line 312) +* inverse <1>: Arrays. (line 306) * inverse: Transforms. (line 16) -* invert: three. (line 422) +* invert: three. (line 427) * invisible: Pens. (line 39) +* isnan: Data types. (line 33) * J: Mathematical functions. (line 6) * Japanese: unicode. (line 12) @@ -9115,7 +9144,7 @@ Index (line 48) * Kate: Editing modes. (line 49) * KDE editor: Editing modes. (line 49) -* keepAspect <1>: LaTeX usage. (line 49) +* keepAspect <1>: LaTeX usage. (line 51) * keepAspect: Frames and pictures. (line 54) * keyboard bindings:: three. (line 169) * keys: Arrays. (line 39) @@ -9123,9 +9152,9 @@ Index * keyword-only: Named arguments. (line 37) * keywords: Named arguments. (line 6) * Korean: unicode. (line 12) -* label: three. (line 466) +* label: three. (line 471) * Label <1>: graph. (line 342) -* Label: label. (line 15) +* Label: label. (line 14) * label: clip. (line 16) * Label: draw. (line 98) * labelpath: labelpath. (line 6) @@ -9133,32 +9162,32 @@ Index * labelx: graph. (line 342) * labely: graph. (line 342) * Landscape: Frames and pictures. (line 95) -* lastcut: Paths and guides. (line 251) +* lastcut: Paths and guides. (line 254) * lasy-mode: Editing modes. (line 6) * latex: Options. (line 143) * LaTeX fonts: Pens. (line 192) * LaTeX usage: LaTeX usage. (line 6) -* latexmk: LaTeX usage. (line 29) +* latexmk: LaTeX usage. (line 30) * latin1: latin1. (line 6) -* latitude: Data types. (line 134) +* latitude: Data types. (line 136) * latticeshade: fill. (line 32) * layer: Drawing commands. (line 16) * leastsquares <1>: graph. (line 902) * leastsquares: stats. (line 6) * Left: graph. (line 284) * LeftRight: graph. (line 290) -* LeftSide: label. (line 62) +* LeftSide: label. (line 61) * LeftTicks: graph. (line 161) -* LeftView: three. (line 381) +* LeftView: three. (line 386) * legend <1>: graph. (line 431) * legend <2>: draw. (line 64) * legend: Drawing commands. (line 31) * Legendre: Mathematical functions. (line 48) -* length <1>: three. (line 502) +* length <1>: three. (line 507) * length <2>: Arrays. (line 39) * length <3>: Paths and guides. (line 65) -* length: Data types. (line 60) +* length: Data types. (line 62) * letter: Configuring. (line 61) * lexorder: math. (line 68) * libm routines: Mathematical functions. @@ -9166,15 +9195,15 @@ Index * libsigsegv <1>: Help. (line 33) * libsigsegv: Functions. (line 88) * limits: graph. (line 636) -* line: Arrays. (line 350) -* line mode: Arrays. (line 350) +* line: Arrays. (line 344) +* line mode: Arrays. (line 344) * Linear: graph. (line 682) * linecap: Pens. (line 129) * linejoin: Pens. (line 138) * lineskip: Pens. (line 178) * linetype: Pens. (line 115) * linewidth: Pens. (line 119) -* locale: Data types. (line 287) +* locale: Data types. (line 293) * Log: graph. (line 682) * log: Mathematical functions. (line 6) @@ -9189,59 +9218,60 @@ Index (line 6) * longdashdotted: Pens. (line 95) * longdashed: Pens. (line 95) -* longitude: Data types. (line 139) +* longitude: Data types. (line 141) * loop: Programming. (line 8) * MacOS X binary distributions: MacOS X binary distributions. (line 6) * makepen: Pens. (line 300) * map: Arrays. (line 141) * Margin: draw. (line 42) -* Margin3: three. (line 559) +* Margin3: three. (line 564) * margins: three. (line 262) * Margins: draw. (line 42) -* Margins3: three. (line 559) +* Margins3: three. (line 564) * mark: graph. (line 484) * markangle: markers. (line 38) * marker: graph. (line 484) * markers: markers. (line 6) * marknodes: graph. (line 484) * markuniform: graph. (line 484) +* mask: Data types. (line 33) * math: math. (line 6) * mathematical functions: Mathematical functions. (line 6) -* max <1>: three. (line 502) -* max <2>: Arrays. (line 231) +* max <1>: three. (line 507) +* max <2>: Arrays. (line 225) * max <3>: Frames and pictures. (line 7) -* max: Paths and guides. (line 264) -* maxbound: Data types. (line 104) +* max: Paths and guides. (line 267) +* maxbound: Data types. (line 106) * maxtile: three. (line 210) -* maxtimes: Paths and guides. (line 219) +* maxtimes: Paths and guides. (line 222) * maxviewport: three. (line 210) * MetaPost: MetaPost. (line 6) * MetaPost ... : Bezier curves. (line 67) -* MetaPost cutafter: Paths and guides. (line 252) -* MetaPost cutbefore: Paths and guides. (line 248) +* MetaPost cutafter: Paths and guides. (line 255) +* MetaPost cutbefore: Paths and guides. (line 251) * MetaPost pickup: Pens. (line 6) * MetaPost whatever: MetaPost. (line 10) * Microsoft Windows: Microsoft Windows. (line 6) * MidArcArrow: draw. (line 26) -* MidArcArrow3: three. (line 543) +* MidArcArrow3: three. (line 548) * MidArrow: draw. (line 26) -* MidArrow3: three. (line 543) -* midpoint: Paths and guides. (line 166) -* MidPoint: label. (line 57) -* min <1>: three. (line 502) -* min <2>: Arrays. (line 224) +* MidArrow3: three. (line 548) +* midpoint: Paths and guides. (line 169) +* MidPoint: label. (line 56) +* min <1>: three. (line 507) +* min <2>: Arrays. (line 218) * min <3>: Frames and pictures. (line 7) -* min: Paths and guides. (line 260) -* minbound: Data types. (line 101) -* minipage: label. (line 119) -* mintimes: Paths and guides. (line 214) +* min: Paths and guides. (line 263) +* minbound: Data types. (line 103) +* minipage: label. (line 118) +* mintimes: Paths and guides. (line 217) * miterjoin: Pens. (line 138) * miterlimit: Pens. (line 147) -* mktemp: Files. (line 43) +* mktemp: Files. (line 44) * mm: Tutorial. (line 63) -* mode: Files. (line 88) +* mode: Files. (line 75) * monotonic: graph. (line 37) * mouse: GUI. (line 6) * mouse bindings: three. (line 137) @@ -9257,19 +9287,19 @@ Index * new <1>: Arrays. (line 109) * new: Structures. (line 6) * newframe: Frames and pictures. (line 7) -* newl: Files. (line 60) +* newl: Files. (line 61) * newton: Mathematical functions. - (line 65) + (line 66) * next: Debugger. (line 42) * NFSS: Pens. (line 192) * nobasealign: Pens. (line 168) * NoFill <1>: Frames and pictures. (line 141) * NoFill: draw. (line 26) * NoMargin: draw. (line 42) -* NoMargin3: three. (line 559) -* none: Files. (line 60) +* NoMargin3: three. (line 564) +* none: Files. (line 61) * None: draw. (line 19) -* normal: three. (line 488) +* normal: three. (line 493) * nosafe: Options. (line 163) * NOT: Arithmetic & logical. (line 80) @@ -9279,7 +9309,7 @@ Index * null: Structures. (line 6) * nullpen <1>: Frames and pictures. (line 127) * nullpen: label. (line 14) -* NURBS: three. (line 358) +* NURBS: three. (line 363) * O: three. (line 274) * obj: obj. (line 9) * oblique: three. (line 319) @@ -9293,7 +9323,7 @@ Index * OmitTickInterval: graph. (line 239) * OmitTickIntervals: graph. (line 239) * opacity: Pens. (line 222) -* open: Files. (line 11) +* open: Files. (line 12) * OpenGL: three. (line 127) * operator: User-defined operators. (line 6) @@ -9314,17 +9344,17 @@ Index * outformat: three. (line 127) * outprefix: Frames and pictures. (line 83) * output <1>: Options. (line 143) -* output: Files. (line 35) +* output: Files. (line 36) * OutTicks: graph3. (line 34) * overloading functions: Functions. (line 44) * overwrite: Pens. (line 324) * P: Mathematical functions. (line 48) -* pack: label. (line 102) +* pack: label. (line 101) * packing: Rest arguments. (line 30) -* pair <1>: Data types. (line 41) +* pair <1>: Data types. (line 43) * pair: Tutorial. (line 51) -* pairs: Arrays. (line 248) +* pairs: Arrays. (line 242) * paperheight: Configuring. (line 61) * papertype: Configuring. (line 61) * paperwidth: Configuring. (line 61) @@ -9347,33 +9377,33 @@ Index * pdfviewerOptions: Options. (line 130) * pen: Pens. (line 6) * PenMargin: draw. (line 42) -* PenMargin2: three. (line 559) -* PenMargin3: three. (line 559) +* PenMargin2: three. (line 564) +* PenMargin3: three. (line 564) * PenMargins: draw. (line 42) -* PenMargins2: three. (line 559) -* PenMargins3: three. (line 559) +* PenMargins2: three. (line 564) +* PenMargins3: three. (line 564) * periodic: graph. (line 37) -* perl: LaTeX usage. (line 29) +* perl: LaTeX usage. (line 30) * perpendicular: geometry. (line 6) -* perspective: three. (line 358) +* perspective: three. (line 363) * picture: Frames and pictures. (line 35) * picture alignment: Frames and pictures. (line 209) * piecewisestraight: Paths and guides. (line 81) -* pixel: three. (line 566) +* pixel: three. (line 571) * Pl: Mathematical functions. (line 48) * plain: plain. (line 6) * planar: three. (line 89) * plane: three. (line 301) -* planeproject: three. (line 485) -* point <1>: three. (line 502) +* planeproject: three. (line 490) +* point <1>: three. (line 507) * point: Paths and guides. (line 84) -* polar: Data types. (line 119) +* polar: Data types. (line 121) * polargraph: graph. (line 90) * polygon: graph. (line 484) * pop: Arrays. (line 39) * Portrait: Frames and pictures. (line 95) -* postcontrol <1>: three. (line 502) +* postcontrol <1>: three. (line 507) * postcontrol: Paths and guides. (line 135) * postfix operators: Self & prefix operators. (line 19) @@ -9384,7 +9414,7 @@ Index (line 6) * prc: three. (line 231) * precision: Files. (line 92) -* precontrol <1>: three. (line 502) +* precontrol <1>: three. (line 507) * precontrol: Paths and guides. (line 128) * prefix operators: Self & prefix operators. (line 6) @@ -9399,8 +9429,9 @@ Index * public: Structures. (line 6) * push: Arrays. (line 39) * Python usage: Interactive mode. (line 80) -* quadraticroots: Arrays. (line 315) +* quadraticroots: Arrays. (line 309) * quarticroots: math. (line 22) +* quick reference: Description. (line 80) * quit <1>: Debugger. (line 54) * quit <2>: Interactive mode. (line 59) * quit: Tutorial. (line 37) @@ -9412,56 +9443,57 @@ Index * RadialShadeDraw: Frames and pictures. (line 163) * radians: Mathematical functions. (line 17) -* radius <1>: three. (line 502) +* radius <1>: three. (line 507) * radius: Paths and guides. (line 124) * Rainbow: palette. (line 12) * rand: Mathematical functions. (line 39) * randMax: Mathematical functions. (line 39) -* read: Arrays. (line 391) -* reading: Files. (line 11) -* reading string arrays: Arrays. (line 360) +* read: Arrays. (line 385) +* reading: Files. (line 12) +* reading string arrays: Arrays. (line 354) * readline: Files. (line 134) * real: Data types. (line 33) * realDigits: Data types. (line 33) * realEpsilon: Data types. (line 33) * realMax: Data types. (line 33) * realMin: Data types. (line 33) -* realmult: Data types. (line 95) +* realmult: Data types. (line 97) * rectangle: flowchart. (line 37) * recursion: Functions. (line 88) +* reference: Description. (line 80) * reflect: Transforms. (line 51) -* Relative: label. (line 52) -* relpoint: Paths and guides. (line 162) -* reltime: Paths and guides. (line 158) +* Relative: label. (line 51) +* relpoint: Paths and guides. (line 165) +* reltime: Paths and guides. (line 161) * remainder: Mathematical functions. (line 6) * rename: Files. (line 151) * render <1>: Options. (line 143) * render: three. (line 47) -* replace: Data types. (line 252) +* replace: Data types. (line 254) * resetdefaultpen: Pens. (line 353) * rest arguments: Rest arguments. (line 6) * restore: Frames and pictures. (line 265) * restricted: Structures. (line 6) * return: Debugger. (line 48) -* reverse <1>: three. (line 502) +* reverse <1>: three. (line 507) * reverse <2>: Arrays. (line 146) -* reverse <3>: Paths and guides. (line 169) -* reverse: Data types. (line 248) +* reverse <3>: Paths and guides. (line 172) +* reverse: Data types. (line 250) * rewind: Files. (line 92) -* rfind: Data types. (line 229) +* rfind: Data types. (line 231) * rgb: Pens. (line 30) * Riemann zeta function: Mathematical functions. (line 48) * Right: graph. (line 287) -* RightSide: label. (line 62) +* RightSide: label. (line 61) * RightTicks: graph. (line 161) -* RightView: three. (line 381) -* rotate: three. (line 453) -* Rotate: label. (line 37) -* Rotate(pair z): label. (line 40) +* RightView: three. (line 386) +* rotate: three. (line 458) +* Rotate: label. (line 36) +* Rotate(pair z): label. (line 39) * round: Mathematical functions. (line 26) * roundcap: Pens. (line 129) @@ -9476,13 +9508,13 @@ Index * safe: Options. (line 163) * save: Frames and pictures. (line 262) * saveline: Files. (line 134) -* scale: three. (line 452) +* scale: three. (line 457) * Scale: graph. (line 698) * scale <1>: graph. (line 682) * scale <2>: Transforms. (line 39) * scale: Pens. (line 115) -* Scale: label. (line 46) -* scale3: three. (line 449) +* Scale: label. (line 45) +* scale3: three. (line 454) * scaled graph: graph. (line 663) * scientific graph: graph. (line 396) * scroll: Files. (line 108) @@ -9492,7 +9524,7 @@ Index * secondary axis: graph. (line 813) * secondaryX: graph. (line 813) * secondaryY: graph. (line 813) -* seconds: Data types. (line 300) +* seconds: Data types. (line 306) * seek: Files. (line 92) * seekeof: Files. (line 92) * segment: math. (line 50) @@ -9505,51 +9537,53 @@ Index * sgn: Mathematical functions. (line 26) * shading: fill. (line 32) -* shift <1>: three. (line 437) +* shift <1>: three. (line 442) * shift: Transforms. (line 27) -* Shift: label. (line 34) +* Shift: label. (line 33) * shiftless: Transforms. (line 53) * shipout: Frames and pictures. (line 83) * showtarget: three. (line 338) * Si: Mathematical functions. (line 48) -* signedint: Files. (line 74) +* signedint: Files. (line 75) * SimpleHead: draw. (line 26) * simplex: simplex. (line 6) * simpson: Mathematical functions. - (line 81) + (line 82) * Sin: Mathematical functions. (line 20) * sin: Mathematical functions. (line 6) -* single precision: Files. (line 74) -* singleint: Files. (line 74) -* singlereal: Files. (line 74) +* single precision: Files. (line 75) +* singleint: Files. (line 75) +* singlereal: Files. (line 75) * sinh: Mathematical functions. (line 6) -* SixViews: three. (line 396) -* SixViewsFR: three. (line 396) -* SixViewsUS: three. (line 396) +* SixViews: three. (line 401) +* SixViewsFR: three. (line 401) +* SixViewsUS: three. (line 401) * size <1>: Options. (line 143) -* size <2>: three. (line 502) +* size <2>: three. (line 507) * size <3>: Frames and pictures. (line 43) * size: Paths and guides. (line 70) * size3: three. (line 259) * slant: Transforms. (line 45) -* Slant: label. (line 43) -* sleep: Data types. (line 334) -* slice: Paths and guides. (line 237) +* Slant: label. (line 42) +* sleep: Data types. (line 351) +* slice: Paths and guides. (line 240) * slices: Slices. (line 6) * slide: slide. (line 6) * slope: math. (line 44) * slopefield: slopefield. (line 6) +* sndncn: Mathematical functions. + (line 48) * solid: Pens. (line 95) * solids: solids. (line 9) -* solve: Arrays. (line 284) -* sort: Arrays. (line 190) +* solve: Arrays. (line 278) +* sort: Arrays. (line 184) * Spline <1>: graph3. (line 100) * Spline: graph. (line 34) -* split: Data types. (line 261) +* split: Data types. (line 263) * sqrt: Mathematical functions. (line 6) * squarecap: Pens. (line 129) @@ -9559,27 +9593,27 @@ Index * stack overflow: Functions. (line 88) * static: Static. (line 6) * stats: stats. (line 6) -* stdin: Files. (line 47) -* stdout: Files. (line 47) +* stdin: Files. (line 48) +* stdout: Files. (line 48) * step: Debugger. (line 39) * stickframe: markers. (line 16) * stop: Debugger. (line 10) -* straight: three. (line 502) +* straight: three. (line 507) * Straight: graph. (line 31) * straight: Paths and guides. (line 77) -* strftime: Data types. (line 292) -* string: Data types. (line 179) +* strftime: Data types. (line 298) +* string: Data types. (line 181) * stroke: fill. (line 36) -* strokepath: Paths and guides. (line 294) -* strptime: Data types. (line 300) +* strokepath: Paths and guides. (line 297) +* strptime: Data types. (line 306) * struct: Structures. (line 6) * structures: Structures. (line 6) -* subpath <1>: three. (line 502) -* subpath: Paths and guides. (line 172) +* subpath <1>: three. (line 507) +* subpath: Paths and guides. (line 175) * subpictures: Frames and pictures. (line 103) -* substr: Data types. (line 244) +* substr: Data types. (line 246) * Subversion: Subversion. (line 6) -* sum: Arrays. (line 219) +* sum: Arrays. (line 213) * superpath: Tutorial. (line 134) * Suppress: Pens. (line 331) * SuppressQuiet: Pens. (line 335) @@ -9588,9 +9622,9 @@ Index * SVG: Options. (line 143) * SVN: Subversion. (line 6) * system <1>: Options. (line 163) -* system: Files. (line 159) +* system: Data types. (line 328) * syzygy: syzygy. (line 6) -* tab: Files. (line 60) +* tab: Files. (line 61) * tab completion: Tutorial. (line 37) * Tan: Mathematical functions. (line 20) @@ -9602,17 +9636,17 @@ Index * tell: Files. (line 92) * tension <1>: three. (line 6) * tension: Bezier curves. (line 56) -* tensionSpecifier: Paths and guides. (line 385) +* tensionSpecifier: Paths and guides. (line 388) * tensor product shading: fill. (line 74) * tensorshade: fill. (line 74) * tex <1>: Options. (line 143) * tex: Frames and pictures. (line 278) * TeX fonts: Pens. (line 201) -* TeX string: Data types. (line 179) +* TeX string: Data types. (line 181) * texcommand: Configuring. (line 67) * TeXHead: draw. (line 26) -* TeXHead3: three. (line 543) -* texpath <1>: label. (line 116) +* TeXHead3: three. (line 548) +* texpath <1>: label. (line 115) * texpath: Configuring. (line 67) * texpreamble: Frames and pictures. (line 286) * texreset: Frames and pictures. (line 289) @@ -9623,9 +9657,9 @@ Index * thin: three. (line 110) * this: Structures. (line 6) * three: three. (line 6) -* ThreeViews: three. (line 396) -* ThreeViewsFR: three. (line 396) -* ThreeViewsUS: three. (line 396) +* ThreeViews: three. (line 401) +* ThreeViewsFR: three. (line 401) +* ThreeViewsUS: three. (line 401) * tick: graph. (line 342) * Ticks: graph. (line 161) * ticks: graph. (line 161) @@ -9633,35 +9667,35 @@ Index * tile: Pens. (line 251) * tilings: Pens. (line 238) * time <1>: math. (line 30) -* time: Data types. (line 292) -* times: Paths and guides. (line 206) +* time: Data types. (line 298) +* times: Paths and guides. (line 209) * Top: graph. (line 137) -* TopView: three. (line 381) +* TopView: three. (line 386) * trace: Debugger. (line 51) * trailingzero: graph. (line 175) -* transform <1>: three. (line 477) +* transform <1>: three. (line 482) * transform: Transforms. (line 6) -* transform3: three. (line 432) +* transform3: three. (line 437) * transparency: Pens. (line 222) -* transpose: Arrays. (line 211) +* transpose: Arrays. (line 205) * tree: tree. (line 9) * trembling: trembling. (line 6) * triangle: geometry. (line 6) * triangulate: contour. (line 157) -* tridiagonal: Arrays. (line 272) +* tridiagonal: Arrays. (line 266) * trigonometric integrals: Mathematical functions. (line 48) -* triple: Data types. (line 108) +* triple: Data types. (line 110) * TrueMargin: draw. (line 42) -* TrueMargin3: three. (line 559) +* TrueMargin3: three. (line 564) * tube <1>: tube. (line 6) * tube: three. (line 110) * tutorial: Tutorial. (line 6) * type1cm: Pens. (line 178) * typedef <1>: Functions. (line 36) -* typedef: Data types. (line 344) +* typedef: Data types. (line 361) * U3D: embed. (line 38) -* undefined: Paths and guides. (line 268) +* undefined: Paths and guides. (line 271) * UnFill: Frames and pictures. (line 152) * unfill: fill. (line 106) * UnFill: draw. (line 26) @@ -9669,7 +9703,7 @@ Index * uniform: Arrays. (line 155) * Uninstall: Uninstall. (line 6) * unique: math. (line 64) -* unit: Data types. (line 78) +* unit: Data types. (line 80) * unitbox <1>: three. (line 307) * unitbox: Tutorial. (line 155) * unitcircle <1>: three. (line 274) @@ -9683,13 +9717,13 @@ Index * unpacking: Rest arguments. (line 39) * unravel: Import. (line 30) * up: three. (line 338) -* update: Files. (line 35) +* update: Files. (line 36) * UpsideDown: Frames and pictures. (line 95) * usepackage: Frames and pictures. (line 291) * user coordinates: Tutorial. (line 86) * user-defined operators: User-defined operators. (line 6) -* usleep: Data types. (line 337) +* usleep: Data types. (line 354) * value: math. (line 38) * var: Variable initializers. (line 63) @@ -9697,46 +9731,45 @@ Index (line 6) * vectorfield: graph. (line 975) * vectorfield3: graph3. (line 159) -* vectorization: Arrays. (line 329) +* vectorization: Arrays. (line 323) * verbatim: Frames and pictures. (line 271) * vertex-dependent colors: three. (line 81) * Vertical: flowchart. (line 81) -* viewportheight: LaTeX usage. (line 49) +* viewportheight: LaTeX usage. (line 51) * viewportmargin: three. (line 262) * viewportsize: three. (line 262) -* viewportwidth: LaTeX usage. (line 49) +* viewportwidth: LaTeX usage. (line 51) * views: three. (line 231) * vim: Editing modes. (line 33) * virtual functions: Structures. (line 181) * void: Data types. (line 10) * W: Tutorial. (line 106) -* whatever: Paths and guides. (line 232) +* whatever: Paths and guides. (line 235) * Wheel: palette. (line 22) * wheel mouse: GUI. (line 6) * while: Programming. (line 29) -* white-space string delimiter mode: Arrays. (line 360) -* width: LaTeX usage. (line 49) -* windingnumber: Paths and guides. (line 268) -* word: Arrays. (line 360) -* write <1>: Arrays. (line 400) -* write: Files. (line 52) +* white-space string delimiter mode: Arrays. (line 354) +* width: LaTeX usage. (line 51) +* windingnumber: Paths and guides. (line 271) +* word: Arrays. (line 354) +* write <1>: Arrays. (line 394) +* write: Files. (line 53) * X: three. (line 274) * xasy: GUI. (line 6) * xaxis3: graph3. (line 7) +* xdr: Files. (line 75) * xelatex <1>: Options. (line 143) * xelatex: embed. (line 10) * xequals: graph. (line 294) * XEquals: graph. (line 280) -* xinput: Files. (line 74) * xlimits: graph. (line 636) * XOR: Arithmetic & logical. (line 80) -* xoutput: Files. (line 74) -* xpart: Data types. (line 89) +* xpart: Data types. (line 91) * xscale: Transforms. (line 33) -* xscale3: three. (line 440) +* xscale3: three. (line 445) * xtick: graph. (line 342) -* XY: three. (line 462) +* XY: three. (line 467) * XYEquals: graph3. (line 20) * XYZero: graph3. (line 20) * XZEquals: graph3. (line 20) @@ -9749,12 +9782,12 @@ Index * yequals: graph. (line 294) * YEquals: graph. (line 130) * ylimits: graph. (line 636) -* ypart: Data types. (line 92) +* ypart: Data types. (line 94) * yscale: Transforms. (line 36) -* yscale3: three. (line 443) +* yscale3: three. (line 448) * ytick: graph. (line 342) -* YX: three. (line 477) -* YZ: three. (line 477) +* YX: three. (line 482) +* YZ: three. (line 482) * YZEquals: graph3. (line 20) * YZero: graph. (line 125) * YZZero: graph3. (line 20) @@ -9773,10 +9806,10 @@ Index * zerowinding: Pens. (line 152) * zeta: Mathematical functions. (line 48) -* zpart: Data types. (line 161) -* zscale3: three. (line 446) -* ZX: three. (line 477) -* ZY: three. (line 477) +* zpart: Data types. (line 163) +* zscale3: three. (line 451) +* ZX: three. (line 482) +* ZY: three. (line 482) * |: Arithmetic & logical. (line 62) * ||: Arithmetic & logical. @@ -9787,145 +9820,144 @@ Index Tag Table: Node: Top575 Node: Description6834 -Node: Installation10335 -Node: UNIX binary distributions11388 -Node: MacOS X binary distributions12494 -Node: Microsoft Windows13378 -Ref: psview14088 -Node: Configuring15020 -Node: Search paths19234 -Node: Compiling from UNIX source20031 -Ref: multisampling20620 -Node: Editing modes23026 -Node: Subversion25458 -Node: Uninstall25921 -Node: Tutorial26271 -Ref: unitcircle30569 -Node: Drawing commands32505 -Node: draw34216 -Ref: arrows35364 -Node: fill40607 -Ref: gradient shading41651 -Node: clip45879 -Node: label46471 -Ref: Label47170 -Node: Bezier curves52895 -Node: Programming56472 -Ref: array iteration57286 -Node: Data types58367 -Ref: format67375 -Node: Paths and guides70978 -Ref: circle71232 -Ref: arctime76720 -Ref: extension80575 -Node: Pens87258 -Ref: fillrule94624 -Ref: basealign95521 -Ref: transparency98347 -Ref: makepen101790 -Ref: overwrite102628 -Node: Transforms103838 -Node: Frames and pictures105629 -Ref: envelope106770 -Ref: size107853 -Ref: unitsize108840 -Ref: shipout109900 -Ref: filltype112233 -Ref: add115370 -Ref: add about116316 -Ref: tex119254 -Node: Files120128 -Ref: cd121093 -Ref: scroll125778 -Node: Variable initializers128851 -Node: Structures131576 -Node: Operators139020 -Node: Arithmetic & logical139334 -Node: Self & prefix operators141308 -Node: User-defined operators142096 -Node: Implicit scaling143007 -Node: Functions143570 -Ref: stack overflow146323 -Node: Default arguments146887 -Node: Named arguments147626 -Node: Rest arguments150197 -Node: Mathematical functions153318 -Node: Arrays157925 -Ref: sort165013 -Ref: tridiagonal167417 -Ref: solve168645 -Node: Slices172838 -Node: Casts176728 -Node: Import178693 -Node: Static183920 -Node: LaTeX usage186814 -Node: Base modules193031 -Node: plain195531 -Node: simplex196183 -Node: math196456 -Node: interpolate199161 -Node: geometry199440 -Node: trembling200034 -Node: stats200385 -Node: patterns200645 -Node: markers200881 -Node: tree202664 -Node: binarytree202852 -Node: drawtree203441 -Node: syzygy203645 -Node: feynman203919 -Node: roundedpath204194 -Node: animation204477 -Ref: animate204894 -Node: embed206033 -Node: slide207636 -Node: MetaPost207976 -Node: unicode208692 -Node: latin1209580 -Node: babel209948 -Node: labelpath210177 -Node: labelpath3210997 -Node: annotate211308 -Node: CAD211779 -Node: graph212089 -Ref: ticks219218 -Ref: pathmarkers232497 -Ref: marker232962 -Ref: markuniform233313 -Ref: errorbars235104 -Ref: automatic scaling239160 -Node: palette249806 -Ref: images249924 -Ref: image254096 -Ref: logimage254574 -Ref: penimage255635 -Ref: penfunctionimage255856 -Node: three256580 -Ref: PostScript3D281322 -Node: obj283014 -Node: graph3283266 -Ref: GaussianSurface288391 -Node: grid3289495 -Node: solids290235 -Node: tube291183 -Node: flowchart293418 -Node: contour297987 -Node: contour3303112 -Node: slopefield303419 -Node: ode304856 -Node: Options305116 -Ref: configuration file311104 -Ref: settings311104 -Ref: convert312305 -Node: Interactive mode315272 -Ref: history317425 -Node: GUI318730 -Node: GUI installation319233 -Node: GUI usage320363 -Node: PostScript to Asymptote321266 -Node: Help322022 -Node: Debugger323758 -Node: Credits325543 -Node: Index326475 +Node: Installation10450 +Node: UNIX binary distributions11503 +Node: MacOS X binary distributions12609 +Node: Microsoft Windows13493 +Ref: psview14203 +Node: Configuring15135 +Node: Search paths19349 +Node: Compiling from UNIX source20191 +Ref: multisampling20781 +Node: Editing modes23176 +Node: Subversion25608 +Node: Uninstall26071 +Node: Tutorial26421 +Ref: unitcircle30719 +Node: Drawing commands32655 +Node: draw34366 +Ref: arrows35514 +Node: fill40757 +Ref: gradient shading41801 +Node: clip46029 +Node: label46621 +Ref: Label47219 +Node: Bezier curves53022 +Node: Programming56599 +Ref: array iteration57413 +Node: Data types58494 +Ref: format67691 +Node: Paths and guides71944 +Ref: circle72198 +Ref: extension81622 +Node: Pens88305 +Ref: fillrule95673 +Ref: basealign96570 +Ref: transparency99396 +Ref: makepen102839 +Ref: overwrite103677 +Node: Transforms104887 +Node: Frames and pictures106678 +Ref: envelope107819 +Ref: size108902 +Ref: unitsize109889 +Ref: shipout110949 +Ref: filltype113282 +Ref: add116419 +Ref: add about117365 +Ref: tex120303 +Node: Files121177 +Ref: cd122160 +Ref: scroll126834 +Node: Variable initializers129749 +Node: Structures132474 +Node: Operators139918 +Node: Arithmetic & logical140232 +Node: Self & prefix operators142205 +Node: User-defined operators142993 +Node: Implicit scaling143904 +Node: Functions144467 +Ref: stack overflow147220 +Node: Default arguments147784 +Node: Named arguments148523 +Node: Rest arguments151094 +Node: Mathematical functions154215 +Node: Arrays158880 +Ref: sort165869 +Ref: tridiagonal168273 +Ref: solve169501 +Node: Slices173694 +Node: Casts177584 +Node: Import179549 +Node: Static184786 +Node: LaTeX usage187680 +Node: Base modules194092 +Node: plain196592 +Node: simplex197244 +Node: math197517 +Node: interpolate200222 +Node: geometry200501 +Node: trembling201095 +Node: stats201446 +Node: patterns201706 +Node: markers201942 +Node: tree203725 +Node: binarytree203913 +Node: drawtree204502 +Node: syzygy204706 +Node: feynman204980 +Node: roundedpath205255 +Node: animation205538 +Ref: animate205958 +Node: embed207097 +Node: slide208700 +Node: MetaPost209040 +Node: unicode209756 +Node: latin1210644 +Node: babel211012 +Node: labelpath211241 +Node: labelpath3212061 +Node: annotate212372 +Node: CAD212843 +Node: graph213153 +Ref: ticks220282 +Ref: pathmarkers233576 +Ref: marker234041 +Ref: markuniform234392 +Ref: errorbars236183 +Ref: automatic scaling240239 +Node: palette250885 +Ref: images251003 +Ref: image255175 +Ref: logimage255653 +Ref: penimage256714 +Ref: penfunctionimage256935 +Node: three257659 +Ref: PostScript3D282639 +Node: obj284331 +Node: graph3284583 +Ref: GaussianSurface289708 +Node: grid3290812 +Node: solids291552 +Node: tube292500 +Node: flowchart294735 +Node: contour299304 +Node: contour3304429 +Node: slopefield304736 +Node: ode306173 +Node: Options306433 +Ref: configuration file312421 +Ref: settings312421 +Ref: convert313622 +Node: Interactive mode316589 +Ref: history318742 +Node: GUI320047 +Node: GUI installation320550 +Node: GUI usage321680 +Node: PostScript to Asymptote322583 +Node: Help323339 +Node: Debugger325075 +Node: Credits326860 +Node: Index327792 End Tag Table |