diff options
102 files changed, 16977 insertions, 201 deletions
diff --git a/bin/win32/cjk-gs-integrate-macos.exe b/bin/windows/cjk-gs-integrate-macos.exe Binary files differindex 5777d90a..5777d90a 100755 --- a/bin/win32/cjk-gs-integrate-macos.exe +++ b/bin/windows/cjk-gs-integrate-macos.exe diff --git a/bin/win32/getnonfreefonts-sys.exe b/bin/windows/getnonfreefonts-sys.exe Binary files differindex 5777d90a..5777d90a 100755 --- a/bin/win32/getnonfreefonts-sys.exe +++ b/bin/windows/getnonfreefonts-sys.exe diff --git a/bin/win32/getnonfreefonts.exe b/bin/windows/getnonfreefonts.exe Binary files differindex 5777d90a..5777d90a 100755 --- a/bin/win32/getnonfreefonts.exe +++ b/bin/windows/getnonfreefonts.exe diff --git a/ctan2tds-config.pl b/ctan2tds-config.pl index 3864ffec..702656cf 100644 --- a/ctan2tds-config.pl +++ b/ctan2tds-config.pl @@ -9,6 +9,9 @@ $special{'thsmc'} = '&donormal'; $special{'verdana'} = '&donormal'; $special{'lucidabr'} = '&donormal'; $special{'lucold'} = '&MAKEflatten'; +$special{'lucida-otf'} = '&MAKEflatten'; +$specialdocfmt{'lucida-otf'} = "latex"; +$specialtex{'lucida-otf'} = '^lucida-otf-kern\.tex|' . $standardtex; $special{'futurans'} = '&donormal'; $special{'pcarl'} = '&donormal'; $special{'mathstone'} = '&MAKEflatten'; @@ -46,6 +49,10 @@ $special{'ltx4yt'} = '&MAKEdps'; $special{'rmannot'} = '&MAKEdps'; $special{'eq-fetchbbl'} = '&MAKEdps'; $special{'docassembly'} = '&MAKEdps'; +$special{'siam'} = '&MAKEsiam'; + +$special{'fontsetup-nonfree'} = '&donormal'; +$posthook{'fontsetup-nonfree'} = '&POST_onelevel'; sub MAKEdps { diff --git a/texmf-dist/bibtex/bst/siam/siamproc.bst b/texmf-dist/bibtex/bst/siam/siamproc.bst new file mode 100644 index 00000000..251204bd --- /dev/null +++ b/texmf-dist/bibtex/bst/siam/siamproc.bst @@ -0,0 +1,1039 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is siamproc.bst +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names }% scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/texmf-dist/doc/fonts/japanese-otf-nonfree/COPYRIGHT b/texmf-dist/doc/fonts/japanese-otf-nonfree/COPYRIGHT new file mode 100644 index 00000000..aa57e578 --- /dev/null +++ b/texmf-dist/doc/fonts/japanese-otf-nonfree/COPYRIGHT @@ -0,0 +1,27 @@ +Copyright (C) 2003--2019 SAITO Shuzaburo and INOUE Koichi +Copyright (C) 2007--2023 TANAKA Takuji +Copyright (C) 2017--2023 Japanese TeX Development Community +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the author may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/texmf-dist/doc/fonts/japanese-otf-nonfree/README b/texmf-dist/doc/fonts/japanese-otf-nonfree/README index 1852e120..4a0c189f 100644 --- a/texmf-dist/doc/fonts/japanese-otf-nonfree/README +++ b/texmf-dist/doc/fonts/japanese-otf-nonfree/README @@ -1,13 +1,22 @@ -package name: otfbeta-nonfree or japanese-otf-nonfree +package name: japanese-otf-nonfree -This package is a companion to `otf' or `japanese-otf' including +This package is a companion to `japanese-otf' including support for nonfree Hiragino fonts, which we decided not to be included in TeX Live. Current version of this package used is based on - otfbeta.zip v1.7b8 2019/04/01 + otfbeta v1.7b8 (2019/04/01) +and + japanese-otf-uptex Ver.0.30 (2023/10/08) + +The source code is maintained at GitHub: + https://github.com/texjporg/japanese-otf-mirror +If you find any issues or bugs, please report to + https://github.com/texjporg/japanese-otf-mirror/issues +or + e-mail: issue@texjp.org The contents of this package is under the license given in the -COPYRIGHT file, which is more or less BSD license. +COPYRIGHT file, which is the 3-clause BSD license. -Norbert Preining -20201114.0 +Japanese TeX Development Community +20231009.0 diff --git a/texmf-dist/doc/fonts/japanese-otf-uptex-nonfree/README b/texmf-dist/doc/fonts/japanese-otf-uptex-nonfree/README deleted file mode 100644 index 34fafb68..00000000 --- a/texmf-dist/doc/fonts/japanese-otf-uptex-nonfree/README +++ /dev/null @@ -1,13 +0,0 @@ -package name: japanese-otf-uptex-nonfree - -This package is a companion to `japanese-otf-uptex' including -support for nonfree Hiragino fonts, which we decided not to be -included in TeX Live. Current version of this package used is -based on - japanese-otf-uptex Ver.0.26 2020/11/08 - -The contents of this package is under the license given in the -COPYRIGHT file, which is more or less BSD license. - -Norbert Preining -20201114.0 diff --git a/texmf-dist/doc/latex/fontsetup-nonfree/README b/texmf-dist/doc/latex/fontsetup-nonfree/README index 5a68a220..e31a6808 100644 --- a/texmf-dist/doc/latex/fontsetup-nonfree/README +++ b/texmf-dist/doc/latex/fontsetup-nonfree/README @@ -1,5 +1,5 @@ The fontsetup-nonfree package - (Version 1.02, GPL3) + (Version 2.0, GPL3) This package accompanies fontsetup, and inludes support for nonfree fonts. diff --git a/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf b/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf Binary files differindex 071b8771..89828d7b 100644 --- a/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf +++ b/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf diff --git a/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.tex b/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.tex index 5711b01a..8ba3e055 100644 --- a/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.tex +++ b/texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.tex @@ -9,8 +9,8 @@ \textit{by}\\[1ex] {\large Antonis Tsolomitis}\\ University of the Aegean\\ Department of Mathematics\\[1ex] - \textsc{3} May \textsc{2021}\\[1ex] - Version 1.02, \textsc{gpl3} + \textsc{14} December \textsc{2023}\\[1ex] + Version 2.0, \textsc{gpl3} \end{center} This package is part of the fontsetup package but for license issues it has been diff --git a/texmf-dist/doc/latex/lucida-otf/Changes b/texmf-dist/doc/latex/lucida-otf/Changes index 1479c4ab..d2e60a82 100644 --- a/texmf-dist/doc/latex/lucida-otf/Changes +++ b/texmf-dist/doc/latex/lucida-otf/Changes @@ -1,3 +1,4 @@ +0.09 2023-06-16 - fix for missing italic in regular fit 0.08 2018-03-31 - rename the kerning file 0.07 2018-03-29 - extended kerning table for LuaLaTeX 0.06 2018-03-26 - added kerning table for LuaLaTeX diff --git a/texmf-dist/doc/latex/lucida-otf/README.md b/texmf-dist/doc/latex/lucida-otf/README.md index 7ce52ef0..1343c97e 100644 --- a/texmf-dist/doc/latex/lucida-otf/README.md +++ b/texmf-dist/doc/latex/lucida-otf/README.md @@ -31,3 +31,5 @@ Following font files are supported: - LucidaSansTypewriterOT-Bold.otf - LucidaSansTypewriterOT-Oblique.otf - LucidaSansTypewriterOT.otf + +Herbert Voß 2023 - diff --git a/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.fonts b/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.fonts deleted file mode 100644 index 9a9812ca..00000000 --- a/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.fonts +++ /dev/null @@ -1,31 +0,0 @@ -name type encoding emb sub uni object ID ------------------------------------- ----------------- ---------------- --- --- --- --------- -BZJGDF+LucidaBrightOT CID Type 0C Identity-H yes yes yes 28 0 -OUEYKT+LucidaBrightOT-Demibold CID Type 0C Identity-H yes yes yes 30 0 -KQWZOC+LucidaBrightOT-Italic CID Type 0C Identity-H yes yes yes 37 0 -EGHOZK+LucidaSansTypewriterOT CID Type 0C Identity-H yes yes yes 38 0 -JKNIKI+LucidaSansTypewriterOT-Oblique CID Type 0C Identity-H yes yes yes 39 0 -DNYNRV+LucidaBrightOT-DemiboldItalic CID Type 0C Identity-H yes yes yes 49 0 -YHDTXW+LucidaSansOT CID Type 0C Identity-H yes yes yes 50 0 -TSYNBM+LucidaSansOT-Italic CID Type 0C Identity-H yes yes yes 51 0 -ZBOWTG+LucidaSansOT-Demibold CID Type 0C Identity-H yes yes yes 56 0 -CBPZCR+LucidaSansOT-DemiboldItalic CID Type 0C Identity-H yes yes yes 57 0 -XULIVE+LucidaSansTypewriterOT-Bold CID Type 0C Identity-H yes yes yes 58 0 -RCJVJU+LucidaSansTypewriterOT-BoldOblique CID Type 0C Identity-H yes yes yes 59 0 -AHHNBA+LucidaGrandeMonoDK CID Type 0C Identity-H yes yes yes 60 0 -NIAALZ+LucidaGrandeMonoDK-Italic CID Type 0C Identity-H yes yes yes 65 0 -CGHAFT+LucidaGrandeMonoDK-Bold CID Type 0C Identity-H yes yes yes 66 0 -QRPBBK+LucidaGrandeMonoDK-BoldItalic CID Type 0C Identity-H yes yes yes 67 0 -BBEZKA+LucidaConsoleDK CID Type 0C Identity-H yes yes yes 68 0 -ZJFTAW+LucidaConsoleDK-Italic CID Type 0C Identity-H yes yes yes 69 0 -UBFFLP+LucidaConsoleDK-Bold CID Type 0C Identity-H yes yes yes 70 0 -DTAMTW+LucidaConsoleDK-BoldItalic CID Type 0C Identity-H yes yes yes 75 0 -FOWDUC+LucidaBlackletterOT CID Type 0C Identity-H yes yes yes 76 0 -BRNAUX+LucidaCalligraphyOT-Italic CID Type 0C Identity-H yes yes yes 77 0 -GSIBVZ+LucidaHandwritingOT-Italic CID Type 0C Identity-H yes yes yes 78 0 -YBYGGX+LucidaBrightMathOT CID Type 0C Identity-H yes yes yes 79 0 -FHKOND+LucidaBrightMathOT CID Type 0C Identity-H yes yes yes 80 0 -IJDQZC+LucidaBrightMathOT CID Type 0C Identity-H yes yes yes 81 0 -XVGNVQ+LucidaBrightMathOT-Demibold CID Type 0C Identity-H yes yes yes 90 0 -MVXVTK+LucidaBrightMathOT-Demibold CID Type 0C Identity-H yes yes yes 91 0 -TRUGVI+LucidaBrightMathOT-Demibold CID Type 0C Identity-H yes yes yes 92 0 diff --git a/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.pdf b/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.pdf Binary files differindex 0d86ac7c..ed6d7e52 100644 --- a/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.pdf +++ b/texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.pdf diff --git a/texmf-dist/doc/latex/mathtime-ltx/mathtime.txt b/texmf-dist/doc/latex/mathtime-ltx/mathtime.txt new file mode 100644 index 00000000..087b3008 --- /dev/null +++ b/texmf-dist/doc/latex/mathtime-ltx/mathtime.txt @@ -0,0 +1,74 @@ +%% Copyright 1996 1997 Frank Mittelbach David Carlisle +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com + + + The `mathtime' package for accessing MathTime fonts + =================================================== + Frank Mittelbach David Carlisle + + +This package enables the use of MathTime (including MathTime Plus) +fonts in LaTeX documents. + +The basic usage is simply to add \usepackage{mathtime} to your +document preamble, however there are several options to control the +behaviour, as described in the documentation. + +Installation +============ + (Please note instructions differ depending on whether + or not the MathTime Plus font set is available, and on + the age of your LaTeX.) + +1) +If you are using a Case Sensitive file system (such as UNIX) +and your LaTeX is older then the release of 1996/12/01 then edit the +file mathtime.ins to uncomment the line that is marked by the first + %%%% IMPORTANT NOTE %%%%%. +This will cause `fd' files to be written in the old style (MY1mtt.fd) +rather than the new style (my1mtt.fd). On DOS or other case insensitive +systems this step may be omitted as MY1mtt.fd and my1mtt.fd refer to +the same file. + +2) +If you have the basic MathTime font set, but not the bold math fonts +and other fonts that make up the MathTime Plus (or MathTime Complete) +font sets, then you should edit mathtime.ins to uncomment the line +marked by the second + %%%% IMPORTANT NOTE %%%%%. +This will cause the fd files written by the installation process +to refer to the more restricted set of fonts that you have available. + +3) +The documented source of the packages is the file mathtime.dtx. +The sources of the `font descriptor files' that make the external +font files known to LaTeX are in the file mtfonts.fdd. + +To generate the package files and font descriptor files you should +run: + +latex mathtime.ins + +An identical mathtime.sty will be produced however you may have +edited mathtime.ins, but the `fd' files will be modified to match +your local installation, as documented above. + +In addition to mathtime.sty, a package mathpi.sty will also be produced +making available math fonts from the Adobe Math Pi font set. +These .sty files and all the .fd files that are produced should be +placed in a directory on TeX's input path. + +A PostScript header file, mh2scr.enc will also be produced +this will need to be included by your dvi driver if you are using the +Adobe Math Pi 2 font. + +Further documentation on the packages may be obtained by running LaTeX +on the document sources, typically by a command such as + +latex mathtime.dtx + + + + diff --git a/texmf-dist/doc/latex/siam/README b/texmf-dist/doc/latex/siam/README new file mode 100644 index 00000000..cfa75021 --- /dev/null +++ b/texmf-dist/doc/latex/siam/README @@ -0,0 +1,22 @@ +This directory contains archives of macro packages for various SIAM +publications. For SIAM journal articles written in LaTeX, download siamltex.zip +and see the header of siamltex.cls within for more instructions. For other +publications, ask your editor what is needed. + +You are not allowed to change the files in these archives. + +You are allowed to distribute a file in an archive under the condition that it +is distributed together with all other files in that archive. If you receive +only some of the files in an archive from someone, complain! + +You are NOT ALLOWED to distribute any file in one of these archives by itself. +You are NOT ALLOWED to take money for the distribution or use of either one of +these files or a changed version of it, except for a nominal charge for copying +etc. + +In situations not covered by the above instructions, the LaTeX Project Public +License applies. + + +-- +Stephen Cipolone <cipolone@siam.org> 2006-11-29 diff --git a/texmf-dist/doc/latex/siam/ltexconf.all b/texmf-dist/doc/latex/siam/ltexconf.all new file mode 100644 index 00000000..2e4a638f --- /dev/null +++ b/texmf-dist/doc/latex/siam/ltexconf.all @@ -0,0 +1,112 @@ + +Please answer the following: + +1. Name of conference + +2. Type of Presentation + Contributed: Lecture form + Poster form + Minisymposium: + +3. Equipment for Visual Support + Lecture Form/Minisymposium: + Overhead Projector + 2" x 2" Slide Projector (35mm) + Poster Form: + Easel Poster Board + Other (specify) + +More sophisticated equipment can be provided, but you may be +required to pay the rental fee. For details, indicate your +requirements below: + + +4. If you are a speaker in a minisymposium, who is the organizer? + +5. What is the minisymposium title? + +6. If more than one author, who will present the paper? + +% This is a macro file for creating a SIAM Conference abstract in +% LaTeX. +% +% If you have any questions regarding these macros contact: +% Lillian Hunt +% SIAM +% 3600 University City Center Center +% Philadelphia, PA 19104-2688 +% USA +% (215) 382-9800 +% e-mail:meetings@siam.org + + +\hsize=25.5pc +\vsize=50pc +\textheight 50pc +\textwidth 25.5pc +\parskip 0pt +\parindent 0pt +\pagestyle{plain} + +\def\title#1{\bf{#1}\vspace{6pt}} +\def\abstract#1{\rm {#1}\vspace{6pt}} +\def\author#1{\rm {#1}\vfill\eject} + +% end of style file + +% This is ltexconf.tex. Use this file as an example file for doing an SIAM +% Conference abstract in LaTeX. + + +\documentstyle[ltexconf]{report} +\begin{document} + +\title{Numerical Analysis of a 1-Dimensional +Immersed-Boundary\\ Method} + +\abstract{We present the numerical analysis of a simplified, +one-dimensional version +of Peskin's immersed boundary method, which has been used to +solve +the two- and three-dimensional Navier-Stokes equations in the +presence of immersed boundaries. We consider the heat +equation + in a finite domain with a moving source term. +We denote the solution as $u(x,t)$ and the location of the +source + term as $X(t)$. The source term is a moving delta function +whose strength is a function of u at the location of the +delta function. +The p.d.e. is coupled to an ordinary differential equation +whose +solution gives the location of the source term. + The o.d.e. is $X'(t) = u(X(t),t)$, which can be interpreted as +saying the source term moves at the local velocity. +The accuracy the numerical method of solution depends on how +the +delta function is discretized when the delta function is not +at +a grid point and on how the solution, u, is represented + at locations between grid points. We present results showing +the effect of different choices of spreading the source to +the grid and +of restricting the solution to the source location. +The problem we analyze is also similar to the Stefan problem +and +the immersed-boundary method has features in common with +particle-in-cell + methods.} +\author{\underbar{Richard P. Beyer, Jr.}\\ +University of Washington, Seattle, WA\\ +Randall J. LeVeque\\ +University of Washington, Seattle, WA} + +\end{document} + +% end of example file. + + + +Please furnish complete addresses all co-authors. + +PLEASE INDICATE WHAT CONFERENCE ABSTRACT IS FOR. diff --git a/texmf-dist/doc/latex/siam/ltexnec.all b/texmf-dist/doc/latex/siam/ltexnec.all new file mode 100644 index 00000000..9b22936a --- /dev/null +++ b/texmf-dist/doc/latex/siam/ltexnec.all @@ -0,0 +1,1923 @@ + +This file (ltexnec.all) constitutes the full distribution for NEC Proceedings +Series LaTeX version macros. The files included here are: + +ltexnec.tex (An example file, also containing documentation) + +ltexnec.sty (The style file) + +siamproc.bst (for BiBTeX users) + +To use these macros, separate the files at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% This is ltexnec.tex, an example file for use with the NEC +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siam.bst has been +%% included for use with BiBTeX. Please be sure to include the appropriate +%% .bib file with BiBTeX submissions. You may also submit the .bbl file +%% instead of the .bib file. +%% +%% 3. Unless otherwise stated by your editor, do your chapter as if it +%% is Chapter 1. The appropriate chapter number will be included during +%% the production of the proceedings. +%% +%% 4. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 5. The running heads are indicated by the \markboth command. Please +%% define the running heads by placing the authors last names in the +%% first field and the title of the paper in the second field. +%% They should be typed initial cap and lower case. Please see the example. +%% Neither field can contain more than 50 characters including spaces, +%% so please use a shortened version of the title if necessary. For +%% papers with multiple authors please follow these rules; for +%% two authors type {Author 1 and Author 2}; for more that two authors type +%% {Author 1 et al.}. +%% +%% 6. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 7. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 8. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. SIAM supports the use of +%% psfig for including Postscript figures. All Postscript figures should be +%% sent as separate files. A hardcopy version of all Postscript figures +%% is also required. See note regarding this under How to Submit Your Paper. +%% +%% 9. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% 10. Special fonts. +%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As +%% described in the manual for these fonts, they can be included by +%% \input{amssym.def} and \input{amssym.tex}. These macros are not yet +%% updated to make use of the New Font Selection Scheme (NFSS) of +%% Mittelbach and Schopf. To make these macros compatible with NFSS, use +%% the oldlfont style option. +%% +%% 11. How to Submit Your Paper. +%% The electronic version of your paper should be sent to proceed@siam.org. +%% A hardcopy version must also be submitted. Instructions are included +%% in your acceptance letter. Please be sure to send hardcopy +%% versions of any Postscript figures you have submitted electronically. +%% Be sure to return your signed Copyright Transfer Agreement. We cannot +%% publish your paper without it. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + + +\documentstyle[leqno,twoside,11pt,ltexnec]{article} %You must set up your + %\documentstyle line like this. + + +\begin{document} +\cleardoublepage +\pagestyle{myheadings} + +\title{Chapter 1\\ +NEC Proceedings Series Macros\\ + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle +\markboth{Gray et al.}{SIAM Proceedings Series Macros} % See section 5 above + % for explanation. +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, AcademicŒ Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schrieber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% +% +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the NEC Proceedings series using LaTeX. + +% Report the version. +\message{*** NEC LaTeX Proceedings Series macro package, version 1.0, +July 10, 1992 ***} +%\input proceed.sty + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=49pc +\hsize=30pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 17pt +\textheight 49pc \advance\textheight by \topskip +\textwidth 30pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is +%.4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@evenfoot{{\hfil\small\thepage\hfil}}% +\def\@oddhead{} + \def\@evenhead{}%\def\@evenfoot{} +} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\small\leftmark}\hfil}% + +\def\@oddhead{\hfil{\noindent\small\rightmark}\hspace*{2pc}{\rm\thepage}}% + +% \def\chaptermark##1{\markboth{\uppercase{% + % {\protect\small\@chapapp}\ +%{\protect\small\thechapter}}}% + % {\uppercase{##1}}}% + } + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + +\def\@oddhead{\hfil{\small\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}} +% + +\def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\small\leftmark}\hfil} +% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +} + + + +\def\theequation{\arabic{equation}} +%\def\theequation{\arabic{chapter}.\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}} +} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}} +} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\#2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\#2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +\def\trivlist{\parsep\outerparskip + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\parindent \def\makelabel##1{##1}} + +\def\@trivlist{\topsep=0pt\@topsepadd\topsep + \if@noskipsec \leavevmode \fi + \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi + \if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep\@topsepadd \fi + \advance\@topsep \parskip + \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi}% + \global\@newlisttrue \@outerparskip\parskip} + + +\def\endtrivlist{\if@newlist\@noitemerr\fi + \if@inlabel\indent\fi + \ifhmode\unskip \par\fi + \if@noparlist \else + \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi\@endparenv\fi + \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Corollary}{Corollary}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% CHAPTER % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\def\@chapapp{Chapter} + +%\def\@makechapterhead#1{% + % \vspace*{8pt} + % \vtop to 11pc{\leftskip=0pc \parindent 0pt + % \begin{center}{\large \@chapapp}%\end{flushright}%%% + % {\large \baselineskip=26pt\ \thechapter}\end{center}\vskip-8pt +% \vrule width 31pc height .5pt\par % + % \vspace*{6pt}% + % \baselineskip=18pt\begin{center}{\Large#1 }\end{center}\par + % \vfil}} + +%\def\@makeschapterhead#1{% + % \vspace*{8pt} + % \vtop to 11pc{\leftskip=0pc \parindent 0pt + % \vtop to 26pt{\vfill}\vskip-8pt + % \vrule width 31pc height .5pt\par % +% % \vspace*{6pt}% + % {\Large #1}\par + % \vfil}} + + +%\def\chapter{\cleardoublepage \thispagestyle{plain} \global\@topnum\z@ + % \@afterindentfalse \secdef\@chapter\@schapter} + +%\def\author#1{\vspace*{-6.25pc}\begin{center}{#1}\end{center} + % \par\vspace*{4pc}} +%\def\chaptermark#1{} + +%\def\@chapter[#1]#2{% + % \refstepcounter{chapter} + % \typeout{Chapter\space\thechapter.} +% % \addcontentsline{toc}{chapter}{CHAPTER\ \thechapter. #1} + % \protect\addtocontents{lof}{\protect\addvspace{10pt}} + % \protect\addtocontents{lot}{\protect\addvspace{10pt}} + % \chaptermark{#1} + % \@makechapterhead{#2} + % \@afterheading} + + + +%\def\@schapter#1{\@makeschapterhead{#1} + % \@afterheading} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}{2.3ex plus .2ex}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}{1.5ex plus .2ex}{\large\bf}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus + -1ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}} +%\renewcommand{\section}{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex +%minus +% -.2ex}{2.3ex plus .2ex}{\large\bf}} + +%\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth +% \def\@svsec{}\else +% \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname.\hskip .75em +%}\fi% +% + % \@tempskipa #5\relax + % \ifdim \@tempskipa>\z@ + % \begingroup #6\relax + % \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par} + % \endgroup +% \csname #1mark\endcsname{#7}\addcontentsline + %{toc}{#1}{\ifnum #2>\c@secnumdepth \else + % \protect\numberline{\csname the#1\endcsname}\fi + % #7}\else + % \def\@svsechd{#6\hskip #3\@svsec #8\hskip1em\csname #1mark\endcsname + + % {#7}\addcontentsline + % {toc}{#1}{\ifnum #2>\c@secnumdepth \else + % \protect\numberline{\csname the#1\endcsname}\fi + % #7}}\fi + % \@xsect{#5}} + + + %\@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} +%\def\section{\@startsection{section}{1}{0pt}{-12pt}{3pt}{\hyphenpenalty=\@ +%M +%\exhyphenpenalty=\@M\normalsize\bf}} +%\def\subsection{\@startsection{subsection}{2}{0pt}{-12pt}{0pt}{\normalsize +%\bf} +%} +%\def\subsubsection{\@startsection +% {subsubsection}{3}{0pt}{-12pt}{0pt}{\normalsize\bf}} +%\def\paragraph{\@startsection +% {paragraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} +%\def\subparagraph{\@startsection +% {subparagraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} +%\def\thepart{\Roman{part}} +%\def\thesection {\arabic{section}.} +%\def\thesubsection {\thesection\arabic{subsection}.} +%\def\thesubsubsection {\thesubsection .\arabic{subsubsection}.} +%\def\theparagraph {\thesubsubsection.\arabic{paragraph}.} +%\def\thesubparagraph {\theparagraph.\arabic{subparagraph}.} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TOC % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% sets chapter in toc +%\def\l@chapter#1#2{\pagebreak[3] +% \hbox to \hsize{\null\hskip2pc +% \llap{\hbox to\@pnumwidth{\hss#2}\hskip2pc}% +% #1\hfill}\vskip1pc} + + +%%% set so only chapters print in TOC +%\def\@dottedtocline#1#2#3#4#5{\relax} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=12pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + +%\def\thebibliography#1{% +%\cleardoublepage +%\parindent 0em +%\vspace{9pt} +%\begin{flushleft}\Large\bf{References} \end{flushleft} +%\addvspace{3pt}\nopagebreak\list +%% %% default is no labels, for those not using \cite or BibTeX +%%% {[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +%%{}{\settowidth\labelwidth{mm} +%\leftmargin\labelwidth +%\advance +%\leftmargin 0pt \itemindent -16pt +% \usecounter{enumi}\@bibsetup} +%\def\newblock{\hskip .11em plus .33em minus -.07em} +% \sloppy\clubpenalty4000\widowpenalty4000 +% \sfcode`\.=1000\relax} + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of original style file + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names }% scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib}
\ No newline at end of file diff --git a/texmf-dist/doc/latex/siam/ltexproc.all b/texmf-dist/doc/latex/siam/ltexproc.all new file mode 100644 index 00000000..61283eec --- /dev/null +++ b/texmf-dist/doc/latex/siam/ltexproc.all @@ -0,0 +1,1784 @@ + + +This file constitutes the full distribution for SIAM Proceedings +Series LaTeX version macros. The files included here are: + +ltexproc.tex (An example file, also containing documentation) + +ltexproc.sty (The style file) + +siamproc.bst (for BiBTeX users) + +To use these macros, separate the files at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ltexproc.tex, an example file for use with the SIAM LaTeX +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siamproc.bst has been +%% included for use with BiBTeX. Please be sure to include the appropriate +%% .bib file with BiBTeX submissions. You may also submit the .bbl file +%% instead of the .bib file. +%% +%% 3. Unless otherwise stated by your editor, do your chapter as if it +%% is Chapter 1. The appropriate chapter number will be included during +%% the production of the proceedings. +%% +%% 4. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 5. The running heads are indicated by the \markboth command. Please +%% define the running heads by placing the authors last names in the +%% first field and the title of the paper in the second field. +%% They should be typed initial cap and lower case. Please see the example. +%% Neither field can contain more than 50 characters including spaces, +%% so please use a shortened version of the title if necessary. For +%% papers with multiple authors please follow these rules; for +%% two authors type {Author 1 and Author 2}; for more that two authors type +%% {Author 1 et al.}. +%% +%% 6. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 7. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 8. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. SIAM supports the use of +%% psfig for including Postscript figures. All Postscript figures should be +%% sent as separate files. A hardcopy version of all Postscript figures +%% is also required. See note regarding this under How to Submit Your Paper. +%% +%% 9. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% 10. Special fonts. +%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As +%% described in the manual for these fonts, they can be included by +%% \input{amssym.def} and \input{amssym.tex}. These macros are not yet +%% updated to make use of the New Font Selection Scheme (NFSS) of +%% Mittelbach and Schopf. To make these macros compatible with NFSS, use +%% the oldlfont style option. +%% +%% 11. How to Submit Your Paper. +%% The electronic version of your paper should be sent to proceed@siam.org. +%% A hardcopy version should also be submitted. Instructions are included +%% in your acceptance letter. Please be sure to send hardcopy +%% versions of any Postscript figures you have submitted electronically. +%% Be sure to return your signed Copyright Transfer Agreement. We cannot +%% publish your paper without it. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + + +\documentstyle[leqno,twoside,11pt,ltexproc]{article} %You must set up your + %\documentstyle line like this. + + +\begin{document} +\cleardoublepage +\pagestyle{myheadings} + +\title{Chapter 1\\ +SIAM Proceedings Series Macros\\ + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle +\markboth{Gray et al.}{SIAM Proceedings Series Macros} % See section 5 above + % for explanation. +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schreiber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ltexproc.sty. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the SIAM Proceedings series using LaTeX. + +% Report the version. +\message{*** SIAM LaTeX Proceedings Series macro package, version 1.0, +November 6, 1992 ***} + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=56pc +\hsize=36pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 15pt +\textheight 53.5pc \advance\textheight by \topskip +\textwidth 36pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% + \def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}% + \def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +}} + + + +\def\theequation{\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +\def\trivlist{\parsep\outerparskip + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\parindent \def\makelabel##1{##1}} + +\def\@trivlist{\topsep=0pt\@topsepadd\topsep + \if@noskipsec \leavevmode \fi + \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi + \if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep\@topsepadd \fi + \advance\@topsep \parskip + \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi}% + \global\@newlisttrue \@outerparskip\parskip} + + +\def\endtrivlist{\if@newlist\@noitemerr\fi + \if@inlabel\indent\fi + \ifhmode\unskip \par\fi + \if@noparlist \else + \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi\@endparenv\fi + \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}%{2.3ex plus .2ex} +{2pt}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}%{1.5ex plus .2ex} +{2pt}{\large\bf}} +\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus + .2ex}{-.5em plus -.1em}{\normalsize\bf}} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=17pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + + + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of style file + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is siamproc.bst +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names }% scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/texmf-dist/doc/latex/siam/makeindx/makeidx.doc b/texmf-dist/doc/latex/siam/makeindx/makeidx.doc new file mode 100644 index 00000000..6c501bd8 --- /dev/null +++ b/texmf-dist/doc/latex/siam/makeindx/makeidx.doc @@ -0,0 +1,9 @@ +% MAKEIDX DOCUMENT-STYLE OPTION FOR ARTICLE STYLE +% RELEASED 20 January 1987 -- for LaTeX version 2.09 +% Copyright (C) 1987 by Leslie Lamport, all rights reserved + +% Defines the \see and \printindex commands. + +\def\see#1#2{{\em see\/} #1} + +\def\printindex{\@input{\jobname.ind}} diff --git a/texmf-dist/doc/latex/siam/makeindx/makeindx.tex b/texmf-dist/doc/latex/siam/makeindx/makeindx.tex new file mode 100644 index 00000000..8e33eb0d --- /dev/null +++ b/texmf-dist/doc/latex/siam/makeindx/makeindx.tex @@ -0,0 +1,474 @@ +% makeindex.tex -- released 17 February 1987 +% Copyright(c) 1987 by Leslie Lamport +% for LaTeX version 2.09 +% +\documentstyle[11pt]{article} + +%&v&\verb|#|& +%&i&\verb|\index{#}|& +%&t&{\tt #}& +\newcommand{\MakeIndex}{{MakeIndex\/}} +\newcommand{\fn}{} +\newcommand{\ff} + + +% Definition of the iexample environment and \sindex command. +% They are used as follows: +% \begin{iexample} +% Page 7 & \verb|\index{foo}|\\ +% Page 22 & \verb|\index{bar}| +% \sindex +% bar, 22 \\ +% foo, 7 +% \end{iexample} +\newenvironment{iexample}{\begin{quote} + \begin{tabular}[t]{@{}ll||@{\hspace{1em}}}}{\end{tabbing}\end{minipage} + \end{quote}} +\newcommand{\sindex}{\end{tabular}\hspace{1em}\begin{minipage}[t]{\textwidth} + \begin{tabbing}} + +\newcommand{\sitem}{\hspace*{20pt}} +\newcommand{\ssitem}{\hspace*{30pt}} + + +\title{\MakeIndex: An Index Processor For \LaTeX} + +\author{Leslie Lamport} +\date{17 February 1987} +\begin{document} +\maketitle + +\section{How to Use \MakeIndex} + +\MakeIndex\ is a program for +making an index in a document generated with \LaTeX. The first step in +producing the index is to put the necessary \verb|\index| commands in +your document, as described in the next section. Here, I describe how +to generate the index after the \verb|\index| commands are in place. + +Let's suppose that the root file of your document is {\tt myfile.tex}. +You must make the following changes to your document: +\begin{itemize} + +\item Add the {\tt makeidx} document-style option to the list of +options in the \verb|\documentstyle| command. (See page 21 of the +\LaTeX\ manual.) + +\item Put a \verb|\makeindex| command in the preamble (between the + \linebreak%%%%% +\verb|\documentstyle| and \verb|\begin{document}| commands). + +\item Put a \verb|\printindex| command where you want the index to +appear---usually at the end, right before the \verb|\end{document}| +command. +\end{itemize} +You then run \LaTeX\ on your entire document, causing it to +generate the file {\tt myfile.idx}, which I will call the {\tt idx} file. +Next, run the \MakeIndex\ program by +typing the following Unix command: +\begin{quote} + {\tt makeindex myfile.idx} +\end{quote} +This produces the file {\tt myfile.ind}, which I will call the {\tt +ind} file. If \MakeIndex\ generated no error messages, you can now rerun +\LaTeX\ on your document and the index will appear. (You can remove +the \verb|\makeindex| command first so the {\tt idx} file is not +regenerated.) If there were error messages, see +Section~\ref{sec:errors}. + +By reading the index, you may discover additional mistakes. These should be +corrected by changing the appropriate \verb|\index| commands in the +document and regenerating the {\tt ind} file. If there are +problems that cannot be corrected in this way, you can always edit +the {\tt ind} file directly. However, such editing is to be +avoided because it must be repeated every time you generate a new +version of the index. + + +\section{How to Generate Index Entries} + +\subsection{When, Why, What, and How to Index} + +It's tempting to generate the index as you write the document. Resist +the temptation. It is virtually impossible to obtain any consistency +in an index that is generated in this way. + +An index is there to help the reader find what he's looking for. With +this in mind, common sense can help in figuring out what should be in +the index and how it should be organized. Since it's often hard to +distinguish common sense from equally common nonsense, professional +advice is useful. Many style guides discuss indexing; the pamphlet +{\em Indexing Your Book\/} by Sina Spiker (The University of Wisconsin +Press, 1954) is, according to its subtitle, ``A Practical +Guide for Authors''. + +Unfortunately, these guides to indexing seem to have been written when +high tech meant using a ball-point pen instead of a quill, so their +advice on the mechanics of creating an index revolve around how to +stack your $3\times 5$ index cards. You'll have to figure out your own +method of using the computer to lighten the chore. An alphabetical +list of every word in your document, with duplicates removed, is not a +bad place to start. If your system has Howard Trickey's {\tt delatex} +program, then the following Unix command generates such a list from the +file {\tt myfile.tex} and puts it on the file {\tt foo}: +\begin{quote} +\tt delatex myfile.tex | sort -uf > foo +\end{quote} + +The computer is only a tool; it can't write the index for you. It may +be easy to choose which words are important and mechanically generate +an index citing every occurrence of those words, but the resulting +index will not be as useful to the reader as one prepared with more +care. + + + + +\subsection{The Basics} + +Each \verb|\index| command causes \LaTeX\ to write an entry on the {\tt +idx} file. The following example shows some simple +\verb|\index| commands and the index entries that they produce. The +page number refers to the page containing the text where the +\verb|\index| command appears.\footnote{To avoid any ambiguity if a +page break occurs right at an {\tt \symbol{'134}index} command, it's a +good idea to attach the command to a word instead of putting it between +words.} +\begin{iexample} +Page ii & \verb|\index{Alpha}| \\ +Page viii: & \verb|\index{alpha}| \\ +Page ix: & \verb|\index{alpha}| \\ + & \verb|\index{Alphabet}| \\ +Page 22: & \verb|\index{alpha}| \\ + & \verb|\index{alphas}| \\ +Page 23: & \verb|\index{alphabet}| \\ + & \verb|\index{alphabet}| \\ +Page 24: & \verb|\index{alpha bet}| +\sindex +Alpha, ii \\ +alpha, viii, ix, 22 \\ +alpha bet, 24\\ +Alphabet, ix\\ +alphabet, 23\\ +alphas, 22 +\end{iexample} +Note that the duplicate \verb|\index{alphabet}| commands on +page 23 produce only one ``23'' in the index. + + +To produce a subentry, the argument of the \verb|\index| +command should contain both the main entry and the subentry, separated +by a \verb|!| character. +\begin{iexample} +Page 7: & \verb|\index{gnat!size of}| \\ +Page 32: & \verb|\index{gnat}| \\ +Page 35: & \verb|\index{gnat!anatomy}| \\ + & \verb|\index{gnus!good}| \\ +Page 38: & \verb|\index{gnus!bad}| \\ + & +\sindex +gnat, 32 \\ +\sitem anatomy, 35 \\ +\sitem size of, 7\\ +gnus \\ +\sitem bad, 38\\ +\sitem good, 35 +\end{iexample} +You can also have subsubentries. +\begin{iexample} +Page 8: & \verb|\index{bites!animal!gnats}| \\ +Page 10: & \verb|\index{bites!animal!gnus}| \\ +Page 12 : & \verb|\index{bites!vegetable}| \\ + & \\ + & +\sindex +bites \\ +\sitem animal \\ +\ssitem gnats, 8 \\ +\ssitem gnus, 10 \\ +\sitem vegetable, 12 +\end{iexample} +\LaTeX\ and \MakeIndex\ support only three levels of indexing; you +can't have subsubsubentries. + + +To specify a page range, put an \verb/\index{...|(}/ +command at the beginning of the range and an \verb/\index{...|)}/ +command at the end of the range. +\begin{iexample} +Page vi: & \verb/\index{gnat|(}/ \\ +Page x: & \verb/\index{gnat|)}/ \\ +Page 22: & \verb|\index{gnat}| \\ + & \verb/\index{gnus!bad|(}/ \\ + & \verb/\index{gnus!bad|)}/ \\ +Page 28: & \verb/\index{gnus!good|(}/ \\ +Page 30: & \verb|\index{gnus!good}| \\ +Page 32: & \verb/\index{gnus!good|)}/ +\sindex +gnat, vi--x, 22 \\ +gnus \\ +\sitem bad, 22\\ +\sitem good, 28--32 +\end{iexample} +Note that \MakeIndex\ does the right thing when both ends of the range +fall on the same page.\footnote{The use of ``28ff.'' rather than +``28--32'' is frowned upon by the experts.} + +Sometimes, you want to add a cross-reference with no page +number. This is done as follows; +\begin{iexample} +Page 2: & \verb|\index{at}| \\ +Page 2: & \verb/\index{at!bat|see{bat, at}}/ +\sindex +at, 2 \\ +\sitem bat, {\em see\/} bat, at +\end{iexample} +Since the ``see'' entry does not print any page number, it doesn't +matter where the \verb/\index{...|see{...}}/ command goes, so +long as it follows the \verb|\begin{document}| command. You +might want to put all such cross-referencing commands in one place. + + +If you specify an entry of the form $\sigma$\verb|@|$\tau$, the string +$\sigma$ determines the alphabetical position of the entry, while the +string $\tau$ produces the text of the entry. +\begin{iexample} +Page 44: & \verb|\index{twenty}| \\ +Page 46: & \verb|\index{twenty-one}| \\ +Page 55: & \verb|\index{twenty@xx}| +\sindex +twenty, 44 \\ +xx, 55 \\ +twenty-one, 46 +\end{iexample} +This feature is useful because the argument of the \verb|\index| +command provides the actual input string that \LaTeX\ uses to generate +the index entry. In the following example, the input \verb|$\alpha$| +produces the symbol $\alpha$, +\begin{iexample} +Page 12: & \verb|\index{alphas}| \\ +Page 13: & \verb|\index{alpha}| \\ +Page 14: & \verb|\index{alpha@$\alpha$}| +\sindex +alpha, 13 \\ +$\alpha$, 14 \\ +alphas, 12 +\end{iexample} +Similarly, the command \verb|\index{gnu@{\bf gnu}}| produces +a boldface {\bf gnu} index entry. + +In some indexes, certain page numbers are specially formatted---for +example, an italic page number may indicate the primary reference, and +an {\em n\/} after a page number may denote that the item appears in a +footnote on that page. \MakeIndex\ makes it easy to format an +individual page number any way you want. For any string of characters +$\sigma$, the command \verb/\index{...|/$\sigma$\verb|}| produces a +page number of the form \verb|\|$\sigma$\verb|{|$n$\verb|}|. +Similarly, the command \verb/\index{...|(/$\sigma$\verb|}| may produce +a page number of the form \verb|\|$\sigma$\verb|{|$n$--$m$\verb|}|. +Thus, suppose the document contains the following command definitions: +\begin{quote} +\verb|\newcommand{\ii}[1]{{\it #1}}| \\ +\verb|\newcommand{\nn}[1]{#1n}| +\end{quote} +We could then have: +\begin{iexample} +Page 3: & \verb/\index{gnat|ii}/ \\ +Page 4: & \verb/\index{gnat|nn}/ \\ +Page 5: & \verb/\index{gnu}/ \\ +Page 44: & \verb/\index{gnu|(ii}/ \\ +Page 46: & \verb/\index{gnu|)}/ +\sindex +gnat, {\em 3}, 4n \\ +gnu, 5, {\em 44--46} +\end{iexample} +The ``see'' option is a special case of this facility, where the +\verb|\see| command is predefined by the {\tt makeidx} document-style +option. + + +\subsection{The Fine Print} + +Commands in an index entry are expanded when the index is typeset, +not when the {\tt idx} file is written. Hence, the command +\verb|\index{\gnu}| produces an entry that is alphabetized by +\verb|\gnu|, regardless of how the \verb|\gnu| command is defined. + +Recall that special characters like \verb|\| may appear in the argument +of an \verb|\index| command only if that command is not itself +contained in the argument of another command. This is most likely to +be a problem when indexing items in a footnote. Even in this case, +robust commands can be placed in the ``\verb|@|'' part of an entry, as +in \verb|\index{gnu@{\it gnu}}|, and fragile commands can be used +if protected with the \verb|\protect| command.\footnote{In +versions of \LaTeX\ released before 3 February 1987, you must +use the {\tt\symbol{'134}string} command instead of +{\tt\symbol{'134}protect}.} + +Remember that the argument of an \verb|\index| command must always have +matching braces, where the brace in a \verb|\{| or \verb|\}| command +counts. + +\MakeIndex\ assumes that all page numbers are either arabic or lower-case +roman numerals; it assumes that pages numbered with roman numerals +precede those numbered with arabic numerals. + +To put a \verb|!|, \verb|@|, or \verb/|/ character in an index entry, +{\em quote\/} it by preceding the character with a \verb|"|. More +precisely, any a character is said to be quoted if it follows an +unquoted \verb|"| that is not part of a \verb|\"| command. A quoted +\verb|!|, \verb|@|, or \verb/|/ character is treated like an +ordinary character rather than having its usual meaning. The +\verb|"| preceding a quoted character is deleted before the +entries are alphabetized. +\begin{iexample} +Page 2: & \verb|\index{exclaim ("!)}| \\ +Page 3: & \verb|\index{exclaim ("!)!loudly}| \\ +Page 4: & \verb|\index{fur@f\"{u}r}| \\ +Page 5: & \verb|\index{quote (\verb+""+)}| +\sindex +exclaim (!), 2 \\ +\sitem loudly, 3\\ +f\"{u}r, 4\\ +quote (\verb+""+), 5 +\end{iexample} + + +\MakeIndex\ regards spaces as ordinary characters when alphabetizing the +entries and deciding whether two entries are the same. Thus, letting +``\verb*| |'' denote a space character, the commands +\verb*|\index{gnu}|, \verb*|\index{ gnu}|, and \verb*|\index{gnu }| +produce three separate entries, the first appearing near the beginning +of the index, since \verb*| | comes before any letter in \MakeIndex's +``alphabetical'' order. All three entries look the same when +printed, since \LaTeX\ ignores extra spaces in the input. Similarly, + \verb*|\index{a space}| and \verb*|\index{a space}| produce two +different entries that look the same when printed. Do not +split the argument of an \verb|\index| command across lines in the +input file. + + + +\section{Error Messages} \label{sec:errors} + +\MakeIndex\ types out on the terminal the number of lines read and +written and how many errors were found. Message to identify the error +are written on a file with extension {\tt ilg}. There are two phases +in which \MakeIndex\ can produce error messages: when it is reading the +{\tt idx} file, and when it is writing the {\tt ind} file. Each error +message prints the nature of the error followed by a line number, +identifying where in the file the error occurs. In the reading phase, +the line number refers to the {\tt idx} file; in the writing phase, it +refers to the {\tt ind} file. + +\subsection{Errors in Reading Phase} + +\subsubsection*{\tt Extra `!' at position ...} + +The \verb|\index| command's argument has more than two unquoted +\verb|!| characters. Perhaps some of them should be quoted. + +\subsubsection*{\tt Extra `@' at position ...} + +The \verb|\index| command argument has two or more unquoted \verb|@| +characters with no intervening \verb|!|. Perhaps one of the \verb|@| +characters should be quoted. + +\subsubsection*{\tt Extra `|' at position ...} + +The \verb|\index| command's argument has more than one unquoted \verb|!| +characters. Perhaps the extras should be quoted. + +\subsubsection*{\tt Illegal null field} + +The \verb|\index| command argument doesn't make sense because some +string is null that shouldn't be. The command \verb|\index{!big}| will +produce this error, since it specifies a subentry ``big'' with no +entry. Similarly, the command \verb|\index{@big}| is incorrect because +it specifies a null string for alphabetizing. + +%\subsubsection*{\tt No \symbol{'134}indexentry} +% +%Each line of an {\tt idx} file written by \LaTeX\ should contain an +%\verb|\indexentry| command. \MakeIndex\ has found a line in the {\tt idx} +%file that does not contain an \verb|\indexentry| command. The {\tt +%idx} file has probably been corrupted. +% +%\subsubsection*{\tt Missing \symbol{'173}} +% +%\MakeIndex\ believes that the braces in the argument of the \verb|\index| +%command are not properly matched. Since \LaTeX\ must +%have thought that the braces were properly matched, the problem +%is probably due to a corrupted {\tt idx} file. +% +%\subsubsection*{\tt Missing \symbol{'175}} +% +%See ``{\tt Missing \symbol{'173}}'' error. + +\subsubsection*{\tt Argument ... too long (max 1024).} + +Your document contained an \verb|\index| command with a very long +argument. You probably forgot the right brace that was supposed +to delimit the argument. + +\subsubsection*{Other errors} + +\MakeIndex\ can produce a variety of other error messages indicating +that something is seriously wrong with the {\tt idx} file. If you +get one, it probably means that the {\tt idx} file was corrupted in +some way. If \LaTeX\ did not generate any errors when it created +the {\tt idx} file, then it is highly unlikely to have produced +a bad {\tt idx} file. If it did, you'll have to examine the +{\tt idx} file to figure out what went wrong. + + +\subsection{Errors in Writing Phase} + +\subsubsection*{\tt Unmatched range opening operator} + +An \verb/\index{...|(}/ command was not followed by a matching + \linebreak%%%%% +\verb/\index{...|)}/ command. The ``\verb|...|'' in the two +commands must be completely identical. + + +\subsubsection*{\tt Unmatched range closing operator } + +An \verb/\index{...|(}/ command was not preceded by a matching + \linebreak%%%%% +\verb/\index{...|)}/ command. + +\subsubsection*{\tt Extra range opening operator } + +Two \verb/\index{...|(}/ commands appear in the document with no intervening +\verb/\index{...|)}/ command. + + + +\subsubsection*{\tt Inconsistent page encapsulator ... within range} + +\MakeIndex\ has been instructed to include a page range for an entry +and a single page number within that range that is formatted +differently---for example, by having a +\verb+\index{gnu|ii}+ command between a \verb+\index{gnu|(}+ +and a \verb+\index{gnu|)}+ command. + + +\subsubsection*{\tt Conflicting entries} + +\MakeIndex\ thinks it has been instructed to print the same page number +twice in two different ways---for example, by the commands +\verb|\index{gnu}| and \verb/\index{gnu|(see{...}}/ appearing on the +same page. + + + +\section*{Acknowledgements} + +\MakeIndex\ is a C program written by Pehong Chen, with a little +advice from me. It was inspired by a program written by Mike Urban, +which was based on a program written by Marshall Rose. Perhaps someday +someone will rewrite \MakeIndex\ in Web, making it available to all +\LaTeX\ users. + +\end{document} diff --git a/texmf-dist/doc/latex/siam/proc209.all b/texmf-dist/doc/latex/siam/proc209.all new file mode 100644 index 00000000..07ca3f1b --- /dev/null +++ b/texmf-dist/doc/latex/siam/proc209.all @@ -0,0 +1,1747 @@ + + +This file constitutes the full distribution for SIAM Proceedings +Series LaTeX version macros. The files included here are: + +proc209.tex (An example file, also containing documentation) + +proc209.sty (The style file) + +siamproc.bst (for BiBTeX users) + +To use these macros, separate the files at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc209.tex, an example file for use with the SIAM LaTeX 2.09 +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siamproc.bst has been +%% included for use with BiBTeX. +%% +%% 3. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 4. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 5. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 6. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. +%% +%% 7. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + + +\documentstyle[leqno,twoside,11pt,proc209]{article} %You must set up your + %\documentstyle line like this. + + +\begin{document} +\cleardoublepage +\pagestyle{plain} + +\title{SIAM Proceedings Series Macros + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle + +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schreiber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc209.sty. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the SIAM Proceedings series using LaTeX. + +% Report the version. +\message{*** SIAM LaTeX 2.09 Proceedings Series macro package, version 1.1, +October 28, 1996 ***} + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=56pc +\hsize=36pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 15pt +\textheight 53.5pc \advance\textheight by \topskip +\textwidth 36pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% + \def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}% + \def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +}} + + + +\def\theequation{\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +\def\trivlist{\parsep\outerparskip + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\parindent \def\makelabel##1{##1}} + +\def\@trivlist{\topsep=0pt\@topsepadd\topsep + \if@noskipsec \leavevmode \fi + \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi + \if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep\@topsepadd \fi + \advance\@topsep \parskip + \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi}% + \global\@newlisttrue \@outerparskip\parskip} + + +\def\endtrivlist{\if@newlist\@noitemerr\fi + \if@inlabel\indent\fi + \ifhmode\unskip \par\fi + \if@noparlist \else + \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi\@endparenv\fi + \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}%{2.3ex plus .2ex} +{2pt}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}%{1.5ex plus .2ex} +{2pt}{\large\bf}} +\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus + .2ex}{-.5em plus -.1em}{\normalsize\bf}} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=17pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + + + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of style file + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is siamproc.bst +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names }% scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/texmf-dist/doc/latex/siam/proc209.tex b/texmf-dist/doc/latex/siam/proc209.tex new file mode 100644 index 00000000..562caa29 --- /dev/null +++ b/texmf-dist/doc/latex/siam/proc209.tex @@ -0,0 +1,327 @@ +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc209.tex, an example file for use with the SIAM LaTeX 2.09 +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siamproc.bst has been +%% included for use with BiBTeX. +%% +%% 3. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 4. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 5. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 6. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. +%% +%% 7. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + + +\documentstyle[leqno,twoside,11pt,proc209]{article} %You must set up your + %\documentstyle line like this. + + +\begin{document} +\cleardoublepage +\pagestyle{plain} + +\title{SIAM Proceedings Series Macros + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle + +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schreiber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} diff --git a/texmf-dist/doc/latex/siam/proc2e.all b/texmf-dist/doc/latex/siam/proc2e.all new file mode 100644 index 00000000..b10bc47a --- /dev/null +++ b/texmf-dist/doc/latex/siam/proc2e.all @@ -0,0 +1,1746 @@ + + +This file constitutes the full distribution for SIAM Proceedings +Series LaTeX version macros. The files included here are: + +proc2e.tex (An example file, also containing documentation) + +proc2e.sty (The style file) + +siamproc.bst (for BiBTeX users) + +To use these macros, separate the files at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc2e.tex, an example file for use with the SIAM LaTeX2e +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siamproc.bst has been +%% included for use with BiBTeX. +%% +%% 3. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 4. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 5. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 6. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. +%% +%% 7. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + +\documentclass[twoside,leqno,11pt]{article} +\usepackage{proc2e} + + +\begin{document} +\cleardoublepage +\pagestyle{headings} + +\title{SIAM Proceedings Series Macros + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle + +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schreiber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc2e.sty. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the SIAM Proceedings series using LaTeX2e. + +% Report the version. +\message{*** SIAM LaTeX2e Proceedings Series macro package, version 1.1, +October 28, 1996 ***} + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=56pc +\hsize=36pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 15pt +\textheight 53.5pc \advance\textheight by \topskip +\textwidth 36pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% + \def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}% + \def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +}} + + + +\def\theequation{\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +%\def\trivlist{\parsep\outerparskip +% \@trivlist \labelwidth\z@ \leftmargin\z@ +% \itemindent\parindent \def\makelabel##1{##1}} +% +%\def\@trivlist{\topsep=0pt\@topsepadd\topsep +% \if@noskipsec \leavevmode \fi +% \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi +% \if@inlabel \@noparitemtrue \@noparlisttrue +% \else \@noparlistfalse \@topsep\@topsepadd \fi +% \advance\@topsep \parskip +% \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue +% \@setpar{\if@newlist\else{\@@par}\fi}% +% \global\@newlisttrue \@outerparskip\parskip} +% +% +%\def\endtrivlist{\if@newlist\@noitemerr\fi +% \if@inlabel\indent\fi +% \ifhmode\unskip \par\fi +% \if@noparlist \else +% \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip +% \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip +% \vskip\@tempskipa +% \fi\@endparenv\fi +% \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}%{2.3ex plus .2ex} +{2pt}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}%{1.5ex plus .2ex} +{2pt}{\large\bf}} +\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus + .2ex}{-.5em plus -.1em}{\normalsize\bf}} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=17pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + + + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of style file + +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is siamproc.bst +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names }% scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/texmf-dist/doc/latex/siam/proc2e.tex b/texmf-dist/doc/latex/siam/proc2e.tex new file mode 100644 index 00000000..a400ee08 --- /dev/null +++ b/texmf-dist/doc/latex/siam/proc2e.tex @@ -0,0 +1,326 @@ +%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc2e.tex, an example file for use with the SIAM LaTeX2e +% Proceedings Series macros. +% Please take the time to read the following comments, as they describe +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to +%% match the Proceedings series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. The file siamproc.bst has been +%% included for use with BiBTeX. +%% +%% 3. This macro is set up for three levels of headings (\section, +%% \subsection, and \subsubsection). The macro will automatically number +%% the headings for you. +%% +%% 4. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 5. Proofs are handled with the commands \begin{proof}\end{proof}. +%% If you wish to use an end of proof box, use \qed preceding \end{proof}. +%% The example uses one. It is not required. +%% +%% 6. Figures, equations, and tables must be single-numbered. All equation +%% numbers are to be on the left. Figure captions should be placed under +%% the figures they pertain to. Table captions should be placed above +%% the tables. Use existing LaTeX tags for these elements. Numbering of +%% these elements will be done automatically. +%% +%% 7. Grant information and author affiliations. +%% This information is included in the file with the two commands, +%% \thanks and \footnotemark []. (See example). The \thanks command +%% produces a footnote for the title or author, and places the +%% appropriate footnote symbol with the title or author and at the +%% bottom of the page. The \footnotemark [] command allows the use of +%% duplicate footnote symbols. This macro follows the normal LaTeX order +%% of footnote symbols. Below is a list of these symbols, and their +%% corresponding footnotemark: +%% +%% asterisk \footnotemark[1] +%% single-dagger \footnotemark[2] +%% double-dagger \footnotemark[3] +%% section sign \footnotemark[4] +%% paragraph \footnotemark[5] +%% parallel \footnotemark[6] +%% double asterisk \footnotemark[7] +%% double single-dagger \footnotemark[8] +%% double double-dagger \footnotemark[9] +%% +%% The following general rules for grants and affiliations apply: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, include the grant information +%% with each author's affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% d) For authors sharing the same affiliation, use \thanks for the +%% first author with that affiliation and the appropriate +%% \footnotemark[] (from the list above) for all subsequent authors +%% with that affiliation. +%% +%% +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%- +%%% + +\documentclass[twoside,leqno,11pt]{article} +\usepackage{proc2e} + + +\begin{document} +\cleardoublepage +\pagestyle{headings} + +\title{SIAM Proceedings Series Macros + for Use With LaTeX\thanks{Any information regarding grants should be placed +here.}} +\author{J. Corey Gray\thanks{Production Manager, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Tricia Manning\thanks{Publications Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA.} +\and +Vickie Kearn\thanks{Publisher, Society for Industrial and Applied Mathematics, +Philadelphia, PA.}\\ +\and +Nancy Abbott\thanks{Design Supervisor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Sue Ciambrano\thanks{Acquisitions Editor, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Paul Duggan\thanks{Composition Specialist, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Robbi Anne Albert\thanks{Production Assistant, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +\and +Jean Anderson\thanks{Composition Coordinator, Society for Industrial and Applied +Mathematics, Philadelphia, PA} +} +\date{} +\maketitle + +\pagenumbering{arabic} + +\begin{abstract}An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability. \end{abstract} +\section{Problem Specification}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +\cos \sin A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably.\qed +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +\begin{figure} +\vspace*{24pc} +\caption{This is figure 1.} +\end{figure} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness} +We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\subsubsection{Versatility.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\section{Conclusions} The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +\begin{thebibliography}{99} + + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schreiber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} + +\end{document} diff --git a/texmf-dist/doc/latex/siam/ptexconf.all b/texmf-dist/doc/latex/siam/ptexconf.all new file mode 100644 index 00000000..06e2a7f3 --- /dev/null +++ b/texmf-dist/doc/latex/siam/ptexconf.all @@ -0,0 +1,102 @@ + +Please answer the following: + +1. Name of conference +2. Type of Presentation + Contributed: Lecture form or Poster form + Minisymposium: + +3. Equipment for Visual Support + Lecture form/Minisymposium: Overhead Projector or + 2" x 2" Slide Projector (35mm) + + Poster form: Easel or Poster Board + +4. If you are a speaker in a minisymposium, who is the organizer? + +5. What is the minisymposium title? + +6. If more than one author, who will present the paper? + + +%This is a macro file for creating a SIAM Conference abstract in +% Plain Tex. +% +% If you have any questions regarding these macros contact: +% Lillian Hunt +% SIAM +% 3600 University City Center Center +% Philadelphia, PA 19104-2688 +% USA +% (215) 382-9800 +% e-mail:meetings@siam.org + + +\hsize=25.5pc +\vsize=50pc +\parskip=3pt +\parindent=0pt +\overfullrule=0pt +\nopagenumbers + +\def\title#1\\{\bf{#1}\vskip6pt} +\def\abstract#1\\{\rm {#1}} +\def\author#1\\{\vskip6pt\rm {#1}\vfill\eject} +\def\eol{\hfill\break} + +% end of style file + +% This is ptexconf.tex. Use this file as an example of a SIAM +% Conference abstract in plain TeX. + +\input ptexconf.sty + +\title Numerical Analysis of a 1-Dimensional +Immersed-Boundary Method\\ + +\abstract We present the numerical analysis of a simplified, +one-dimensional version +of Peskin's immersed boundary method, which has been used to +solve +the two- and three-dimensional Navier-Stokes equations in the +presence of immersed boundaries. We consider the heat +equation + in a finite domain with a moving source term. +We denote the solution as $u(x,t)$ and the location of the +source + term as $X(t)$. The source term is a moving delta function +whose strength is a function of u at the location of the +delta function. +The p.d.e. is coupled to an ordinary differential equation +whose +solution gives the location of the source term. + The o.d.e. is $X'(t) = u(X(t),t)$, which can be interpreted as +saying the source term moves at the local velocity. +The accuracy the numerical method of solution depends on how +the +delta function is discretized when the delta function is not +at +a grid point and on how the solution, u, is represented + at locations between grid points. We present results showing +the effect of different choices of spreading the source to +the grid and +of restricting the solution to the source location. +The problem we analyze is also similar to the Stefan problem +and +the immersed-boundary method has features in common with +particle-in-cell + methods.\\ +\author\underbar{Richard P. Beyer, Jr.}\eol +University of Washington, Seattle, WA\eol +%\vskip3pt +Randall J. LeVeque\eol +University of Washington, Seattle, WA\\ +\bye + +% end of example file + + +Please furnish complete addresses for all co-authors. + + +PLEASE BE SURE TO INDICATE WHAT CONFERENCE THE ABSTRACT IS FOR.
\ No newline at end of file diff --git a/texmf-dist/doc/latex/siam/ptexnec.all b/texmf-dist/doc/latex/siam/ptexnec.all new file mode 100644 index 00000000..2da4cfce --- /dev/null +++ b/texmf-dist/doc/latex/siam/ptexnec.all @@ -0,0 +1,707 @@ + + +This file (ptexnec.all) constitutes the full distribution of NEC Proceedings Series +Plain TeX macros. The files are: + +ptexnec.tex (An example file, also containing documentation) + +ptexnec.sty (the style file) + +To use these macros, separate at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ptexnec.tex, an example file for use with the NEC Plain TeX +% Proceedings Series macros. Comments are placed at the beginning and +% throughout this file. Please take the time to read them as they document +% how to use these macros. This file can be composed and printed out for +% use as sample output. Please ignore the underfull \vbox on page 3. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. You must use the numbered reference style([1],[2]), listing the +%% references at the end of the chapter either by order of citation +%% or alphabetically. +%% +%% 2. This macro is set up for three levels of headings. Use the commands +%% \headone, \headtwo, and \headthree. The macro will automatically +%% number the headings. +%% +%% 3. The running heads are defined by the commands \def\leftrh{} and +%% \def\rightrh{}. You must fill in the empty field of these commands +%% with the appropriate information. The left running head should be the +%% authors names. For papers with multiple authors, please follow these +%% rules; for two authors type {Author 1 and Author 2}; for more than two +%% authors type {Author 1 et al.}. The right running head is the title of +%% the paper. If the title is more than 50 characters, including spaces, +%% please provide a shortened version. All information should be typed +%% initial cap and lower case. +%% +%% 5. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1.) This numbering must +%% be done manually. +%% +%% 6. Proofs are handled by \prf\endprf. If you want to use an end-of-proof +%% box, insert \qed right before the \endprf command. +%% +%% 7. Figures and equations must be manually single-numbered. Use \leqno +%% for equation numbering. The macro provides the \fig for including +%% figures. This command consists of three fields. The first field is +%% used for inserting the appropriate space for the figure. The second +%% field is the figure number. The third field is the caption. See the +%% example included in this file. SIAM supports the use of psfig for +%% including Postscript figures. All Postscript figures should be sent +%% as separate files. A hardcopy version of all Postscript figures is +%% also required. See note regarding this under How to Submit Your Paper. +%% +%% 8. Use of \title\endtitle and \lasttitle\endlastitle. +%% This macro package provides two possible commands for handling the +%% title of your paper. The commands \title\endtitle should be used for +%% all lines except the last line of multiple line titles. The commands +%% \lasttitle\endlasttitle should be used for the last line of multiple +%% line titles. In the case of a single line title, \lasttitle\endlasttitle +%% should be used. +%% +%% 9. Use of \author\endauthor and \lastauthor\endlastauthor. +%% As in the title macro, two possible commands are provided for the +%% author. The commands \author\endauthor should be used for the first +%% line of authors if there are more than one line. The commands +%% \lastauthor\endlastauthor should be used for the last line +%% of multiple lines of authors. In the case of a single line of authors, +%% \lastauthor\endlastauthor should be used. A maximum of four authors +%% should be placed on any one line. The appropriate space must also be +%% hard coded between authors on the same line. The spacing is as follows: +%% +%% If 2 authors; \hskip4pc between +%% If 3 authors; \hskip3pc between +%% If 4 authors; \hskip2pc between +%% +%% 10. Grant information and author affiliations. +%% This information is included by using the \footnote command and the +%% appropriate footnote symbol. SIAM uses footnote symbols in a +%% particular order. Below is a list of these symbols: +%% +%% asterisk +%% single-dagger +%% double-dagger +%% section sign +%% paragraph +%% parallel +%% double asterisk +%% double single-dagger +%% double double-dagger +%% +%% For illustrative purposes, all footnote symbols have been used in the +%% example file. +%% +%% A note regarding \footnote. This command seems to leave extra white +%% space between footnotes. This is quite evident in the example file. If +%% any user of these macros has a solution to this problem, I would +%% appreciate hearing from you. Send your comments to: gray@siam.org. +%% +%% The following general rules apply for including grants and affiliations: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, included the grant information +%% with each authors affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% +%% +%% 11. Special fonts. +%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As +%% described in the manual for these fonts, they can be included by +%% \input{amssym.def} and \input{amssym.tex}. +%% +%% 12. How to Submit Your Paper. +%% The electronic version of your paper should be sent to proceed@siam.org. +%% A hardcopy version should also be submitted. Instructions are included +%% in your acceptance letter. Please be sure to send hardcopy +%% versions of any Postscript figures you have submitted electronically. +%% Be sure to return your signed Copyright Transfer Agreement. We cannot +%% publish your paper without one.%% +%% +%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input ptexnec.sty + +\def\leftrh{Gray et al.} +\def\rightrh{NEC Proceedings Series Macros} + +\startchapter %Place this command at the beginning of the file immediately + %after the \input command. + + + +\title Chapter 1\endtitle +\title NEC Proceedings Series Macros\endtitle +\lasttitle for Use with Plain TeX\footnote*{Any information +regarding grants should be placed here.}\endlasttitle + +\author J. Corey Gray\footnote{$^{\dag}$}{Production Manager, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Tricia Manning\footnote{$^{\ddag}$}{Publications +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Vickie Kearn\footnote{$^{\S}$}{Publisher, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Nancy Abbott\footnote{$^{\P}$}{Design Supervisor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endauthor +\lastauthor Sue Ciambrano\footnote{$^{\parallel}$}{Acquisition Editor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Paul Duggan\footnote{$^{**}$}{Composition +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Robbi Anne Albert\footnote{$^{\dagger\dagger}$}{Production, +Assistant, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Jean Anderson\footnote{$^{\ddag\ddag}$}{Composition Coordinator, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endlastauthor + +% Use \headone for the first level headings. The macro will automatically +% number the headings. + +\centerline{\bf Abstract} +\abstract An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability.\endabstract + + +\headone{Problem Specification} +In this paper, we consider the solution of the $N \times N$ linear +system +$$A x = b\leqno (1)$$ +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +$$ +P A P^{t} = L D L^{t} +\leqno (2)$$ + +\noindent where $L$ is unit lower triangular and $D$ is diagonal. + + +\headone{Design Considerations} +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \thm and \endthm for theorems. They must be numbered manually. +% Lemmas (\lem \endlem), corollaries (\cor \endcor), and +% propositions (\prop \endprop) are coded the same as theorems and must +% also be numbered manually. + +\thm{Theorem 2.1.} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\endthm + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \prf and \endprf to begin and end a proof. +% The use of \qed will produce an end-of-proof box. + +\prf{Proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening each.\qed\endprf + +% Use \dfn and \enddfn to begin and end definitions. + +\dfn{Definition 2.1.}We describe the two methods in \S\ 1.2. This is a +definition in the plain tex macro.\enddfn + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \lem and \endlem to begin and end lemmas. + +\lem{Lemma 2.1.}We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\endlem + +% Use \fig to insert space for figures . + +\fig{10pc}{Fig. 1}{This is the caption for figure one.} + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +% Use \headtwo for second level headings. They will be numbered automatically. + +\headtwo{Robustness}In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. + +\headtwo{Versatility} In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +% Use \headthree for third level headings. + +\headthree{Complexity.}For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +% The command \Refs sets the word Reference as a heading and allows the proper +% amount of space before the start of the references. Each reference must +% begin with \ref\\. The article or title of the reference should be in +% italic. Use the \it command within brackets. End each reference with +% \endref and allow two returns between references. Use the command +% \sameauthor (see reference 8) when the same author or group of authors +% is listed consecutively. + +\Refs + +\ref 1\\R.~E. Bank, {\it PLTMG users' guide, edition 5.0}, tech. report, + Department of Mathematics, University of California, San Diego, CA, 1988.\endref + +\ref 2\\R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\it The hierarchical basis + multigrid method}, Numer. Math., 52 (1988), pp.~427--458.\endref + +\ref 3\\R.~E. Bank and R.~K. Smith, {\it General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584.\endref + +\ref 4\\S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\it + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237.\endref + +\ref 5\\A.~George and J.~Liu, {\it Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981.\endref + +\ref 6\\K.~H. Law and S.~J. Fenves, {\it A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50.\endref + +\ref 7\\J.~W.~H. Liu, {\it A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148.\endref + +\ref 8\\\sameauthor , {\it The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987.\endref + +\ref 9\\D.~J. Rose, {\it A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, + Academic Press, New York, 1972.\endref + +\ref 10\\D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\it Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283.\endref + +\vfill\eject + +Extra page. +\vfill +\bye +%%% End of example file + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% +% This is a file of macros and definitions for creating a chapter +% for publication in the NEC Proceedings Series using Plain TeX. + +% Report the version. +\message{*** NEC Plain TeX Proceedings Series macro package, version 1.0, +November 6, 1992.***} + +% Make the @ sign a letter for internal control sequences. +\catcode`\@=11 +% +% +% + + +\baselineskip=14truept + + +%%% DIMENSIONS %%% + +\hsize=30truepc +\vsize=49truepc +%\hoffset=.5in +\parindent=18truept +\def\firstpar{\parindent=0pt\global\everypar{\parindent=18truept}} +\parskip=0pt + + +%%% FONTS %%% + +\font\tenrm=cmr10 +\font\tenbf=cmbx10 +\font\tenit=cmti10 +\font\tensmc=cmcsc10 +\def\tenpoint{% + \def\rm{\tenrm}\def\bf{\tenbf}% + \def\it{\tenit}\def\smc{\tensmc} + \textfont0=\tenrm \scriptfont0=\sevenrm + \textfont1=\teni \scriptfont1=\seveni + \textfont2=\tensy \scriptfont2=\sevensy + \textfont3=\tenex \scriptfont3=\tenex +\baselineskip=12pt\rm}% + +\font\ninerm=cmr9 +\font\ninebf=cmbx9 +\font\nineit=cmti9 +\def\ninepoint{% + \def\rm{\ninerm}\def\bf{\ninebf}% + \def\it{\nineit}\baselineskip=11pt\rm}% + +\font\eightrm=cmr8 +\font\eightbf=cmbx8 +\font\eightit=cmti8 +\font\eighti=cmmi8 +\font\eightsy=cmsy8 +\def\eightpoint{% + \def\rm{\eightrm}\def\bf{\eightbf}% + \def\it{\eightit}\def\smc{\eightrm}\baselineskip=10pt\rm% + \textfont0=\eightrm \scriptfont0=\sixrm + \textfont1=\eighti \scriptfont1=\sixi + \textfont2=\eightsy \scriptfont2=\sixsy + \textfont3=\tenex \scriptfont3=\tenex +} + +\font\sixrm=cmr6 +\font\sixbf=cmbx6 +\font\sixi=cmmi6 +\font\sixsmc=cmr5 +\font\sixsy=cmsy6 +\def\sixpoint{% + \def\rm{\sixrm}\def\bf{\sixbf}% + \def\smc{\sixsmc}\baselineskip=8pt\rm}% + +\fontdimen13\tensy=2.6pt +\fontdimen14\tensy=2.6pt +\fontdimen15\tensy=2.6pt +\fontdimen16\tensy=1.2pt +\fontdimen17\tensy=1.2pt +\fontdimen18\tensy=1.2pt + +\font\eightrm=cmr8 +\font\ninerm=cmr9 +\font\elevenrm=cmr10 scaled\magstephalf +\font\fourteenrm=cmr10 scaled\magstep 1 +\font\eighteenrm=cmr10 scaled\magstep 3 +\font\twelvebf=cmbx10 scaled\magstep 1 +\font\elevenbf=cmbx10 scaled\magstephalf +\font\elevenit=cmti10 scaled\magstephalf +\font\elevensc=cmcsc10 scaled\magstephalf + +\def\theoremfont{\elevensc} +\def\textfont{\elevenrm} +\def\itfont{\elevenit} +\def\headfont{\twelvebf} +\def\smallheadfont{\elevenbf} +\def\titlefont{\eighteenrm} +\def\chapterfont{\fourteenrm} +\def\authorfont{\fourteenrm} +\def\rheadfont{\tenrm} +\def\abstractfont{\tenrm} +\def\smc{\tensmc} +\font\eightsmc=cmcsc8 + +\def\footnote#1{\baselineskip=11truept\edef\@sf{\spacefactor\the\spacefactor}#1\@sf + \insert\footins\bgroup\ninepoint\hsize=36pc + \interlinepenalty10000 \let\par=\endgraf + \leftskip=0pt \rightskip=0pt + \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 +\smallskip +\item{#1}\bgroup\baselineskip=10pt\strut +\aftergroup\@foot\let\next} +\skip\footins=12pt plus 2pt minus 4pt +\dimen\footins=36pc + + + +%%% CHAPTER OPENING MACROS %%% + +\def\startchapter{\topinsert\vglue54pt\endinsert} + +\def\title#1\endtitle{\titlefont\centerline{#1}\vglue5pt}%\vskip40truept\tenrm} +\def\lasttitle#1\endlasttitle{\titlefont\centerline{#1}\vskip1.32truepc} +\def\author#1\endauthor{\authorfont\centerline{#1}\vglue8pt\textfont} +\def\lastauthor#1\endlastauthor{\authorfont\centerline{#1}\vglue2.56pc\textfont} +\def\abstract#1\endabstract{\baselineskip=12pt\leftskip=2.25pc + \rightskip=2.25pc\abstractfont{#1}\textfont} + +%%% COUNTERS FOR HEADINGS %%% + +\newcount\headcount +\headcount=1 +\newcount\seccount +\seccount=1 +\newcount\subseccount +\subseccount=1 +\def\secreset{\global\seccount=1} + \def\subsecreset{\global\subseccount=1} + +%%% HEADINGS %%% + +\def\headone#1{\baselineskip=14pt\leftskip=0pt\rightskip=0pt\vskip17truept\parindent=0pt +{\headfont\the\headcount\hskip14truept #1} +\par\nobreak\firstpar\global\advance\headcount by 0 + \global\advance\headcount by 1\secreset\vskip2truept\textfont} + +\def\headtwo#1{\advance\headcount by -1% + \vskip17truept\parindent=0pt{\headfont\the\headcount.% + \the\seccount\hskip14truept #1}%\enspace\ignorespaces\firstpar + \global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\subsecreset\vskip2pt\textfont} + + \def\headthree#1{\advance\headcount by -1\advance\seccount by -1 +% \advance\subseccount by -1% + \vskip17truept\parindent=0pt{\smallheadfont\the\headcount.% + \the\seccount.\the\subseccount\hskip11truept #1}\hskip6pt\ignorespaces + \firstpar\global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\textfont} + +%%% THEOREMS, PROOFS, DEFINITIONS, etc. %%% + +\def\thm#1{{\theoremfont +#1\enspace} +\hskip-5pt\begingroup\itfont\ignorespaces} + +\let\lem=\thm +\let\cor=\thm +\let\prop=\thm + +\def\endthm{\endgroup\textfont} +\let\endlem=\endthm +\let\endcor=\endthm +\let\endprop=\endthm + +\def\prf#1{{\itfont #1.}\textfont\enspace\ignorespaces} +\let\rem=\prf +\let\case=\prf + +\def\endprf{\textfont} +\let\endrem=\endprf +\let\endcase=\endprf + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\dfn#1{{\theoremfont +#1\enspace} +\textfont\ignorespaces} + +\let\fact=\dfn + +\def\enddfn{\textfont} + +\let\endfact=\enddfn + +%%% FIGURES AND CAPTIONS %%% + + +\newcount\figcount +\figcount=1 + + +%\newcount\tablenumber +%\tablenumber=1 + +\def\\{\hfill\break} + +\newbox\TestBox +\newdimen\setwd +\newskip\belowcaptionskip +\belowcaptionskip=6pt plus 1pt + +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid\vskip\belowcaptionskip\box\z@\par \penalty-200\vskip\belowcaptionskip + \else\insert\topins{\penalty100 % floating insertion + \splittopskip\z@skip + \splitmaxdepth\maxdimen \floatingpenalty\z@ + \ifp@ge \dimen@\dp\z@ + \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero + \else \box\z@\nobreak\vskip\belowcaptionskip\fi}\fi\endgroup} + + + + +\def\fig#1#2#3{% + \setbox\TestBox=\hbox{\tenpoint #3.}\setwd=\wd\TestBox + \topinsert + \vskip #1 + \vskip 12pt + \ifdim\setwd > 23pc + {\tenit{\smc #2.}\ \ #3} + \else + \centerline{\tenit\noindent + {\smc #2.}\ \ #3}\fi% + % \global\advance\figcount by 1 + \endinsert} + + + +%%% REFERENCES %%% + +\newdimen\refindent@ +\newdimen\refhangindent@ +\newbox\refbox@ +\setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [00]}% Default 2 digits +\refindent@=\wd\refbox@ + +\def\resetrefindent#1{% + \setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [#1]}% + \refindent@=\wd\refbox@} + +\def\Refs{% + \unskip\vskip1pc + \leftline{\noindent\headfont References}% + \penalty10000 + \vskip4pt + \penalty10000 + \refhangindent@=\refindent@ + \global\advance\refhangindent@ by .5em + \global\everypar{\hangindent\refhangindent@}% + \parindent=0pt\baselineskip=12pt\tenrm} + +\def\sameauthor{\leavevmode\vbox to 1ex{\vskip 0pt plus 100pt + \hbox to 2em{\leaders\hrule\hfil}\vskip 0pt plus 300pt}} + +\def\ref#1\\#2\endref{\leavevmode\hbox to \refindent@{\hfil[#1]}\enspace #2\par} + + +%%% OUTPUT %%% + +\def\rightheadline{\hfill\tenrm\rightrh\hskip2pc\tenrm\folio} +\def\leftheadline{\tenrm\folio\hskip2pc\tenrm\leftrh\hfill} + +\global\footline={\hss\tenrm\folio\hss}% first page + +\output{\plainoutput} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \ifnum\pageno>1 + \global\footline={\hfill}% + \fi + \ifodd\pageno + \global\headline={\rightheadline}% + \else + \global\headline={\leftheadline}% + \fi + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\rheadfont\the\headline}\vss}% + \nointerlineskip} +\def\makefootline{\baselineskip24\p@\vskip-6\p@\line{\the\footline}} +\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject\fi} + +\def\footnoterule{\vskip11pt\kern -4\p@\hrule width 3pc \kern 3.6\p@ } % rule = .4 pt high + +% Turn off @ as being a letter. +% +\catcode`\@=13 + +%end of style file + diff --git a/texmf-dist/doc/latex/siam/ptexproc.all b/texmf-dist/doc/latex/siam/ptexproc.all new file mode 100644 index 00000000..7a797fe2 --- /dev/null +++ b/texmf-dist/doc/latex/siam/ptexproc.all @@ -0,0 +1,685 @@ + + +This file constitutes the full distribution of SIAM Proceedings Series +Plain TeX macros. The files are: + +ptexproc.tex (An example file, also containing documentation) + +ptexproc.sty (the style file) + +To use these macros, separate at the indicated cut lines. + +%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ptexproc.tex, an example file for use with the SIAM Plain TeX +% Proceedings Series macros. Comments are placed at the beginning and +% throughout this file. Please take the time to read them as they document +% how to use these macros. This file can be composed and printed out for +% use as sample output. Please ignore the underfull \vbox on page 3. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. You must use the numbered reference style([1],[2]), listing the +%% references at the end of the chapter either by order of citation +%% or alphabetically. +%% +%% 2. This macro is set up for three levels of headings. Use the commands +%% \headone, \headtwo, and \headthree. The macro will automatically +%% number the headings. +%% +%% 3. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1.) This numbering must +%% be done manually. +%% +%% 4. Proofs are handled by \prf\endprf. If you want to use an end-of-proof +%% box, insert \qed right before the \endprf command. +%% +%% 5. Figures and equations must be manually single-numbered. Use \leqno +%% for equation numbering. The macro provides the \fig for including +%% figures. This command consists of three fields. The first field is +%% used for inserting the appropriate space for the figure. The second +%% field is the figure number. The third field is the caption. See the +%% example included in this file. SIAM supports the use of psfig for +%% including Postscript figures. All Postscript figures should be sent +%% as separate files. A hardcopy version of all Postscript figures is +%% also required. See note regarding this under How to Submit Your Paper. +%% +%% 6. Use of \title\endtitle and \lasttitle\endlastitle. +%% This macro package provides two possible commands for handling the +%% title of your paper. The commands \title\endtitle should be used for +%% all lines except the last line of multiple line titles. The commands +%% \lasttitle\endlasttitle should be used for the last line of multiple +%% line titles. In the case of a single line title, \lasttitle\endlasttitle +%% should be used. +%% +%% 7. Use of \author\endauthor and \lastauthor\endlastauthor. +%% As in the title macro, two possible commands are provided for the +%% author. The commands \author\endauthor should be used for the first +%% line of authors if there are more than one line. The commands +%% \lastauthor\endlastauthor should be used for the last line +%% of multiple lines of authors. In the case of a single line of authors, +%% \lastauthor\endlastauthor should be used. A maximum of four authors +%% should be placed on any one line. The appropriate space must also be +%% hard coded between authors on the same line. The spacing is as follows: +%% +%% If 2 authors; \hskip4pc between +%% If 3 authors; \hskip3pc between +%% If 4 authors; \hskip2pc between +%% +%% 8. Grant information and author affiliations. +%% This information is included by using the \footnote command and the +%% appropriate footnote symbol. SIAM uses footnote symbols in a +%% particular order. Below is a list of these symbols: +%% +%% asterisk +%% single-dagger +%% double-dagger +%% section sign +%% paragraph +%% parallel +%% double asterisk +%% double single-dagger +%% double double-dagger +%% +%% For illustrative purposes, all footnote symbols have been used in the +%% example file. +%% +%% A note regarding \footnote. This command seems to leave extra white +%% space between footnotes. This is quite evident in the example file. If +%% any user of these macros has a solution to this problem, I would +%% appreciate hearing from you. Send your comments to: gray@siam.org. +%% +%% The following general rules apply for including grants and affiliations: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, included the grant information +%% with each authors affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% +%% +%% 9. Special fonts. +%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As +%% described in the manual for these fonts, they can be included by +%% \input{amssym.def} and \input{amssym.tex}. +%% +%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input ptexproc.sty + +\def\leftrh{} +\def\rightrh{} + +\startchapter %Place this command at the beginning of the file immediately + %after the \input command. + + + +\title SIAM Proceedings Series Macros\endtitle +\lasttitle for Use with Plain TeX\footnote*{Any information +regarding grants should be placed here.}\endlasttitle + +\author J. Corey Gray\footnote{$^{\dag}$}{Production Manager, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Tricia Manning\footnote{$^{\ddag}$}{Publications +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Vickie Kearn\footnote{$^{\S}$}{Publisher, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Nancy Abbott\footnote{$^{\P}$}{Design Supervisor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endauthor +\lastauthor Sue Ciambrano\footnote{$^{\parallel}$}{Acquisition Editor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Paul Duggan\footnote{$^{**}$}{Composition +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Robbi Anne Albert\footnote{$^{\dagger\dagger}$}{Production, +Assistant, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Jean Anderson\footnote{$^{\ddag\ddag}$}{Composition Coordinator, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endlastauthor + +% Use \headone for the first level headings. The macro will automatically +% number the headings. + +\centerline{\bf Abstract} +\abstract An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability.\endabstract + + +\headone{Problem Specification} +In this paper, we consider the solution of the $N \times N$ linear +system +$$A x = b\leqno (1)$$ +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +$$ +P A P^{t} = L D L^{t} +\leqno (2)$$ + +\noindent where $L$ is unit lower triangular and $D$ is diagonal. + + +\headone{Design Considerations} +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \thm and \endthm for theorems. They must be numbered manually. +% Lemmas (\lem \endlem), corollaries (\cor \endcor), and +% propositions (\prop \endprop) are coded the same as theorems and must +% also be numbered manually. + +\thm{Theorem 2.1.} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\endthm + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \prf and \endprf to begin and end a proof. +% The use of \qed will produce an end-of-proof box. + +\prf{Proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening each.\qed\endprf + +% Use \dfn and \enddfn to begin and end definitions. + +\dfn{Definition 2.1.}We describe the two methods in \S\ 1.2. This is a +definition in the plain tex macro.\enddfn + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \lem and \endlem to begin and end lemmas. + +\lem{Lemma 2.1.}We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\endlem + +% Use \fig to insert space for figures . + +\fig{10pc}{Fig. 1}{This is the caption for figure one.} + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +% Use \headtwo for second level headings. They will be numbered automatically. + +\headtwo{Robustness}In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. + +\headtwo{Versatility} In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +% Use \headthree for third level headings. + +\headthree{Complexity.}For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +% The command \Refs sets the word Reference as a heading and allows the proper +% amount of space before the start of the references. Each reference must +% begin with \ref\\. The article or title of the reference should be in +% italic. Use the \it command within brackets. End each reference with +% \endref and allow two returns between references. Use the command +% \sameauthor (see reference 8) when the same author or group of authors +% is listed consecutively. + +\Refs + +\ref 1\\R.~E. Bank, {\it PLTMG users' guide, edition 5.0}, tech. report, + Department of Mathematics, University of California, San Diego, CA, 1988.\endref + +\ref 2\\R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\it The hierarchical basis + multigrid method}, Numer. Math., 52 (1988), pp.~427--458.\endref + +\ref 3\\R.~E. Bank and R.~K. Smith, {\it General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584.\endref + +\ref 4\\S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\it + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237.\endref + +\ref 5\\A.~George and J.~Liu, {\it Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981.\endref + +\ref 6\\K.~H. Law and S.~J. Fenves, {\it A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50.\endref + +\ref 7\\J.~W.~H. Liu, {\it A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148.\endref + +\ref 8\\\sameauthor , {\it The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987.\endref + +\ref 9\\D.~J. Rose, {\it A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, + Academic Press, New York, 1972.\endref + +\ref 10\\D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\it Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283.\endref + + +\bye + +%end of example file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ptexproc.sty +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% +% This is a file of macros and definitions for creating a chapter +% for publication in the SIAM Proceedings Series using Plain TeX. + +% Report the version. +\message{*** SIAM Plain TeX Proceedings Series macro package, version 1.0, +November 6, 1992.***} + +% Make the @ sign a letter for internal control sequences. +\catcode`\@=11 +% +% +% + +\overfullrule=0pt +\baselineskip=14truept + + +%%% DIMENSIONS %%% + +\hsize=36truepc +\vsize=55truepc +%\hoffset=.5in +\parindent=18truept +\def\firstpar{\parindent=0pt\global\everypar{\parindent=18truept}} +\parskip=0pt + + +%%% FONTS %%% + +\font\tenrm=cmr10 +\font\tenbf=cmbx10 +\font\tenit=cmti10 +\font\tensmc=cmcsc10 +\def\tenpoint{% + \def\rm{\tenrm}\def\bf{\tenbf}% + \def\it{\tenit}\def\smc{\tensmc} + \textfont0=\tenrm \scriptfont0=\sevenrm + \textfont1=\teni \scriptfont1=\seveni + \textfont2=\tensy \scriptfont2=\sevensy + \textfont3=\tenex \scriptfont3=\tenex +\baselineskip=12pt\rm}% + +\font\ninerm=cmr9 +\font\ninebf=cmbx9 +\font\nineit=cmti9 +\def\ninepoint{% + \def\rm{\ninerm}\def\bf{\ninebf}% + \def\it{\nineit}\baselineskip=11pt\rm}% + +\font\eightrm=cmr8 +\font\eightbf=cmbx8 +\font\eightit=cmti8 +\font\eighti=cmmi8 +\font\eightsy=cmsy8 +\def\eightpoint{% + \def\rm{\eightrm}\def\bf{\eightbf}% + \def\it{\eightit}\def\smc{\eightrm}\baselineskip=10pt\rm% + \textfont0=\eightrm \scriptfont0=\sixrm + \textfont1=\eighti \scriptfont1=\sixi + \textfont2=\eightsy \scriptfont2=\sixsy + \textfont3=\tenex \scriptfont3=\tenex +} + +\font\sixrm=cmr6 +\font\sixbf=cmbx6 +\font\sixi=cmmi6 +\font\sixsmc=cmr5 +\font\sixsy=cmsy6 +\def\sixpoint{% + \def\rm{\sixrm}\def\bf{\sixbf}% + \def\smc{\sixsmc}\baselineskip=8pt\rm}% + +\fontdimen13\tensy=2.6pt +\fontdimen14\tensy=2.6pt +\fontdimen15\tensy=2.6pt +\fontdimen16\tensy=1.2pt +\fontdimen17\tensy=1.2pt +\fontdimen18\tensy=1.2pt + +\font\eightrm=cmr8 +\font\ninerm=cmr9 +\font\elevenrm=cmr10 scaled\magstephalf +\font\fourteenrm=cmr10 scaled\magstep 1 +\font\eighteenrm=cmr10 scaled\magstep 3 +\font\twelvebf=cmbx10 scaled\magstep 1 +\font\elevenbf=cmbx10 scaled\magstephalf +\font\elevenit=cmti10 scaled\magstephalf +\font\elevensc=cmcsc10 scaled\magstephalf + +\def\theoremfont{\elevensc} +\def\textfont{\elevenrm} +\def\itfont{\elevenit} +\def\headfont{\twelvebf} +\def\smallheadfont{\elevenbf} +\def\titlefont{\eighteenrm} +\def\chapterfont{\fourteenrm} +\def\authorfont{\fourteenrm} +\def\rheadfont{\tenrm} +\def\abstractfont{\tenrm} +\def\smc{\tensmc} +\font\eightsmc=cmcsc8 + +\def\footnote#1{\baselineskip=11truept\edef\@sf{\spacefactor\the\spacefactor}#1\@sf + \insert\footins\bgroup\ninepoint\hsize=36pc + \interlinepenalty10000 \let\par=\endgraf + \leftskip=0pt \rightskip=0pt + \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 +\smallskip +\item{#1}\bgroup\baselineskip=10pt\strut +\aftergroup\@foot\let\next} +\skip\footins=12pt plus 2pt minus 4pt +\dimen\footins=36pc + + + +%%% CHAPTER OPENING MACROS %%% + +\def\startchapter{\topinsert\vglue54pt\endinsert} + +\def\title#1\endtitle{\titlefont\centerline{#1}\vglue5pt}%\vskip40truept\tenrm} +\def\lasttitle#1\endlasttitle{\titlefont\centerline{#1}\vskip1.32truepc} +\def\author#1\endauthor{\authorfont\centerline{#1}\vglue8pt\textfont} +\def\lastauthor#1\endlastauthor{\authorfont\centerline{#1}\vglue2.56pc\textfont} +\def\abstract#1\endabstract{\baselineskip=12pt\leftskip=2.25pc + \rightskip=2.25pc\abstractfont{#1}\textfont} + +%%% COUNTERS FOR HEADINGS %%% + +\newcount\headcount +\headcount=1 +\newcount\seccount +\seccount=1 +\newcount\subseccount +\subseccount=1 +\def\secreset{\global\seccount=1} + \def\subsecreset{\global\subseccount=1} + +%%% HEADINGS %%% + +\def\headone#1{\baselineskip=14pt\leftskip=0pt\rightskip=0pt\vskip17truept\parindent=0pt +{\headfont\the\headcount\hskip14truept #1} +\par\nobreak\firstpar\global\advance\headcount by 0 + \global\advance\headcount by 1\secreset\vskip2truept\textfont} + +\def\headtwo#1{\advance\headcount by -1% + \vskip17truept\parindent=0pt{\headfont\the\headcount.% + \the\seccount\hskip14truept #1}%\enspace\ignorespaces\firstpar + \global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\subsecreset\vskip2pt\textfont} + + \def\headthree#1{\advance\headcount by -1\advance\seccount by -1 +% \advance\subseccount by -1% + \vskip17truept\parindent=0pt{\smallheadfont\the\headcount.% + \the\seccount.\the\subseccount\hskip11truept #1}\hskip6pt\ignorespaces + \firstpar\global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\textfont} + +%%% THEOREMS, PROOFS, DEFINITIONS, etc. %%% + +\def\thm#1{{\theoremfont +#1\enspace} +\hskip-5pt\begingroup\itfont\ignorespaces} + +\let\lem=\thm +\let\cor=\thm +\let\prop=\thm + +\def\endthm{\endgroup\textfont} +\let\endlem=\endthm +\let\endcor=\endthm +\let\endprop=\endthm + +\def\prf#1{{\itfont #1.}\textfont\enspace\ignorespaces} +\let\rem=\prf +\let\case=\prf + +\def\endprf{\textfont} +\let\endrem=\endprf +\let\endcase=\endprf + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\dfn#1{{\theoremfont +#1\enspace} +\textfont\ignorespaces} + +\let\fact=\dfn + +\def\enddfn{\textfont} + +\let\endfact=\enddfn + +%%% FIGURES AND CAPTIONS %%% + + +\newcount\figcount +\figcount=1 + + +%\newcount\tablenumber +%\tablenumber=1 + +\def\\{\hfill\break} + +\newbox\TestBox +\newdimen\setwd +\newskip\belowcaptionskip +\belowcaptionskip=6pt plus 1pt + +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid\vskip\belowcaptionskip\box\z@\par \penalty-200\vskip\belowcaptionskip + \else\insert\topins{\penalty100 % floating insertion + \splittopskip\z@skip + \splitmaxdepth\maxdimen \floatingpenalty\z@ + \ifp@ge \dimen@\dp\z@ + \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero + \else \box\z@\nobreak\vskip\belowcaptionskip\fi}\fi\endgroup} + + + + +\def\fig#1#2#3{% + \setbox\TestBox=\hbox{\tenpoint #3.}\setwd=\wd\TestBox + \topinsert + \vskip #1 + \vskip 12pt + \ifdim\setwd > 23pc + {\tenit{\smc #2.}\ \ #3} + \else + \centerline{\tenit\noindent + {\smc #2.}\ \ #3}\fi% + % \global\advance\figcount by 1 + \endinsert} + + + +%%% REFERENCES %%% + +\newdimen\refindent@ +\newdimen\refhangindent@ +\newbox\refbox@ +\setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [00]}% Default 2 digits +\refindent@=\wd\refbox@ + +\def\resetrefindent#1{% + \setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [#1]}% + \refindent@=\wd\refbox@} + +\def\Refs{% + \unskip\vskip1pc + \leftline{\noindent\headfont References}% + \penalty10000 + \vskip4pt + \penalty10000 + \refhangindent@=\refindent@ + \global\advance\refhangindent@ by .5em + \global\everypar{\hangindent\refhangindent@}% + \parindent=0pt\baselineskip=12pt\tenrm} + +\def\sameauthor{\leavevmode\vbox to 1ex{\vskip 0pt plus 100pt + \hbox to 2em{\leaders\hrule\hfil}\vskip 0pt plus 300pt}} + +\def\ref#1\\#2\endref{\leavevmode\hbox to \refindent@{\hfil[#1]}\enspace #2\par} + + +%%% OUTPUT %%% + +\def\rightheadline{\hfill\tensmc\rightrh\hskip2pc\tenrm\folio} +\def\leftheadline{\tenrm\folio\hskip2pc\tensmc\leftrh\hfill} + +\global\footline={\hss\tenrm\folio\hss}% first page + +\output{\plainoutput} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \ifnum\pageno>1 + \global\footline={\hfill}% + \fi + \ifodd\pageno + \global\headline={\rightheadline}% + \else + \global\headline={\leftheadline}% + \fi + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\rheadfont\the\headline}\vss}% + \nointerlineskip} +\def\makefootline{\baselineskip24\p@\vskip-6\p@\line{\the\footline}} +\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject\fi} + +\def\footnoterule{\vskip11pt\kern -4\p@\hrule width 3pc \kern 3.6\p@ } % rule = .4 pt high + +% Turn off @ as being a letter. +% +\catcode`\@=13 + +%end of style file diff --git a/texmf-dist/doc/latex/siam/ptexproc.tex b/texmf-dist/doc/latex/siam/ptexproc.tex new file mode 100644 index 00000000..b25d6560 --- /dev/null +++ b/texmf-dist/doc/latex/siam/ptexproc.tex @@ -0,0 +1,354 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ptexproc.tex, an example file for use with the SIAM Plain TeX +% Proceedings Series macros. Comments are placed at the beginning and +% throughout this file. Please take the time to read them as they document +% how to use these macros. This file can be composed and printed out for +% use as sample output. Please ignore the underfull \vbox on page 3. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. You must use the numbered reference style([1],[2]), listing the +%% references at the end of the chapter either by order of citation +%% or alphabetically. +%% +%% 2. This macro is set up for three levels of headings. Use the commands +%% \headone, \headtwo, and \headthree. The macro will automatically +%% number the headings. +%% +%% 3. Theorems, Lemmas, Definitions, etc. are to be double-numbered, +%% indicating the section and the occurrence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1.) This numbering must +%% be done manually. +%% +%% 4. Proofs are handled by \prf\endprf. If you want to use an end-of-proof +%% box, insert \qed right before the \endprf command. +%% +%% 5. Figures and equations must be manually single-numbered. Use \leqno +%% for equation numbering. The macro provides the \fig for including +%% figures. This command consists of three fields. The first field is +%% used for inserting the appropriate space for the figure. The second +%% field is the figure number. The third field is the caption. See the +%% example included in this file. SIAM supports the use of psfig for +%% including Postscript figures. All Postscript figures should be sent +%% as separate files. A hardcopy version of all Postscript figures is +%% also required. See note regarding this under How to Submit Your Paper. +%% +%% 6. Use of \title\endtitle and \lasttitle\endlastitle. +%% This macro package provides two possible commands for handling the +%% title of your paper. The commands \title\endtitle should be used for +%% all lines except the last line of multiple line titles. The commands +%% \lasttitle\endlasttitle should be used for the last line of multiple +%% line titles. In the case of a single line title, \lasttitle\endlasttitle +%% should be used. +%% +%% 7. Use of \author\endauthor and \lastauthor\endlastauthor. +%% As in the title macro, two possible commands are provided for the +%% author. The commands \author\endauthor should be used for the first +%% line of authors if there are more than one line. The commands +%% \lastauthor\endlastauthor should be used for the last line +%% of multiple lines of authors. In the case of a single line of authors, +%% \lastauthor\endlastauthor should be used. A maximum of four authors +%% should be placed on any one line. The appropriate space must also be +%% hard coded between authors on the same line. The spacing is as follows: +%% +%% If 2 authors; \hskip4pc between +%% If 3 authors; \hskip3pc between +%% If 4 authors; \hskip2pc between +%% +%% 8. Grant information and author affiliations. +%% This information is included by using the \footnote command and the +%% appropriate footnote symbol. SIAM uses footnote symbols in a +%% particular order. Below is a list of these symbols: +%% +%% asterisk +%% single-dagger +%% double-dagger +%% section sign +%% paragraph +%% parallel +%% double asterisk +%% double single-dagger +%% double double-dagger +%% +%% For illustrative purposes, all footnote symbols have been used in the +%% example file. +%% +%% A note regarding \footnote. This command seems to leave extra white +%% space between footnotes. This is quite evident in the example file. If +%% any user of these macros has a solution to this problem, I would +%% appreciate hearing from you. Send your comments to: gray@siam.org. +%% +%% The following general rules apply for including grants and affiliations: +%% a) If there is a single grant for the paper, then the grant +%% information should be footnoted to the title. +%% b) If there is more than one grant, included the grant information +%% with each authors affiliation. +%% c) If there are different grants for the paper but the authors share +%% the same affiliation, footnote the grant information to the title. +%% For example, The work of the first author was supported by xyz. +%% The work of the second author was supported by abc. And so on. +%% +%% +%% 9. Special fonts. +%% SIAM supports the use of AMS-TeX fonts version 2.0 and later. As +%% described in the manual for these fonts, they can be included by +%% \input{amssym.def} and \input{amssym.tex}. +%% +%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input ptexproc.sty + +\def\leftrh{} +\def\rightrh{} + +\startchapter %Place this command at the beginning of the file immediately + %after the \input command. + + + +\title SIAM Proceedings Series Macros\endtitle +\lasttitle for Use with Plain TeX\footnote*{Any information +regarding grants should be placed here.}\endlasttitle + +\author J. Corey Gray\footnote{$^{\dag}$}{Production Manager, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Tricia Manning\footnote{$^{\ddag}$}{Publications +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Vickie Kearn\footnote{$^{\S}$}{Publisher, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Nancy Abbott\footnote{$^{\P}$}{Design Supervisor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endauthor +\lastauthor Sue Ciambrano\footnote{$^{\parallel}$}{Acquisition Editor, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Paul Duggan\footnote{$^{**}$}{Composition +Specialist, Society for Industrial and Applied Mathematics, Philadelphia, +PA.} +\hskip2truepc Robbi Anne Albert\footnote{$^{\dagger\dagger}$}{Production, +Assistant, Society for Industrial +and Applied Mathematics, Philadelphia, PA.} +\hskip2truepc Jean Anderson\footnote{$^{\ddag\ddag}$}{Composition Coordinator, Society for +Industrial and Applied Mathematics, Philadelphia, PA.} +\endlastauthor + +% Use \headone for the first level headings. The macro will automatically +% number the headings. + +\centerline{\bf Abstract} +\abstract An equivalence is shown between realizability of input/output (i/o) operators by +rational control systems and high-order algebraic differential equations for +i/o pairs. This generalizes, to nonlinear systems, the equivalence +between autoregressive representations and finite dimensional linear +realizability.\endabstract + + +\headone{Problem Specification} +In this paper, we consider the solution of the $N \times N$ linear +system +$$A x = b\leqno (1)$$ +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +$$ +P A P^{t} = L D L^{t} +\leqno (2)$$ + +\noindent where $L$ is unit lower triangular and $D$ is diagonal. + + +\headone{Design Considerations} +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \thm and \endthm for theorems. They must be numbered manually. +% Lemmas (\lem \endlem), corollaries (\cor \endcor), and +% propositions (\prop \endprop) are coded the same as theorems and must +% also be numbered manually. + +\thm{Theorem 2.1.} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\endthm + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \prf and \endprf to begin and end a proof. +% The use of \qed will produce an end-of-proof box. + +\prf{Proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening each.\qed\endprf + +% Use \dfn and \enddfn to begin and end definitions. + +\dfn{Definition 2.1.}We describe the two methods in \S\ 1.2. This is a +definition in the plain tex macro.\enddfn + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \lem and \endlem to begin and end lemmas. + +\lem{Lemma 2.1.}We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\endlem + +% Use \fig to insert space for figures . + +\fig{10pc}{Fig. 1}{This is the caption for figure one.} + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +% Use \headtwo for second level headings. They will be numbered automatically. + +\headtwo{Robustness}In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. + +\headtwo{Versatility} In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +% Use \headthree for third level headings. + +\headthree{Complexity.}For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +% The command \Refs sets the word Reference as a heading and allows the proper +% amount of space before the start of the references. Each reference must +% begin with \ref\\. The article or title of the reference should be in +% italic. Use the \it command within brackets. End each reference with +% \endref and allow two returns between references. Use the command +% \sameauthor (see reference 8) when the same author or group of authors +% is listed consecutively. + +\Refs + +\ref 1\\R.~E. Bank, {\it PLTMG users' guide, edition 5.0}, tech. report, + Department of Mathematics, University of California, San Diego, CA, 1988.\endref + +\ref 2\\R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\it The hierarchical basis + multigrid method}, Numer. Math., 52 (1988), pp.~427--458.\endref + +\ref 3\\R.~E. Bank and R.~K. Smith, {\it General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584.\endref + +\ref 4\\S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\it + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237.\endref + +\ref 5\\A.~George and J.~Liu, {\it Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981.\endref + +\ref 6\\K.~H. Law and S.~J. Fenves, {\it A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50.\endref + +\ref 7\\J.~W.~H. Liu, {\it A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148.\endref + +\ref 8\\\sameauthor , {\it The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987.\endref + +\ref 9\\D.~J. Rose, {\it A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, + Academic Press, New York, 1972.\endref + +\ref 10\\D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\it Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283.\endref + + +\bye + +%end of example file diff --git a/texmf-dist/doc/latex/siam/siamatex.tar b/texmf-dist/doc/latex/siam/siamatex.tar Binary files differnew file mode 100644 index 00000000..4a50bd92 --- /dev/null +++ b/texmf-dist/doc/latex/siam/siamatex.tar diff --git a/texmf-dist/doc/latex/siam/siamltex.zip b/texmf-dist/doc/latex/siam/siamltex.zip Binary files differnew file mode 100644 index 00000000..dedaf0c0 --- /dev/null +++ b/texmf-dist/doc/latex/siam/siamltex.zip diff --git a/texmf-dist/doc/latex/siam/siamptex.tar b/texmf-dist/doc/latex/siam/siamptex.tar Binary files differnew file mode 100644 index 00000000..19706620 --- /dev/null +++ b/texmf-dist/doc/latex/siam/siamptex.tar diff --git a/texmf-dist/doc/latex/siam/soda209.all b/texmf-dist/doc/latex/siam/soda209.all new file mode 100644 index 00000000..862535cc --- /dev/null +++ b/texmf-dist/doc/latex/siam/soda209.all @@ -0,0 +1,682 @@ +%% This is soda209.all. This file is to be used for creating a paper +%% in the ACM/SIAM Preprint series with LaTeX. It consists of the following +%% two files: +%% +%% ltexprt.tex ---- an example and documentation file +%% ltexprt.sty ---- the macro file +%% +%% To use, cut this file apart at the appropriate places. You can run the +%% example file with the macros to get sample output. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%% ltexprt.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is ltexprt.tex, an example file for use with the SIAM LaTeX (version 2.09) +% Preprint Series macros. It is designed to provide double-column output. +% Please take the time to read the following comments, as they document +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to match +%% the Preprint series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. If you are using BibTeX, please +%% supply the bst file with the manuscript file. +%% +%% +%% 3. This macro is set up for two levels of headings (\section and +%% \subsection). The macro will automatically number the headings for you. +%% +%% 4. No running heads are to be used in this volume. +%% +%% 5. Theorems, Lemmas, Definitions, etc. are to be double numbered, +%% indicating the section and the occurence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 6. Figures, equations, and tables must be single-numbered. +%% Use existing LaTeX tags for these elements. +%% Numbering will be done automatically. +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\documentstyle[twoside,leqno,twocolumn,ltexprt]{article} + +\begin{document} + + +\title{\Large SIAM/ACM Preprint Series Macros for +Use With LaTeX\thanks{Supported by GSF grants ABC123, DEF456, and GHI789.}} +\author{Corey Gray\thanks{Society for Industrial and Applied Mathematics.} \\ +\and +Tricia Manning\thanks{Society for Industrial and Applied Mathematics.}} +\date{} + +\maketitle + +\pagestyle{myheadings} +\markboth{}{} + +%\pagenumbering{arabic} + + +\begin{abstract} \small\baselineskip=9pt This is the text of my abstract. It is a brief +description of my +paper, outlining the purposes and goals I am trying to address.\end{abstract} + +\section{Problem Specification.}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations.}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably. +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. +In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness.}\ We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\begin{figure} +\vspace{14pc} +\caption{This is a figure 1.1.} +\end{figure} + +\section{Robustness.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\subsection{Versatility.}\ The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. +In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\begin{thebibliography}{99} + +%\bibitem{GUIDE} +%R.~E. Bank, {\em PLTMG users' guide, edition 5.0}, tech. report, +% Department of Mathematics, University of California, San Diego, CA, 1988. + +%\bibitem{HBMG} +%R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\em The hierarchical basis +% multigrid method}, Numer. Math., 52 (1988), pp.~427--458. + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, AcademicŒ Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schrieber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} +\end{document} + +% End of ltexprt.tex +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ltexprt.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is ltexprt.sty, a file of macros and definitions for creating a +% chapter for publication in the ACM/SIAM Preprint series using LaTeX (version 2.09). +% It is designed to produce double-column output. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% Report the version. +\message{*** ACM/SIAM LaTeX 2.09 Preprint Series macro package, version 1.0, +September 24,1990 ***} + + +\pretolerance=800 +\tolerance=10000 +\sloppy + +\voffset=-.5in +\hoffset=-.5in +\vsize=55pc +\hsize=41pc +\baselineskip=14pt +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 17pt +\textheight 52.5pc \advance\textheight by \topskip +\textwidth 41pc +\parskip 0pt +\parindent 18pt + +\font\tensmc=cmcsc10 +\def\smc{\tensmc} + +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{10pt}\viiipt\@viiipt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip + \def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em} % the \hrule is .4pt high + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hfil{\small\leftmark}}% + \def\@oddhead{{\noindent\small\rightmark}\hfil{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\rlap{\normalsize\rm\rightmark}\hfil{small\thepage}}% + \def\@evenhead%{\hfil{\small\@chapapp}\ + {\small\thepage}\hfil\llap{\normalsize\rm\leftmark}}% + \def\chaptermark##1{}% + \def\sectionmark##1{}\def\subsectionmark##1{}} + + +\def\theequation{\arabic{section}.\arabic{equation}} + + +\def\section{\@startsection{section}{1}{0pt}{-12pt}{3pt}{\hyphenpenalty=\@M +\exhyphenpenalty=\@M\normalsize\bf}} +\def\subsection{\@startsection{subsection}{2}{0pt}{-12pt}{0pt}{\normalsize\bf} +} +\def\subsubsection{\@startsection + {subsubsection}{3}{0pt}{-12pt}{0pt}{\normalsize\bf}} +\def\paragraph{\@startsection + {paragraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} +\def\subparagraph{\@startsection + {subparagraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm \trivlist \item[\hskip \labelsep{\it #1.\/}]} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbegintheorem#1#2#3{\it \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +\def\trivlist{\parsep\outerparskip + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\parindent \def\makelabel##1{##1}} + +\def\@trivlist{\topsep=0pt\@topsepadd\topsep + \if@noskipsec \leavevmode \fi + \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi + \if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep\@topsepadd \fi + \advance\@topsep \parskip + \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi}% + \global\@newlisttrue \@outerparskip\parskip} + + +\def\endtrivlist{\if@newlist\@noitemerr\fi + \if@inlabel\indent\fi + \ifhmode\unskip \par\fi + \if@noparlist \else + \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi\@endparenv\fi + \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + + \newalgorithm{@algorithm}{Algorithm}[section] + \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +%\newtheorem{Corollary}[Theorem]{Corollary} +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{6pt} +\begin{flushleft}\normalsize\bf References\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +% {[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + +%% setup 8/10 type +\def\@bibsetup{\itemindent=0pt \itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + +% +%% End of ltexprt.sty +% +%%%%%%%%%%%%%%%%%%%%%%%%% End of soda209.all %%%%%%%%%%%%%%%%%%%%%%% diff --git a/texmf-dist/doc/latex/siam/soda2e.all b/texmf-dist/doc/latex/siam/soda2e.all new file mode 100644 index 00000000..17f57096 --- /dev/null +++ b/texmf-dist/doc/latex/siam/soda2e.all @@ -0,0 +1,688 @@ +%% This is soda2e.all. This file is to be used for creating a paper +%% in the ACM/SIAM Preprint series with LaTeX2E. It consists of the following +%% two files: +%% +%% ltexpprt.tex ---- an example and documentation file +%% ltexpprt.sty ---- the macro file +%% +%% To use, cut this file apart at the appropriate places. You can run the +%% example file with the macros to get sample output. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%% ltexpprt.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is ltexpprt.tex, an example file for use with the SIAM LaTeX2E +% Preprint Series macros. It is designed to provide double-column output. +% Please take the time to read the following comments, as they document +% how to use these macros. This file can be composed and printed out for +% use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. There are no new tags. Existing LaTeX tags have been formatted to match +%% the Preprint series style. +%% +%% 2. You must use \cite in the text to mark your reference citations and +%% \bibitem in the listing of references at the end of your chapter. See +%% the examples in the following file. If you are using BibTeX, please +%% supply the bst file with the manuscript file. +%% +%% 3. This macro is set up for two levels of headings (\section and +%% \subsection). The macro will automatically number the headings for you. +%% +%% 5. No running heads are to be used for this volume. +%% +%% 6. Theorems, Lemmas, Definitions, etc. are to be double numbered, +%% indicating the section and the occurence of that element +%% within that section. (For example, the first theorem in the second +%% section would be numbered 2.1. The macro will +%% automatically do the numbering for you. +%% +%% 7. Figures, equations, and tables must be single-numbered. +%% Use existing LaTeX tags for these elements. +%% Numbering will be done automatically. +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +\documentclass[twoside,leqno,twocolumn]{article} +\usepackage{ltexpprt} +\begin{document} + + +%\setcounter{chapter}{2} % If you are doing your chapter as chapter one, +%\setcounter{section}{3} % comment these two lines out. + +\title{\Large SIAM/ACM Preprint Series Macros for +Use With LaTeX\thanks{Supported by GSF grants ABC123, DEF456, and GHI789.}} +\author{Corey Gray\thanks{Society for Industrial and Applied Mathematics.} \\ +\and +Tricia Manning\thanks{Society for Industrial and Applied Mathematics.}} +\date{} + +\maketitle + +\pagestyle{myheadings} +\markboth{}{} + + +%\pagenumbering{arabic} +%\setcounter{page}{1}%Leave this line commented out. + +\begin{abstract} \small\baselineskip=9pt This is the text of my abstract. It is a brief +description of my +paper, outlining the purposes and goals I am trying to address.\end{abstract} + + + + +\section{Problem Specification.}In this paper, we consider the solution of the $N \times +N$ linear +system +\begin{equation} \label{e1.1} +A x = b +\end{equation} +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of (\ref{e1.1}) by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +\[ +P A P^{t} = L D L^{t} +\] +where $L$ is unit lower triangular and $D$ is diagonal. + + +\section{Design Considerations.}Several good ordering algorithms (nested dissection and +minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{theorem} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\end{theorem} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +\begin{proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening in each of the three +independent variables and then ignoring the intermediate +grids; this artifice simplifies coding considerably. +\end{proof} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + +\begin{Definition}{\rm We describe the two methods in \S 1.2. In \S\ 1.3. we +discuss +some remaining details.} +\end{Definition} + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ \cite{GEORGELIU}, \cite{ROSE72}. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in \cite{BANKSMITH}. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. + +\begin{lemma} We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\end{lemma} + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. +In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\subsection{Robustness.}\ We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. +This section assumes prior knowledge of the role of graph theory +in sparse Gaussian elimination; surveys of this role are +available in \cite{ROSE72} and \cite{GEORGELIU}. More general +discussions of elimination trees are given in +\cite{LAW} - \cite{LIU2}, \cite{SCHREIBER}. +Thus, at the $k$th stage, the bordering algorithm consists of +solving the lower triangular system +\begin{equation} \label{1.2} + L_{k-1}v = c +\end{equation} +and setting +\begin{eqnarray} +\ell &=& D^{-1}_{k-1}v , \\ +\delta &=& \alpha - \ell^{t} v . +\end{eqnarray} + +\begin{figure} +\vspace{14pc} +\caption{This is a figure 1.1.} +\end{figure} + +\section{Robustness.} We do not +attempt to present an overview +here, but rather attempt to focus on those results that +are relevant to our particular algorithm. + +\subsection{Versatility.}\ The special +structure of this problem allows us to make exact estimates of +the complexity. For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations +\cite{GEORGELIU}, \cite{ROSEWHITTEN}. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. +In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +\cite{EISENSTAT} - \cite{LIU2}, \cite{ROSE76}, \cite{SCHREIBER}. + +\begin{thebibliography}{99} + +%\bibitem{GUIDE} +%R.~E. Bank, {\em PLTMG users' guide, edition 5.0}, tech. report, +% Department of Mathematics, University of California, San Diego, CA, 1988. + +%\bibitem{HBMG} +%R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\em The hierarchical basis +% multigrid method}, Numer. Math., 52 (1988), pp.~427--458. + +\bibitem{BANKSMITH} +R.~E. Bank and R.~K. Smith, {\em General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584. + +\bibitem{EISENSTAT} +S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\em + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237. + +\bibitem{GEORGELIU} +A.~George and J.~Liu, {\em Computer Solution of Large Sparse Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981. + +\bibitem{LAW} +K.~H. Law and S.~J. Fenves, {\em A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50. + +\bibitem{LIU} +J.~W.~H. Liu, {\em A compact row storage scheme for cholesky factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148. + +\bibitem{LIU2} +\sameauthor , {\em The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987. + +\bibitem{ROSE72} +D.~J. Rose, {\em A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, Academic Press, New +York, 1972. + +\bibitem{ROSE76} +D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\em Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283. + +\bibitem{ROSEWHITTEN} +D.~J. Rose and G.~F. Whitten, {\em A recursive analysis of disection + strategies}, in Sparse Matrix Computations, Academic Press, New York, 1976. + +\bibitem{SCHREIBER} +R.~Schrieber, {\em A new implementation of sparse gaussian elimination}, + ACM TOMS, 8 (1982), pp.~256--276. + +\end{thebibliography} +\end{document} + +% End of ltexpprt.tex +% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ltexpprt.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is ltexpprt.sty, a file of macros and definitions for creating a +% chapter for publication in the ACM/SIAM Preprint series using LaTeX2E. +% It is designed to produce double-column output. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + + +% Report the version. +\message{*** ACM/SIAM LaTeX2E Preprint Series macro package, version 1.0, +September 5, 1996 ***} + + +\pretolerance=800 +\tolerance=10000 +\sloppy + +%\voffset=-.5in +%\hoffset=-.5in +\vsize=55pc +\hsize=41pc +\baselineskip=14pt +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 17pt +\textheight 52.5pc \advance\textheight by \topskip +\textwidth 41pc +\parskip 0pt +\parindent 18pt + +\font\tensmc=cmcsc10 +\def\smc{\tensmc} + +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{10pt}\viiipt\@viiipt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip + \def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em} % the \hrule is .4pt high + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hfil{\small\leftmark}}% + \def\@oddhead{{\noindent\small\rightmark}\hfil{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\rlap{\normalsize\rm\rightmark}\hfil{small\thepage}}% + \def\@evenhead%{\hfil{\small\@chapapp}\ + {\small\thepage}\hfil\llap{\normalsize\rm\leftmark}}% + \def\chaptermark##1{}% + \def\sectionmark##1{}\def\subsectionmark##1{}} + + +\def\theequation{\arabic{section}.\arabic{equation}} + + +\def\section{\@startsection{section}{1}{0pt}{-12pt}{3pt}{\hyphenpenalty=\@M +\exhyphenpenalty=\@M\normalsize\bf}} +\def\subsection{\@startsection{subsection}{2}{0pt}{-12pt}{0pt}{\normalsize\bf} +} +\def\subsubsection{\@startsection + {subsubsection}{3}{0pt}{-12pt}{0pt}{\normalsize\bf}} +\def\paragraph{\@startsection + {paragraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} +\def\subparagraph{\@startsection + {subparagraph}{4}{\parindent}{0pt}{0pt}{\normalsize\bf}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm \trivlist \item[\hskip \labelsep{\it #1.\/}]} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbegintheorem#1#2#3{\it \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +%\def\trivlist{\parsep\outerparskip +% \@trivlist \labelwidth\z@ \leftmargin\z@ +% \itemindent\parindent \def\makelabel##1{##1}} +% +%\def\@trivlist{\topsep=0pt\@topsepadd\topsep +% \if@noskipsec \leavevmode \fi +% \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi +% \if@inlabel \@noparitemtrue \@noparlisttrue +% \else \@noparlistfalse \@topsep\@topsepadd \fi +% \advance\@topsep \parskip +% \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue +% \@setpar{\if@newlist\else{\@@par}\fi}% +% \global\@newlisttrue \@outerparskip\parskip} +% +% +%\def\endtrivlist{\if@newlist\@noitemerr\fi +% \if@inlabel\indent\fi +% \ifhmode\unskip \par\fi +% \if@noparlist \else +% \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip +% \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip +% \vskip\@tempskipa +% \fi\@endparenv\fi +% \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + + \newalgorithm{@algorithm}{Algorithm}[section] + \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +%\newtheorem{Corollary}[Theorem]{Corollary} +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{6pt} +\begin{flushleft}\normalsize\bf References\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +% {[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + +%% setup 8/10 type +\def\@bibsetup{\itemindent=0pt \itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% + diff --git a/texmf-dist/doc/latex/siam/sodaptex.all b/texmf-dist/doc/latex/siam/sodaptex.all new file mode 100644 index 00000000..e4c99f08 --- /dev/null +++ b/texmf-dist/doc/latex/siam/sodaptex.all @@ -0,0 +1,722 @@ +%% This is sodaptex.all. This file is to be used for creating a paper +%% in the ACM/SIAM Preprint series with Plain TeX. It consists of the following +%% two files: +%% +%% ptexpprt.tex ---- an example and documentation file +%% ptexpprt.sty ---- the macro file +%% +%% To use, cut this file apart at the appropriate places. You can run the +%% example file with the macros to get sample output. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%% ptexpprt.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is ptexpprt.tex, an example file for use with the ACM/SIAM Plain TeX +% Preprint Series macros. It is designed to produce double-column output. +% Comments are placed at the beginning and throughout this file. Please +% take the time to read them as they document how to use these macros. +% This file can be composed and printed out for use as sample output. + +% Any comments or questions regarding these macros should be directed to: +% +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This file is to be used as an example for style only. It should not be read +% for content. + +%%%%%%%%%%%%%%% PLEASE NOTE THE FOLLOWING STYLE RESTRICTIONS %%%%%%%%%%%%%%% + +%% 1. You must use the numbered reference style([1],[2]), listing the +%% references at the end of the chapter either by order of citation +%% or alphabetically. +%% +%% 2. Unless otherwise stated by your editor, do your chapter as if it +%% is Chapter 1. +%% If you know which number your chapter is, you must do the following: +%% +%% Go into the style file (ptexfrnt.sty) and search for the +%% \def\chapter#1 definition. At the end of this definition +%% there is a command \headcount=1. Change the 1 to +%% the appropriate number. This change will cause the headings +%% in your chapter to match the chapter number. +%% +%% 3. This macro is set up for two levels of headings. The macro will +%% automatically number the headings for you. +%% +%% 4. The running heads are defined in the output routine. It will be +%% necessary for you to alter the information currently included. +%% To do this, go into the style file and search for OUTPUT. Once there, +%% scroll through the file until you see the command \def\rhead. Replace +%% CHAPTER TITLE with the title (or shortened title) of your paper. +%% Replace AUTHORS NAMES with the appropriate names. +%% Neither running head may be longer than 50 characters. +%% +%% 5. Theorems, Lemmas, Definitions, etc. are to be triple numbered, +%% indicating the chapter, section, and the occurence of that element +%% within that section. (For example, the first theorem in the second +%% section of chapter three would be numbered 3.2.1. This numbering must +%% be done manually. +%% +%% 6. Figures and equations must be manually double-numbered, indicating +%% chapter and occurence. Use \leqno for equation numbering. See the +%% example of \caption for figure numbering. +%% Note. Although not shown, tables must also be double-numbered. The +%% command \caption can also be used for table captions. +%% +%% 7. At the first occurence of each new element there is a description +%% of how to use the coding. +%% +%%%%%%% PLEASE NOTE THE FOLLOWING POTENTIAL PROBLEMS: +% +%% 1. A bug exists that prevents a page number from printing on the first +%% page of the paper. Please ignore this problem. It will be handled +%% after you submit your paper. +%% +%% 2. The use of \topinsert and \midinsert to allow space for figures can +%% result in unusual page breaks, or unusual looking pages in general. +%% If you encounter such a situation, contact the SIAM office at the +%% address listed above for instructions. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\input ptexpprt.sty +\voffset=.25in +\titlepage + +% It will be necessary to hard code the chapter title and chapter authors. +% You must decide where to break the lines. For the authors, please follow +% the following conventions: +% 1. If 2 authors are on a line, use \hskip4pc between them. If 3 authors, +% use \hskip2pc. Do not put more than 3 authors on the same line. +% 2. Use the following notation: asterisk, dagger, double-dagger, section +% symbol, paragraph symbol, double asterisk. If more are needed, contact +% the SIAM office. + +\centerline{\chapterfont Chapter 1} +\vskip2pt +\centerline{\titlefont SIAM/ACM Preprint Series Macros for +Plain TeX\footnote*{Supported by GSF grants ABC123, DEF456, and GHI 789.}} +\vskip15pt +\centerline{\authorfont J. Corey Gray\footnote\dag{Society for Industrial and +Applied Mathematics.}\hskip2pc Tricia Manning\footnote\ddag{Society for +Industrial and Applied Mathematics.}\hskip2pc Vickie Kearn\footnote\S{Society +for Industrial and Applied Mathematics.}} +\vskip2pc + +\begindoublecolumns + +% Use \headone for the first level headings. The macro will automatically +% number the headings. + +\headone{Problem Specification} +In this paper, we consider the solution of the $N \times N$ linear +system +$$A x = b\leqno(1.1)$$ +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +$$ +P A P^{t} = L D L^{t} +$$ +where $L$ is unit lower triangular and $D$ is diagonal. + +\headone{Design Considerations} +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \headtwo for second level headings. They will be numbered automatically. + +\headtwo{Robustness}In \S 1.2, we review the bordering algorithm, and introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. + +\headtwo{Versatility} In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in +this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. + + +% Use \thm and \endthm for theorems. They must be numbered manually. +% Lemmas (\lem \endlem), corollaries (\cor \endcor), and +% propositions (\prop \endprop) are coded the same as theorems and must +% also be numbered manually. + +\thm{Theorem 2.1.} The method was extended to three +dimensions. For the standard multigrid +coarsening +(in which, for a given grid, the next coarser grid has $1/8$ +as many points), anisotropic problems require plane +relaxation to +obtain a good smoothing factor.\endthm + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \prf to begin a proof. + +\prf{Proof} In this paper we consider two methods. The first method +is +basically the method considered with two differences: +first, we perform plane relaxation by a two-dimensional +multigrid method, and second, we use a slightly different +choice of +interpolation operator, which improves performance +for nearly singular problems. In the second method coarsening +is done by successively coarsening each. + +% Use \dfn to begin definitions. + +\dfn{Definition 1.2.1.}We describe the two methods in \S\ 1.2. This is a +definition in the plain tex macro. + +This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in +this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +% Use \midinsert along with \caption to allow space for +% figures. See note above in problem section. +%\midinsert\vskip15.5pc\caption{Fig. 1.1. {\nineit This is figure 1.}} +% \endcaption\endinsert + +In this paper, we consider the solution of the $N \times N$ linear +system +where $A$ is large, sparse, symmetric, and positive definite. We consider +the direct solution of by means of general sparse Gaussian +elimination. In such a procedure, we find a permutation matrix $P$, and +compute the decomposition +where $L$ is unit lower triangular and $D$ is diagonal. + +\headone{Design Considerations} +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Several good ordering algorithms (nested dissection and minimum degree) +are available for computing $P$ [1], [2]. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. +Our purpose here is to examine the nonnumerical complexity of the +sparse elimination algorithm given in [3]. +As was shown there, a general sparse elimination scheme based on the +bordering algorithm requires less storage for pointers and +row/column indices than more traditional implementations of general +sparse elimination. This is accomplished by exploiting the m-tree, +a particular spanning tree for the graph of the filled-in matrix. +Since our interest here does not +focus directly on the ordering, we assume for convenience that $P=I$, +or that $A$ has been preordered to reflect an appropriate choice of $P$. + +% Use \lem and \endlem to begin and end lemmas. + +\lem{Lemma 2.1.}We discuss first the choice for $I_{k-1}^k$ +which is a generalization. We assume that $G^{k-1}$ is +obtained +from $G^k$ +by standard coarsening; that is, if $G^k$ is a tensor product +grid $G_{x}^k \times G_{y}^k \times G_{z}^k$, +$G^{k-1}=G_{x}^{k-1} \times G_{y}^{k-1} \times G_{z}^{k-1}$, +where $G_{x}^{k-1}$ is obtained by deleting every other grid +point of $G_x^k$ and similarly for $G_{y}^k$ and $G_{z}^k$. +\endlem + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in +this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +% Use \headtwo for second level headings. They will be numbered automatically. + +\headone{Problem Solving}In \S 1.2, we review the bordering algorithm, and +introduce +the sorting and intersection problems that arise in the +sparse formulation of the algorithm. + +\headtwo{Versatility} In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in +this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + + +\headtwo{Complexity}For the old approach, we show that the +complexity of the intersection problem is $O(n^{3})$, the same +as the complexity of the numerical computations. For the +new approach, the complexity of the second part is reduced to +$O(n^{2} (\log n)^{2})$. + +To our knowledge, the m-tree previously has not been applied in this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. In \S 1.3., we analyze the complexity of the old and new +approaches to the intersection problem for the special case of +an $n \times n$ grid ordered by nested dissection. The special +structure of this problem allows us to make exact estimates of +the complexity. To our knowledge, the m-tree previously has not been applied in +this +fashion to the numerical factorization, but it has been used, +directly or indirectly, in several optimal order algorithms for +computing the fill-in during the symbolic factorization phase +[4] - [10], [5], [6]. + +% The command \Refs sets the word Reference as a heading and allows the proper +% amount of space before the start of the references. Each reference must +% begin with \ref\\. The article or title of the reference should be in +% italic. Use the \it command within brackets. End each reference with +% \endref and allow two returns between references. Use the command +% \sameauthor (see reference 8) when the same author or group of authors +% is listed consecutively. + +\Refs + +\ref 1\\R.~E. Bank, {\it PLTMG users' guide, edition 5.0}, tech. report, + Department of Mathematics, University of California, San Diego, CA, +1988.\endref + +\ref 2\\R.~E. Bank, T.~F. Dupont, and H.~Yserentant, {\it The hierarchical basis + multigrid method}, Numer. Math., 52 (1988), pp.~427--458.\endref + +\ref 3\\R.~E. Bank and R.~K. Smith, {\it General sparse elimination requires no + permanent integer storage}, SIAM J. Sci. Stat. Comput., 8 (1987), + pp.~574--584.\endref + +\ref 4\\S.~C. Eisenstat, M.~C. Gursky, M.~Schultz, and A.~Sherman, {\it + Algorithms and data structures for sparse symmetric gaussian elimination}, + SIAM J. Sci. Stat. Comput., 2 (1982), pp.~225--237.\endref + +\ref 5\\A.~George and J.~Liu, {\it Computer Solution of Large Positive + Definite Systems}, Prentice Hall, Englewood Cliffs, NJ, 1981.\endref + +\ref 6\\K.~H. Law and S.~J. Fenves, {\it A node addition model for symbolic + factorization}, ACM TOMS, 12 (1986), pp.~37--50.\endref + +\ref 7\\J.~W.~H. Liu, {\it A compact row storage scheme for factors + using elimination trees}, ACM TOMS, 12 (1986), pp.~127--148.\endref + +\ref 8\\\sameauthor , {\it The role of + elimination trees in sparse factorization}, Tech. Report CS-87-12,Department + of Computer Science, York University, Ontario, Canada, 1987.\endref + +\ref 9\\D.~J. Rose, {\it A graph theoretic study of the numeric solution of + sparse positive definite systems}, in Graph Theory and Computing, + Academic Press, New York, 1972.\endref + +\ref 10\\D.~J. Rose, R.~E. Tarjan, and G.~S. Lueker, {\it Algorithmic aspects of + vertex elimination on graphs}, SIAM J. Comput., 5 (1976), pp.~226--283.\endref +\enddoublecolumns + +\bye +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CUT HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%% ptexpprt.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This is a file of macros and definitions for creating a chapter +% for publication in the ACM/SIAM Preprint Series using Plain TeX. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org +% + +% Report the version. +\message{*** ACM/SIAM Plain TeX Preprint Series macro package, version 1.0, +September 24, 1990.***} + +% Make the @ sign a letter for internal control sequences. +\catcode`\@=11 +% +% +% + + + +%%% DIMENSIONS %%% + +\newdimen\pagewidth +\hsize=41pc +\pagewidth=\hsize +\newdimen\pageheight +\vsize=50pc +\pageheight=\vsize +\newdimen\ruleht +\ruleht=.5pt +\maxdepth=2.2pt + +\parindent=18truept +\def\firstpar{\parindent=0pt\global\everypar{\parindent=18truept}} +\parskip=0pt plus 1pt + + +%%% FONTS %%% + +\font\tenrm=cmr10 +\font\tenbf=cmbx10 +\font\tenit=cmti10 +\font\tensmc=cmcsc10 +\def\tenpoint{% + \def\rm{\tenrm}\def\bf{\tenbf}% + \def\it{\tenit}\def\smc{\tensmc} + \textfont0=\tenrm \scriptfont0=\sevenrm + \textfont1=\teni \scriptfont1=\seveni + \textfont2=\tensy \scriptfont2=\sevensy + \textfont3=\tenex \scriptfont3=\tenex +\baselineskip=12pt\rm}% + +\font\ninerm=cmr9 +\font\ninebf=cmbx9 +\font\nineit=cmti9 +\def\ninepoint{% + \def\rm{\ninerm}\def\bf{\ninebf}% + \def\it{\nineit}\baselineskip=11pt\rm}% + +\font\eightrm=cmr8 +\font\eightbf=cmbx8 +\font\eightit=cmti8 +\font\eighti=cmmi8 +\font\eightsy=cmsy8 +\def\eightpoint{% + \def\rm{\eightrm}\def\bf{\eightbf}% + \def\it{\eightit}\def\smc{\eightrm}\baselineskip=10pt\rm% + \textfont0=\eightrm \scriptfont0=\sixrm + \textfont1=\eighti \scriptfont1=\sixi + \textfont2=\eightsy \scriptfont2=\sixsy + \textfont3=\tenex \scriptfont3=\tenex +} + +\font\sixrm=cmr6 +\font\sixbf=cmbx6 +\font\sixi=cmmi6 +\font\sixsmc=cmr5 +\font\sixsy=cmsy6 +\def\sixpoint{% + \def\rm{\sixrm}\def\bf{\sixbf}% + \def\smc{\sixsmc}\baselineskip=8pt\rm}% + +\fontdimen13\tensy=2.6pt +\fontdimen14\tensy=2.6pt +\fontdimen15\tensy=2.6pt +\fontdimen16\tensy=1.2pt +\fontdimen17\tensy=1.2pt +\fontdimen18\tensy=1.2pt + +\font\eightrm=cmr8 +\font\ninerm=cmr9 +\font\twelverm=cmr10 scaled\magstep1 +\font\twelvebf=cmbx10 scaled\magstep 1 +\font\sixteenrm=cmr10 scaled\magstep2 +\def\titlefont{\sixteenrm} +\def\chapterfont{\twelvebf} +\def\authorfont{\twelverm} +\def\rheadfont{\tenrm} +\def\smc{\tensmc} + + + + +%%% COUNTERS FOR HEADINGS %%% + +\newcount\headcount +\headcount=1 +\newcount\seccount +\seccount=1 +\newcount\subseccount +\subseccount=1 +\def\reset{\global\seccount=1} +\global\headcount=0 + +%%% HEADINGS %%% + +\def\headone#1{\global\advance\headcount by 1 +\vskip12truept\parindent=0pt{\tenpoint\bf\the\headcount +\hskip11truept #1.}\par\nobreak\firstpar\global\advance\headcount by 0 + %\global\advance\seccount by 1 +\reset\vskip2truept} + +\def\headtwo#1{%\advance\seccount by -1% + \vskip12truept\parindent=0pt{\tenpoint\bf\the\headcount.% + \the\seccount\hskip11truept #1.}\enspace\ignorespaces\firstpar + \global\advance\headcount by 0\global\advance\seccount by 1} +% \global\advance\subseccount by 1} + + +%%% THEOREMS, PROOFS, DEFINITIONS, etc. %%% + +\def\thm#1{{\smc +#1\enspace} +\begingroup\it\ignorespaces\firstpar} + +\let\lem=\thm +\let\cor=\thm +\let\prop=\thm + +\def\endthm{\endgroup} +\let\endlem=\endthm +\let\endcor=\endthm +\let\endprop=\endthm + +\def\prf#1{{\it #1.}\rm\enspace\ignorespaces} +\let\rem=\prf +\let\case=\prf + + +\def\dfn#1{{\smc +#1\enspace} +\rm\ignorespaces} + + + +%%% FIGURES AND CAPTIONS %%% + +\def\caption#1\endcaption{\vskip18pt\ninerm\centerline{#1}\vskip18pt\tenrm} + +\newinsert\topins \newif\ifp@ge \newif\if@mid +\def\topinsert{\@midfalse\p@gefalse\@ins} +\def\midinsert{\@midtrue\@ins} +\def\pageinsert{\@midfalse\p@getrue\@ins} +\skip\topins=0pt %no space added when a topinsert is present +\count\topins=1000 %magnification factor (1 to 1) +\dimen\topins=\maxdimen +\def\@ins{\par\begingroup\setbox0=\vbox\bgroup} +\def\endinsert{\egroup + \if@mid \dimen@=\ht0 \advance\dimen@ by\dp0 + \advance\dimen@ by12\p@ \advance\dimen@ by\pagetotal + \ifdim\dimen@>\pagegoal \@midfalse\p@gefalse\fi\fi + \if@mid \bigskip \box0 \bigbreak + \else\insert\topins{\penalty100 + \splittopskip=0pt \splitmaxdepth=\maxdimen \floatingpenalty=0 + \ifp@ge \dimen@=\dp0 + \vbox to\vsize{\unvbox0 \kern-\dimen@} + \else \box0 \nobreak\bigskip\fi}\fi\endgroup} + + +%%% REFERENCES %%% + +\newdimen\refindent@ +\newdimen\refhangindent@ +\newbox\refbox@ +\setbox\refbox@=\hbox{\ninepoint\rm\baselineskip=11pt [00]}% Default 2 digits +\refindent@=\wd\refbox@ + +\def\resetrefindent#1{% + \setbox\refbox@=\hbox{\ninepoint\rm\baselineskip=11pt [#1]}% + \refindent@=\wd\refbox@} + +\def\Refs{% + \unskip\vskip1pc + \leftline{\noindent\tenpoint\bf References}% + \penalty10000 + \vskip4pt + \penalty10000 + \refhangindent@=\refindent@ + \global\advance\refhangindent@ by .5em + \global\everypar{\hangindent\refhangindent@}% + \parindent=0pt\ninepoint\rm} + +\def\sameauthor{\leavevmode\vbox to 1ex{\vskip 0pt plus 100pt + \hbox to 2em{\leaders\hrule\hfil}\vskip 0pt plus 300pt}} + +\def\ref#1\\#2\endref{\leavevmode\hbox to \refindent@{\hfil[#1]}\enspace #2\par} + + +%%% OUTPUT %%% + +\newinsert\margin +\dimen\margin=\maxdimen +\count\margin=0 \skip\margin=0pt + + +\def\footnote#1{\edef\@sf{\spacefactor\the\spacefactor}#1\@sf + \insert\footins\bgroup\eightpoint\hsize=30pc + \interlinepenalty100 \let\par=\endgraf + \leftskip=0pt \rightskip=0pt + \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 +\smallskip +\item{#1}\bgroup\strut\aftergroup\@foot\let\next} +\skip\footins=6pt plus 2pt minus 4pt +\dimen\footins=30pc + +\newif\iftitle + + +\def\titlepage{\global\titletrue\footline={\hss\ninepoint\rm\folio\hss}} +\def\rhead{\ifodd\pageno CHAPTER TITLE + \else AUTHORS NAMES\fi} + +\def\makefootline{\ifnum\pageno>1\global\footline={\hfill}\fi + \baselineskip24\p@\vskip12\p@\fullline{\the\footline}} +\def\leftheadline{\hbox to \pagewidth{ + \vbox to 10pt{} + {\kern-8pt\tenrm\folio\hfill\ninerm\rhead}}} +\def\rightheadline{\hbox to \pagewidth{ + \vbox to 10pt{} + \kern-8pt\ninerm\rhead\hfil + {\kern-1pc\tenrm\folio}}} + +\def\onepageout#1{\shipout\vbox{ +\offinterlineskip + \vbox to 2.25pc{% + \iftitle \global\titlefalse +% \setcornerrules + \else\ifodd\pageno\rightheadline\else\leftheadline\fi\fi \vfill} +\vbox to \pageheight{ + \ifvoid\margin\else + \rlap{\kern31pc\vbox to0pt{\kern4pt\box\margin \vss}}\fi + #1 % +\ifvoid\footins\else + \vskip\skip\footins \kern 0pt + \hrule height\ruleht width 2.5pc \kern-\ruleht \kern 0pt + \unvbox\footins\fi +\boxmaxdepth=\maxdepth}} +\advancepageno} + +\def\setcornerrules{\hbox to \pagewidth{ + \vrule width 1pc height\ruleht \hfil \vrule width 1pc} + \hbox to \pagewidth{\llap{\sevenrm(page \folio)\kern1pc} + \vrule height1pc width\ruleht depth0pt + \hfil \vrule width\ruleht depth0pt}} +\output{\onepageout{\unvbox255}} + +\newbox\partialpage +\def\begindoublecolumns{\begingroup + \output={\global\setbox\partialpage=\vbox{\unvbox255\bigskip}}\eject + \output={\doublecolumnout} \hsize=20pc \vsize=101pc} +\def\enddoublecolumns{\output={\balancecolumns}\eject + \endgroup \pagegoal=\vsize} + +\def\doublecolumnout{\splittopskip=\topskip \splitmaxdepth=\maxdepth + \dimen@=50pc \advance\dimen@ by-\ht\partialpage + \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ + \onepageout\pagesofar \unvbox255 \penalty\outputpenalty} +\def\pagesofar{\unvbox\partialpage + \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}} +\def\balancecolumns{\setbox0=\vbox{\unvbox255} \dimen@=\ht0 + \advance\dimen@ by\topskip \advance\dimen@ by-\baselineskip + \divide\dimen@ by2 \splittopskip=\topskip +{\vbadness=10000 \loop \global\setbox3=\copy0 + \global\setbox1=\vsplit3 to\dimen@ + \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt \repeat} + \setbox0=\vbox to\dimen@{\unvbox1} \setbox2=\vbox to\dimen@{\unvbox 3} +\pagesofar} + + + + +% Turn off @ as being a letter. +% +\catcode`\@=13 + +% End of ptexpprt.sty + + +CUT HERE............ diff --git a/texmf-dist/fonts/enc/dvips/mathtime-ltx/mh2scr.enc b/texmf-dist/fonts/enc/dvips/mathtime-ltx/mh2scr.enc new file mode 100644 index 00000000..41685991 --- /dev/null +++ b/texmf-dist/fonts/enc/dvips/mathtime-ltx/mh2scr.enc @@ -0,0 +1,72 @@ +%% +%% This is file `mh2scr.enc', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `mh2screnc') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com + % + % Encoding file to reencode MathematicalPi-Two font by Adobe so that + % its script alphabet is in a sensible position + % and thus can be used with \DeclareMathAlphabet + % + % Usage: + % + % generate tfm + % + % afm2tfm mh2_____ -T mh2scr.enc mh2scr + % + % add mapping line to dvips config file: + % + % mh2 MathematicalPi-Two <mh2_____.pfa + % mh2scr MathematicalPi-Two "mh2scrEncoding ReEncodeFont" <mh2scr.enc <mh2_____.pfa + % + % + % +/mh2scrEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'10x + /space /H5101 /H5102 /H5103 /H5104 /H5105 /H5106 /H5107 + /H5108 /H5109 /H5110 /H5111 /H5112 /H5113 /H5114 /H5115 + /H5116 /H5117 /H5118 /H5119 /H5120 /H5121 /H5122 /H5123 + /H5124 /H5125 /H5126 /.notdef /.notdef /.notdef /.notdef /.notdef + % +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'20 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'30 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%% +%% +%% End of file `mh2scr.enc'. diff --git a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-v.ofm b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-v.ofm Binary files differindex 6fefdc79..d11349c9 100644 --- a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-v.ofm +++ b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-v.ofm diff --git a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w6-v.ofm b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w6-v.ofm Binary files differindex 149f56c4..cc2e0aec 100644 --- a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w6-v.ofm +++ b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w6-v.ofm diff --git a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramaru-w4-v.ofm b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramaru-w4-v.ofm Binary files differindex 8f17b089..97d24831 100644 --- a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramaru-w4-v.ofm +++ b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramaru-w4-v.ofm diff --git a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w3-v.ofm b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w3-v.ofm Binary files differindex e0baf5a7..0f860707 100644 --- a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w3-v.ofm +++ b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w3-v.ofm diff --git a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w6-v.ofm b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w6-v.ofm Binary files differindex 5244e6bd..7d31179d 100644 --- a/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w6-v.ofm +++ b/texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hiramin-w6-v.ofm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-h.tfm Binary files differindex 68f85022..2d3a24b3 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-h.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-v.tfm Binary files differindex 6307bad7..e1c35566 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-v.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-h.tfm Binary files differindex dadf10e3..a62f2f63 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-h.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-v.tfm Binary files differindex 10985189..68aeee03 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-v.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-h.tfm Binary files differindex 0745d58e..8a33db5b 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-h.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-v.tfm Binary files differindex 779281ad..b3c8610d 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-v.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-h.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-h.tfm Binary files differindex edcbeb31..1f66aa86 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-h.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-h.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-v.tfm Binary files differnew file mode 100644 index 00000000..b1926b42 --- /dev/null +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-v.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-h.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-h.tfm Binary files differindex 797410bd..da9b468c 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-h.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-h.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-v.tfm Binary files differindex 02d2d7e5..66d0589b 100644 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-v.tfm +++ b/texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-v.tfm diff --git a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-v.tfm b/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-v.tfm Binary files differdeleted file mode 100644 index 191d0783..00000000 --- a/texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-v.tfm +++ /dev/null diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-h.vf Binary files differindex 017c2ed7..b8331909 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-v.vf Binary files differindex 20605fa0..f37f109e 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-h.vf Binary files differindex 77dd244a..c2bf2c4e 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-v.vf Binary files differindex bb69bd20..5a065d56 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-h.vf Binary files differindex ef56aa0a..00893b90 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-v.vf Binary files differindex 573414a8..c3486b12 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiramaruw4-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-h.vf Binary files differindex aeeb2500..baa833e9 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-v.vf Binary files differindex 2bc57b47..a47d42fe 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-h.vf Binary files differindex 4f590774..bbb44af7 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-v.vf Binary files differindex dd4b56b0..cfc61d55 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-h.vf Binary files differindex c72b7301..5cabb6b6 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-v.vf Binary files differindex 104ae67b..b64a8758 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-h.vf Binary files differindex e8d608ed..bb39ca81 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-v.vf Binary files differindex 6d54eb6c..717cbd13 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-h.vf Binary files differindex 2bdf9668..ae64c32f 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-v.vf Binary files differindex f5c84211..0579cb89 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-h.vf Binary files differindex 40e0b3f4..bc43a1a4 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-v.vf Binary files differindex d4ffe03c..c00281e5 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-v.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-h.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-h.vf Binary files differindex c721f3da..797c1622 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-h.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-h.vf diff --git a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-v.vf b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-v.vf Binary files differindex 9e8a2150..8f021cf7 100644 --- a/texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-v.vf +++ b/texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-v.vf diff --git a/texmf-dist/source/latex/mathtime-ltx/mathtime.dtx b/texmf-dist/source/latex/mathtime-ltx/mathtime.dtx new file mode 100644 index 00000000..53adb580 --- /dev/null +++ b/texmf-dist/source/latex/mathtime-ltx/mathtime.dtx @@ -0,0 +1,1187 @@ +% +% \iffalse +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +%% This package may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +% +% +%<*dtx> + \ProvidesFile{mathtime.dtx} +%</dtx> +%<package>\NeedsTeXFormat{LaTeX2e}[1995/01/01] +%<mathtime>\ProvidesPackage{mathtime} +%<mathpi>\ProvidesPackage{mathpi} +%<driver>\ProvidesFile{mathtime.drv} +% \fi +% \ProvidesFile{mathtime.dtx} + [1999/03/29 v1.1% +%<mathtime> mathtime +%<mathpi> mathpi + font support (FMi/DPC)] +% +% \iffalse +%<*driver> +\documentclass{ltxdoc} +%\usepackage{mathtime} +\DocInput{mathtime.dtx} +\end{document} +%</driver> +% \fi +% +% \CheckSum{853} +% +% \GetFileInfo{mathtime.dtx} +% \begin{document} +% \title{The \textsf{mathtime} and \textsf{mathpi} packages\thanks +% {This file has version number \fileversion, +% last revised \filedate.}\ \thanks{Development of +% this package was commissioned by Y\&Y.}} +% +% \date{\filedate} +% \author{Frank Mittelbach with support by David Carlisle} +% \maketitle +% +% \section{The mathtime package} +% +% The mathtime package contains the code to support the Math Time fonts. +% +% \subsection{Usage and options} +% +% To load support for the Math Time fonts add the following +% declaration to the preamble of your \LaTeX{} document: +% \begin{quote} +% \verb=\usepackage[=\meta{options}\verb=]{mathtime}= +% \end{quote} +% This package supports several options: +% \begin{description} +% \item[nobold] default. +% +% \item[cmbold] use cm bold fonts (not recommended, the bold fonts +% will then be encoded differently to the normal weight ones, and +% no account of this will be taken). +% +% \item[mtbold] This provides bold and heavy math versions coming +% with the Math Time Plus fonts. +% +% \item[heavybold] Also requires the Math Time Plus font set, just +% define bold math version (not heavy) but use the heavy fonts where +% available. +% +% In all cases the user level command |\heavymath| is defined to be +% |\boldmath| if the heavy math version is not defined. +% +% \item[slantedgreek] Make the lowercase greek letters slanted +% (by default). +% Note that the uppercase greek letters are always upright. +% +% \item[uprightgreek] Make the lowercase greek letters upright. +% +% \item[subscriptcorrection] +% Redefine |_| so that it automatically adds negative kerns in +% subscripts if they start with either +% \texttt{j}, \texttt{p}, or \texttt{f}. +% This option might generate problems if other packages are +% loaded as well. +% +% The subscript correction also be be turned on and off within the +% document using the commands:\\ +% |\enablesubscriptcorrection| and +% |\disablesubscriptcorrection|. +% +% \item[nosubscriptcorrection] +% Disable the the subscript correction (default). +% +% \item[cmcal] +% This option uses the Computer Modern calligraphic alphabet +% for |\mathcal| --- a bad choice, but what do you do if nothing else +% is at your disposal. We make this the default as we know that it is +% always around. +% +% \item[lucidacal] This options sets up |\mathcal| to load the Lucida +% calligraphic font as a math alphabet. It also defines |\mathbcal| to +% always refer to the bold series of this alphabet. +% +% \item[lucidascr] Like \texttt{lucidacal} but puts the font into +% |\mathscr|. This might be useful if for some reason |\mathcal| +% already contains some special calligraphic alphabet. +% +% \item[mtplusscr] This options sets up |\mathscr| to load the Math Time +% Plus script font as a math alphabet. It also defines |\mathbscr| to +% always refer to the bold series of this alphabet. +% +% \item[mtpluscal] Like \texttt{mtplusscr} but puts the font into the +% |\mathcal| alphabet. +% +% \item[noTS1] +% The use of the mathtime fonts with text fonts encoded in the +% standard OT1 or T1 encodings leaves a few symbols (section and +% paragraph marks, and dagger symbols) undefined. +% By default the TS1 `text companion encoding' will be used to access +% these symbols, but this option suppresses that. +% If the LY1 option (below) is used this option +% will be implied and dagger etc will be drawn from the operators font. +% +% \item[OT1] Use OT1 encoing for the operators font. This is the +% normal behaviour, but in this package the default behaviour is to +% use the default text encoding for the operators font. +% +% \item[T1] Use T1 encoding for the operators font. +% +% \item[LY1] Use LY1 (Y\&Y's `locally' defined texnansi encoding) +% In the operators font. This option implies the noTS1 option. +% Dagger etc will be drawn from the operators font in this case. +% +% \end{description} +% +% Not all options can be used together, e.g., one can at most select one +% of the options setting up |\mathcal|, if both options are given +% \texttt{mtpluscal} will win over \texttt{luciadcal} and in case of +% |\mathscr|, +% \texttt{lucidascr} will be the winner over \texttt{mtplusscr}. +% +% This package makes a lot of font re-assignments. Normally these +% generate warning messages on the terminal, however getting so many +% messages would be distracting, so a further three options control the +% font tracing. Even more control may be obtained by loading the +% \textsf{tracefnt} package. +% +% \begin{description} +% \item[errorshow] Only show font \emph{errors} on the terminal. +% Warnings are just sent to the log file. This is the default +% for this package. +% +% \item[warningshow] Show font warnings on the terminal. This +% corresponds to the usual \LaTeX\ behaviour. +% +% \item[nofontinfo] Suppress all font warnings, even from the log file. +% \end{description} +% +% +% +% \subsection{Text fonts} +% The package sets up Times, Helvetica, and Courier as the default +% text fonts (selected through |\textrm|, |\textsf|, and |\texttt|) +% unless the text fonts have been explicitly set, e.g., by loading a +% package like \texttt{newcent} before loading the \texttt{mathtime} +% package. +% More exactly the package checks if |\rmdefault| refers to \texttt{cmr} +% and in that case changes all three defaults. +% +% To support a few symbols not available in the Math Time fonts (but +% normally available with \LaTeX) the \texttt{mathtime} package has to +% load the the symbol companion font for Times (i.e., the TS1 encoded +% font). +% To preserve space we do not load the corresponding package +% (\texttt{texcomp}) but only declare those characters we do need. +% If you do want all symbols from this font available in your text load +% the \texttt{textcomp} package in the preamble. Conversely you +% may suppress the declaration of these symbols from the TS1 encoded +% fonts by use of the \texttt{nots1} package option, in which case +% the default definitions refering to the standard \TeX\ encodings +% and hence possibly the Computer Modern fonts will be used. +% +% \subsection{Provided math alphabets} +% +% The package provides be default the five standard math alphabets +% |\mathrm|, |\mathbf|, |\mathit|, |\mathsf| and |\mathtt| pointing +% to the document text fonts, the first three to the roman font +% in normal, bold, and italic, the others to the sans serif and the +% typewriter font. +% +% The |\mathcal| and |\mathbcal| defaults to the Computer Modern +% calligraphic alphabet but can be modified with options as decribed +% above. +% +% Script alphabets with |\mathscr| and |\mathbscr| are only available +% if explicitly selected by an option. +% +% Alternatively one can select other fonts for |\mathscr| and +% |\mathcal|, for example, by loading the \texttt{mathpi} package +% described below. +% An alternative (although not blending very well) would be the +% the Euler Script fonts from the AMS font collection which can be +% loaded as either |\mathcal| or |\mathscr| using the \texttt{eucal} +% package. +% +% A Fraktur alphabet (|\mathfrak|) can be loaded with the +% \texttt{mathpi} fonts (a good match) or by loading the \texttt{eufrak} +% package from the AMS font collection. +% +% +% \subsection{Additional or changed symbols} +% +% The Math Time fonts contain a small number of additional symbols which +% are made available by the \texttt{mathtime} package. +% See the general documentation of the Math Time fonts. +% +% \subsection{Font sizes} +% +% \LaTeX{} is set up in a way that the user normally uses commands +% that hide font sizes rather than specifying font sizes explicitly, +% e.g., instead of |\fontsize{17pt}{19pt}|\allowbreak|\selectfont| +% a command like |\LARGE| is used (which does in fact a bit more than +% just setting the font size). +% +% It is the task of a document class and not that task of a support +% package like this one to decide about the absolute sizes used in a +% document. +% The task of a package like \texttt{mathtime} is to provide sensible +% values for math sizes given some text size. +% +% The default ratio for script fonts is 0.76 +% and for scriptscript fonts 0.6. +% +% +% \section{The mathpi package} +% +% The mathpi package provides support for the Adobe math pi fonts by +% declaring a number of math alphabets. It can be used independly of the +% mathtime package. At least one option has to be given, otherwise +% loading this package will have no effect. +% \begin{description} +% \item[mathfrak] Defines |\mathfrak| to refer to the fraktur alphabet +% from the Math Pi Two font. +% \item[mathscr] Defines |\mathscr| to refer to the script alphabet +% from the Math Pi Two font. This needs the font especially encoded, +% see \texttt{mtfonts.fdd} for details. +% \item[mathcal] Defines the script alphabet under the math alphabet +% command usually used for a calligraphic font, otherwise like +% \texttt{mathscr}. +% \item[mathbb] Defines |\mathbb| to refer to the blackboard bold math +% alphabet from Math Pi Six. +% \end{description} +% +% +% \StopEventually{} +% +% +% +% \section{The implementation of mathtime} +% +% \changes{v0.2}{1996/12/12} +% {nobold cmbold mtbold and heavybold options} +% \changes{v0.3}{1996/12/17} +% {nobold cmbold mtbold and heavybold options} +% \changes{v0.7}{1997/01/10} +% {Add font tracing control options} +% \changes{v0.9}{1997/01/16} +% {First public release} +% \changes{v1.0a}{1997/02/14} +% {First ctan release} +% \changes{v1.0d}{1997/09/01} +% {Remove use of double quote hex convention} +% +% \subsection{Options} +% +% We start with declaring the options. For the (un)slanted greek we need +% store the shape information in a macro. For the various bold options +% we use |\boldmath| as a marker since this needs redefinition anyway. +% \begin{macrocode} +%<*mathtime> +\newcommand\greekshape{} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{slantedgreek}{\renewcommand\greekshape{it}} +\DeclareOption{uprightgreek}{\renewcommand\greekshape{n}} +\DeclareOption{nobold}{\let\boldmath=u} +\DeclareOption{cmbold}{\let\boldmath=c} +\DeclareOption{mtbold}{\let\boldmath=m} +\DeclareOption{heavybold}{\let\boldmath=h} +% \end{macrocode} +% +% \begin{macrocode} +\newcommand\enablesubscriptcorrection {\catcode`\_=12\relax} +\newcommand\disablesubscriptcorrection{\catcode`\_=8\relax} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{nosubscriptcorrection}{\disablesubscriptcorrection} +\DeclareOption{subscriptcorrection} {\enablesubscriptcorrection} +% \end{macrocode} +% +% We signal that we want Lucida calligraphic by defining |\mathcal| +% to be the letter |l|. In a similar fashion we handle |\mathscr|. +% \begin{macrocode} +\DeclareOption{cmcal} {\let\mathcal=c} +\DeclareOption{lucidacal}{\let\mathcal=l} +\DeclareOption{mtplusscr}{\let\mathscr=s} +\DeclareOption{mtpluscal}{\let\mathcal=s} +\DeclareOption{lucidascr}{\let\mathscr=l} +% \end{macrocode} +% +% +% The use of the mathtime fonts with text fonts encoded in the standard +% OT1 or T1 encodings leaves a few symbols (section and paragraph marks, +% and dagger symbols) undefined. By default the TS1 `text companion +% encoding' will be used to access these symbols, but this option +% suppresses that. (Leaving you to define these symbols yourself +% some other way, or to accept the default definitions, from +% Computer Modern.) +% \changes{v0.9b}{1997/01/31} +% {option name change nots1 noTS1} +% \begin{macrocode} +\DeclareOption{noTS1} {\let\symtextcomp\relax} +% \end{macrocode} +% +% The next few options control the encoding used for the `operators' +% font. When using Computer Modern Math fonts an OT1 font must be used +% even if an alternative encoding, such as T1, is used for the text +% fonts. This is due to the fact that the default math setup assumes +% that certain symbols (such as uppercase Greek) are available from the +% text font used for the operators symbol font. With this package +% this restriction is not needed as all symbols are accessed from the +% mathtime fonts. +% \changes{v0.9b}{1997/01/31} +% {New options for operator font encoding} +% By default use the current text encoding. +% \begin{macrocode} +\let\operator@encoding\encodingdefault +% \end{macrocode} +% +% Use OT1 encoded `operators' fonts. +% \begin{macrocode} +\DeclareOption{OT1}{\def\operator@encoding{OT1}} +% \end{macrocode} +% +% Use T1 encoded `operators' fonts. +% \begin{macrocode} +\DeclareOption{T1}{\def\operator@encoding{T1}} +% \end{macrocode} +% +% Use LY1 (The local `texnansi' encoding used by the Y\&Y \TeX\ system) +% encoded `operators' fonts. This option implies the `noTS1' option +% as the LY1 encoding includes the dagger and other symbols. +% \begin{macrocode} +\DeclareOption{LY1}{\def\operator@encoding{LY1}\ExecuteOptions{noTS1}} +% \end{macrocode} +% +% This package makes a lot of redefinitions. The warnings can be rather +% annoying so some package options control whether the information +% is printed to the terminal or log file. More control can be obtained +% by loading the \textsf{tracefnt} package. +% +% Just show font errors; Warning and info to the log file. +% The default for this package. +% \begin{macrocode} +\DeclareOption{errorshow}{% + \def\@font@info#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Info: \space\space\space#1}}% + \def\@font@warning#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Warning: #1}}} +% \end{macrocode} +% +% The normal \LaTeX\ default, Font Info to the log file and Font +% Warning to the terminal. +% \begin{macrocode} +\DeclareOption{warningshow}{% + \def\@font@info#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Info: \space\space\space#1}}% + \def\@font@warning#1{% + \GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Warning: #1}}} +% \end{macrocode} +% +% On some machines writing all the log info may slow things down +% so extra option not to log font changes at all. +% \begin{macrocode} +\DeclareOption{nofontinfo}{% + \let\@font@info\@gobble + \let\@font@warning\@gobble} +% \end{macrocode} +% +% The defaults: +% \begin{macrocode} +\ExecuteOptions{% + slantedgreek,nobold,nosubscriptcorrection,cmcal,errorshow} +% \end{macrocode} +% +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% If the text font default for roman is CMR we switch to Times, +% otherwise we assume that the user has already added a package +% selecting the text font faces. +% \begin{macrocode} +\edef\@tempa{\rmdefault} +\def\@tempb {cmr} +\ifx\@tempa\@tempb + \renewcommand*\sfdefault{phv} + \renewcommand*\rmdefault{ptm} + \renewcommand*\ttdefault{pcr} + \renewcommand*\bfdefault{b} +\fi +% \end{macrocode} +% +% \subsection{Math Font Declarations} +% +% As the Math Time fonts unfortunately do come with their private +% encoding we need to make those encodings known to \LaTeX. +% \begin{macrocode} +\DeclareFontEncoding{MY1}{}{} +\DeclareFontEncoding{MY2}{}{} +\DeclareFontEncoding{MY3}{}{} +\DeclareFontSubstitution{MY1}{mtt}{m}{it} +\DeclareFontSubstitution{MY2}{mtt}{m}{n} +\DeclareFontSubstitution{MY3}{mtt}{m}{n} +% \end{macrocode} +% +% Not clear if we should use |\rmdefault| or fix the operator symbol +% font to Times --- probably the latter. +% +% The main four symbol fonts are already declared in the \LaTeX{} +% format. Thus we don't need to declare them but simply change he +% relevant slots in the normal and bold math version. +% +% \changes{v0.9b}{1997/01/31} +% {Dont force OT1 encoding for operators} +% \begin{macrocode} +%\DeclareSymbolFont{operators} {\operator@encoding}{\rmdefault}{m}{n} +%\DeclareSymbolFont{letters} {MY1}{mtt}{m}{it} +%\DeclareSymbolFont{symbols} {MY2}{mtt}{m}{n} +%\DeclareSymbolFont{largesymbols}{MY3}{mtt}{m}{n} +% \end{macrocode} +% +% The normal weight fonts are availble by default. +% \begin{macrocode} +\SetSymbolFont{operators} {normal}{\operator@encoding}{ptm}{m}{n} +\SetSymbolFont{letters} {normal}{MY1}{mtt}{m}{it} +\SetSymbolFont{symbols} {normal}{MY2}{mtt}{m}{n} +\SetSymbolFont{largesymbols}{normal}{MY3}{mtt}{m}{n} +% \end{macrocode} +% +% If the |cmbold| package option is specified then the +% Computer Modern Bold math fonts will be used (as is the +% normal \LaTeX\ default). The mathtime fonts are \emph{differently} +% encoded, and so the use of this option may produce some incorrect +% characters (with no warning). However it may be useful if the +% `mathtime plus' bold fonts are not available, and a few bold +% symbols are needed for special circumstances. (However CM bold +% is not much bolder than mathtime normal weight, and is not really +% visually compatible). +% \begin{macrocode} +\ifx\boldmath c + \SetSymbolFont{operators} {bold}{\operator@encoding}{cmr}{bx}{n} + \SetSymbolFont{letters} {bold}{OML}{cmm}{b}{it} + \SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{m}{n} +\PackageWarningNoLine{mathtime} + {The use of the `cmbold' option will result\MessageBreak + in incorrect characters in some circumstances\MessageBreak + without any warning as the Math Time fonts and the\MessageBreak + Computer Modern fonts have incompatible encodings.\MessageBreak + Please use this option with care!\@gobble} +% \end{macrocode} +% +% \begin{macrocode} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \let\heavymath\boldmath +\fi +% \end{macrocode} +% +% This is the default behaviour for this package, |\boldmath| is +% not available. As it is no longer available save some space +% by removing it from the internal list of math versions. +% (Then waste most of the saving on the text of an error message.) +% \begin{macrocode} +\ifx\boldmath u + \let\@tempa\version@elt + \def\version@elt#1{% + \ifx\mv@bold#1\else\noexpand\version@elt\noexpand#1\fi} + \edef\version@list{\version@list} + \let\version@elt\@tempa + \let\mv@bold\@undefined + \renewcommand\boldmath{\PackageError{mathtime}% + {Bold math is not supported}% + {Use cmbold or mtbold options}} + \let\heavymath\boldmath +\fi +% \end{macrocode} +% +% If the bold (and heavy) mathtime fonts are available then they +% can be assigned to the appropriate math versions by specifying the +% |mtbold| package option. +% \begin{macrocode} +\ifx\boldmath m + \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {bold}{MY1}{mtt}{b}{\greekshape} + \SetSymbolFont{symbols} {bold}{MY2}{mtt}{b}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{b}{n} +% \end{macrocode} +% +% \begin{macrocode} + \DeclareMathVersion{heavy} + \SetSymbolFont{operators}{heavy}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {heavy}{MY1}{mtt}{ub}{\greekshape} + \SetSymbolFont{symbols} {heavy}{MY2}{mtt}{ub}{n} + \SetSymbolFont{largesymbols}{heavy}{MY3}{mtt}{ub}{n} +% \end{macrocode} +% +% \changes{v0.9a}{1997/01/17} +% {Redeclare colon etc to the symbols font} +% As the bold font is available, use these symbols from +% the symbols font rather than operators, so they are made +% bold by |\boldmath|. +% \begin{macrocode} + \DeclareMathSymbol{:}{\mathrel}{symbols}{86} + \DeclareMathSymbol{!}{\mathclose}{symbols}{87} + \DeclareMathSymbol{[}{\mathopen}{symbols}{84} + \DeclareMathSymbol{]}{\mathclose}{symbols}{85} +% \end{macrocode} +% +% \begin{macrocode} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \newcommand\heavymath{\@nomath\heavymath\mathversion{heavy}} +\fi +% \end{macrocode} +% +% Alternatively, you may specify the |heavybold| option, which +% instead of having a `heavy' math version, places the heavy +% fonts in the `bold' math version, to get greater visual +% contrast. +% \begin{macrocode} +\ifx\boldmath h + \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {bold}{MY1}{mtt}{ub}{\greekshape} + \SetSymbolFont{symbols} {bold}{MY2}{mtt}{ub}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{ub}{n} +% \end{macrocode} +% +% As above, use these symbols from +% the symbols font rather than operators, so they are made +% bold by |\boldmath|. +% \begin{macrocode} + \DeclareMathSymbol{:}{\mathrel}{symbols}{86} + \DeclareMathSymbol{!}{\mathclose}{symbols}{87} + \DeclareMathSymbol{[}{\mathopen}{symbols}{84} + \DeclareMathSymbol{]}{\mathclose}{symbols}{85} +% \end{macrocode} +% +% \begin{macrocode} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \let\heavymath\boldmath +\fi +% \end{macrocode} +% +% +% \subsection{Math alphabet declarations} +% +% The standard alphabets first. +% +% We don't have to declare |\mathrm| as \LaTeX{} declares it as +% a math symbol alphabet pointing to ``operators'' symbol font. +% But if we redeclare it it will then use the text fonts which might +% not be Times. +% +% As standard \LaTeX{} provides a couple of alphabets we better change +% them all \ldots +% \begin{macrocode} +\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n} +\SetMathAlphabet{\mathbf}{normal}{\encodingdefault}{\rmdefault}{b}{n} +\SetMathAlphabet{\mathit}{normal}{\encodingdefault}{\rmdefault}{m}{it} +\SetMathAlphabet{\mathsf}{normal}{\encodingdefault}{\sfdefault}{m}{n} +\SetMathAlphabet{\mathtt}{normal}{\encodingdefault}{\ttdefault}{m}{n} +% \end{macrocode} +% +% If a bold or heavy version exists add appropriate values. +% Right now |\mathbf| is the same in all versions. +% \begin{macrocode} +\ifx\mv@bold\@undefined +\else + \SetMathAlphabet{\mathrm}{bold} {\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathbf}{bold} {\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathit}{bold} {\encodingdefault}{\rmdefault}{b}{it} + \SetMathAlphabet{\mathsf}{bold} {\encodingdefault}{\sfdefault}{b}{n} +% \end{macrocode} +% If the typewriter is Computer Modern the next declaration will revert +% to normal (with a warning) but such is life. +% \begin{macrocode} + \SetMathAlphabet{\mathtt}{bold} {\encodingdefault}{\ttdefault}{b}{n} +\fi +% \end{macrocode} +% +% \begin{macrocode} +\ifx\mv@heavy\@undefined +\else + \SetMathAlphabet{\mathrm}{heavy}{\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathbf}{heavy}{\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathit}{heavy}{\encodingdefault}{\rmdefault}{b}{it} + \SetMathAlphabet{\mathsf}{heavy}{\encodingdefault}{\sfdefault}{b}{n} + \SetMathAlphabet{\mathtt}{heavy}{\encodingdefault}{\ttdefault}{b}{n} +\fi +% \end{macrocode} +% +% \subsubsection{Script alphabets} +% +% If the \texttt{mtplusscr} option was selected +% we make |\mathscr| point to Spivak's script font. +% +% Declaring the bold version first takes care of bold and heavy +% version. +% So far this doesn't allow for alternatives but I think the best +% solution here would be to provide input ligatures \texttt{*A} +% etc.\ in the font itself. However as \TeX{} doesn't handle math +% accents correctly in that case that idea might not be so good after +% all. +% Perhaps defining a |\variant| command might be better, e.g., +% |\mathscr{\variant A}| --- we'll see. +% \changes{v1.0b}{1997/02/24} +% {clear existing definitions of \cs{mathscr} and \cs{mathcal}} +% \begin{macrocode} +\ifx\mathscr s + \let\mathscr\relax + \DeclareMathAlphabet\mathscr{U} {mtms}{b}{n} + \SetMathAlphabet \mathscr{normal}{U}{mtms}{m}{n} +% \end{macrocode} +% +% The |\mathbscr| is bold in all versions. +% \begin{macrocode} + \DeclareMathAlphabet\mathbscr{U}{mtms}{b}{n} +\fi +% \end{macrocode} +% +% If \texttt{lucidascr} was selected we put the Lucida calligraphic +% font in |\mathscr|: +% \begin{macrocode} +\ifx\mathscr l + \let\mathscr\relax + \DeclareMathAlphabet{\mathscr} {OMS}{lby}{b}{n} + \SetMathAlphabet {\mathscr}{normal} {OMS}{lby}{m}{n} +% \end{macrocode} +% |\mathbscr| will be bold in all math versions. +% \begin{macrocode} + \DeclareMathAlphabet{\mathbscr} {OMS}{lby}{b}{n} +\fi +% \end{macrocode} +% +% \subsubsection{Calligraphic alphabets} +% +% If the \texttt{lucidacal} option was selected we set up |\mathcal|. +% \begin{macrocode} +\ifx\mathcal l + \let\mathcal\relax + \DeclareMathAlphabet{\mathcal} {OMS}{lby}{b}{n} + \SetMathAlphabet {\mathcal}{normal} {OMS}{lby}{m}{n} +% \end{macrocode} +% |\mathbcal| will be bold in all math versions. +% \begin{macrocode} + \DeclareMathAlphabet{\mathbcal} {OMS}{lby}{b}{n} +\fi +% \end{macrocode} +% +% The code below refers to the \texttt{mtpluscal} option: +% \begin{macrocode} +\ifx\mathcal s + \let\mathcal\relax + \DeclareMathAlphabet\mathcal{U} {mtms}{b}{n} + \SetMathAlphabet \mathcal{normal}{U}{mtms}{m}{n} +% \end{macrocode} +% +% The |\mathbcal| is bold in all versions. +% \begin{macrocode} + \DeclareMathAlphabet\mathbcal{U}{mtms}{b}{n} +\fi +% \end{macrocode} +% The code below will be used if no calligraphic option has been +% selected. We need to redeclare that alphabet as by default it points +% to the symbols alphabet that in case of the Math Time fonts simply +% doesn't contain a math alphabet any longer. +% \begin{macrocode} +\ifx\mathcal c + \let\mathcal\relax + \DeclareMathAlphabet\mathcal{OMS} {cmsy}{b}{n} + \SetMathAlphabet \mathcal{normal}{OMS}{cmsy}{m}{n} +% \end{macrocode} +% +% The |\mathbcal| is bold in all versions. +% \begin{macrocode} + \DeclareMathAlphabet\mathbcal{OMS} {cmsy}{b}{n} + +\fi +% \end{macrocode} +% +% \subsection{Math Symbol Declarations} +% +% In MathT\i me, italic upper case Greek found in math italic font +% and we don't make them changable with the font. +% \begin{macrocode} +\DeclareMathSymbol\Gamma {\mathord}{letters}{48} +\DeclareMathSymbol\Delta {\mathord}{letters}{49} +\DeclareMathSymbol\Theta {\mathord}{letters}{50} +\DeclareMathSymbol\Lambda {\mathord}{letters}{51} +\DeclareMathSymbol\Xi {\mathord}{letters}{52} +\DeclareMathSymbol\Pi {\mathord}{letters}{53} +\DeclareMathSymbol\Sigma {\mathord}{letters}{54} +\DeclareMathSymbol\Upsilon{\mathord}{letters}{55} +\DeclareMathSymbol\Phi {\mathord}{letters}{56} +\DeclareMathSymbol\Psi {\mathord}{letters}{57} +\DeclareMathSymbol\Omega {\mathord}{letters}{127} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareMathSymbol\varGamma {\mathord}{letters}{0} +\DeclareMathSymbol\varDelta {\mathord}{letters}{1} +\DeclareMathSymbol\varTheta {\mathord}{letters}{2} +\DeclareMathSymbol\varLambda {\mathord}{letters}{3} +\DeclareMathSymbol\varXi {\mathord}{letters}{4} +\DeclareMathSymbol\varPi {\mathord}{letters}{5} +\DeclareMathSymbol\varSigma {\mathord}{letters}{6} +\DeclareMathSymbol\varUpsilon {\mathord}{letters}{7} +\DeclareMathSymbol\varPhi {\mathord}{letters}{8} +\DeclareMathSymbol\varPsi {\mathord}{letters}{9} +\DeclareMathSymbol\varOmega {\mathord}{letters}{10} +% \end{macrocode} +% The next setting all need to be checked for correctness +% (with a test file). +% Those settings where I think the \LaTeX{} defaults are the same, are +% commented out. +% +% \begin{macrocode} +\DeclareMathSymbol{(}{\mathopen}{letters}{46} % was 028 +\DeclareMathSymbol{)}{\mathclose}{letters}{47} % was 029 +% \end{macrocode} +% +% Not sure this version of |\DeclareMathDelimiter| is documented or +% used anywhere, but like |\DeclareMathSymbol| it can take +% a character token (and one less argument). +% \changes{v0.2}{1996/12/12}{use \cs{DeclareMathDelimiter}} +% \begin{macrocode} +\DeclareMathDelimiter{(}{letters}{46}{largesymbols}{0} +\DeclareMathDelimiter{)}{letters}{47}{largesymbols}{1} +% \end{macrocode} +% +% \begin{macrocode} +%\DeclareMathSymbol{.}{\mathord}{letters}{58} +%\DeclareMathSymbol{,}{\mathpunct}{letters}{59} +%\DeclareMathSymbol{\ldotp}{\mathpunct}{letters}{58} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareMathSymbol{\triangleleft}{\mathbin}{symbols}{71} % was 12F +\DeclareMathSymbol{\triangleright}{\mathbin}{symbols}{70} % was 12E +% \end{macrocode} +% +% \changes{v0.9c}{1997/02/07} +% {Add \cs{varkappa}} +% \begin{macrocode} +\DeclareMathSymbol{\comp}{\mathbin}{symbols}{66} % new? +\DeclareMathSymbol{\setdif}{\mathbin}{symbols}{88} % new +\DeclareMathSymbol{\cupprod}{\mathbin}{symbols}{89} % new +\DeclareMathSymbol{\capprod}{\mathbin}{symbols}{90} % new +\DeclareMathSymbol{+}{\mathbin}{symbols}{67} % was 02B +\DeclareMathSymbol{=}{\mathrel}{symbols}{68} % was 03D +\let\Relbar\@undefined +\DeclareMathSymbol{\Relbar}{\mathrel}{symbols}{72} % was a macro +\DeclareMathSymbol{;}{\mathpunct}{symbols}{73} % was 13B +\DeclareMathSymbol{\varkappa}{\mathord}{letters}{126} % new (AMS) +% \end{macrocode} +% +% We make all accents |\mathord|; as they are placed in strange +% positions it is really not feasible to support changing them. +% \begin{macrocode} +\DeclareMathAccent{\vec}{\mathord}{symbols}{69} +\DeclareMathAccent{\grave}{\mathord}{symbols}{74} +\DeclareMathAccent{\acute}{\mathord}{symbols}{75} +\DeclareMathAccent{\check}{\mathord}{symbols}{76} +\DeclareMathAccent{\breve}{\mathord}{symbols}{77} +\DeclareMathAccent{\bar}{\mathord}{symbols}{78} +\DeclareMathAccent{\hat}{\mathord}{symbols}{79} +\DeclareMathAccent{\dot}{\mathord}{symbols}{80} +\DeclareMathAccent{\tilde}{\mathord}{symbols}{81} +\DeclareMathAccent{\ddot}{\mathord}{symbols}{82} +\DeclareMathAccent{\widebar}{\mathord}{symbols}{83} % new +% \end{macrocode} +% +% Next two are the same as in standard \LaTeX{}. +% \begin{macrocode} +%\DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{101} +%\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{98} +% \end{macrocode} +% +% \subsection{AMS double accent commands} +% +% Unfortunately the AMS double accent commands such as |\Hat| +% assume that the math accents come from an `OT1' encoded +% font in the `operators' math symbol font. To use +% these commands with mathtime you may need to place code +% such as the following into a package file and load that after +% loading the \textsf{amsmath} package. This section is commented out +% here as it would not work without several other sections of +% \textsf{amsmath}, and a future release of the AMS package may anyway +% remove some of these encoding assumptions. +% +%\begin{verbatim} +% \def\@math@ccent#1#2#3{% +% \RIfM@ +% \xdef\thefam@{\ifnum\mathgroup=\m@ne1\else\the\mathgroup\fi}% +% \accentdimen@\z@ +% \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#3$}% +% \ifdim\accentdimen@=\z@\DN@{#2{#3}}% +% \setbox\@ne\hbox{\unbracefonts@ +% $\m@th\mathgroup\thefam@\relax#3\theskewchar@$} +% \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else +% \mathchar\skewcharcount@\fi$}% +% \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@ +% \global\advance\accentdimen@-\wd\tw@ +% \global\multiply\accentdimen@\tw@ +% \dimentomu@\global\advance\accentmu@\@ne +% \else\DN@{{#2{#3\mkern\accentmu@ mu}% +% \mkern-\accentmu@ mu}{}}\fi +% \next@ +% \else +% \nonmatherr@#1% +% \fi} +% +% +% \def\Hat{\@math@ccent\Hat\hat} +% \def\Dot{\@math@ccent\Dot\dot} +% \def\Check{\@math@ccent\Check\check} +% \def\Tilde{\@math@ccent\Tilde\tilde} +% \def\Acute{\@math@ccent\Acute\acute} +% \def\Grave{\@math@ccent\Grave\grave} +% \def\Dot{\@math@ccent\Dot\dot} +% \def\Ddot{\@math@ccent\Ddot\ddot} +% \def\Breve{\@math@ccent\Breve\breve} +% \def\Bar{\@math@ccent\Bar\bar} +% \def\Vec{\@math@ccent\Vec\vec} +%\end{verbatim} +% +% \subsection{Math font sizes} +% +% Math Time, like most other type 1 fonts uses the same font at all +% sizes. For such fonts the default ratios (.7 and .5) produce +% unreadably small superscripts. +% \begin{macrocode} +\def\defaultscriptratio{.76} +\def\defaultscriptscriptratio{.6} +% \end{macrocode} +% +% These default ratios are not used for any sizes that have been +% explicitly declared, so redeclare the sizes used by the standard +% classes. At least for the lower sizes this is important as we don't +% want to end up with a 5pt font being reduced even further. +% +% The table below might need some further tweaking. I selected the +% numbers partly on a few visual tests (but not many) and partly on the +% idea that resusing sizes is better than introducing many new +% ones. Even with Type~1 fonts many people will produce pk versions of +% the fonts in their document (using gftopk, for example). +% +% \begin{macrocode} +\DeclareMathSizes{5} {6} {6} {6} +\DeclareMathSizes{6} {6} {6} {6} +\DeclareMathSizes{7} {6.8} {6} {6} +\DeclareMathSizes{8} {8} {6.8}{6} +\DeclareMathSizes{9} {9} {7.6}{6} +\DeclareMathSizes{10} {10} {7.6}{6} +\DeclareMathSizes{10.95}{10.95}{7.6}{6} +\DeclareMathSizes{12} {12} {9} {7} +\DeclareMathSizes{14.4} {14.4} {10} {8} +\DeclareMathSizes{17.28}{17.28}{12} {9} +\DeclareMathSizes{20.74}{20.74}{14.4}{10} +\DeclareMathSizes{24.88}{24.88}{17.28}{12} +% \end{macrocode} +% +% +% \subsection{Strange Commands} +% |\vdots| and |\ddots| take their ``dots'' from the math fonts. +% In fact this is something that should be corrected in base format +% of \LaTeX{} as well. +% +% \begin{macrocode} +\newcommand\hb@xmdot{\hbox{$\m@th.$}} +\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ + \kern6\p@\hb@xmdot\hb@xmdot\hb@xmdot}} +\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@ + \hb@xmdot}\mkern2mu + \raise4\p@\hb@xmdot\mkern2mu\raise\p@\hb@xmdot\mkern1mu}} +% \end{macrocode} +% +% |\angle| needs a thicker horizontal rule (what a mess). +% +% \begin{macrocode} +\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr + \not\mathrel{\mkern14mu}\crcr + \noalign{\nointerlineskip}% + \mkern2.5mu% + \leaders\hrule\@height.48\p@\hfill\mkern2.5mu\crcr}}}} +% \end{macrocode} +% +% Awful many tokens are wasted to define to lower horizontal bar in +% |\hbar|. The definition below uses \={} from the symbol font to +% avoid problems with different text encodings in the operators +% font. +% \changes{v0.2}{1996/12/12}{save a few tokens here} +% \changes{v0.9b}{1997/01/31} +% {New \cs{hbar} getting bar from symbol font not operators} +% \changes{v1.0e}{1997/10/10}{Make \cs{hbar} robust} +% \begin{macrocode} +\DeclareRobustCommand\hbar{{% + \dimen@.12em% + \dimen@ii.1em% + \def\@tempa##1##2{{% + \lower##1\dimen@\rlap{\kern##1\dimen@ii\the##2\tw@\char78}}}% + \mathchoice\@tempa\@ne\textfont + \@tempa\@ne\textfont + \@tempa\defaultscriptratio\scriptfont + \@tempa\defaultscriptscriptratio\scriptscriptfont + h}} +% \end{macrocode} +% +% Redefine |\@fnsymbol| to use |\mathsection| and |\mathparagraph| +% (Should be done in base \LaTeX\ as well). +% \changes{v1.0c}{1997/03/14} +% {Make footnote symbols work with other encodings} +% \begin{macrocode} +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} +% \end{macrocode} +% +% Wasting a full symbol font just to have |\dagger| and friends. Here +% we pay part of the price for fact that the math time fonts have their +% own encoding incompatible with the CM fonts. +% +% If the |noTS1| option is used, this whole section is skipped unless +% LY1 or T1 encodings are being used, in which case the symbols can be +% accessed from the operators font. +% \begin{macrocode} +\ifx\symtextcomp\relax + \def\@tempa{LY1} + \ifx\operator@encoding\@tempa + \DeclareMathSymbol\dagger {\mathbin}{operators}{134} + \DeclareMathSymbol\ddagger{\mathbin}{operators}{135} + \DeclareMathSymbol\mathsection{\mathord}{operators}{'247} + \DeclareMathSymbol\mathparagraph{\mathord}{operators}{'266} + \DeclareMathSymbol\mathsterling{\mathord}{operators}{163} + \let\mathunderscore\@undefined + \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95} + \fi +% \end{macrocode} +% If we have T1 encoded operators but are nt using TS1 can at least +% get pounds sign and underscore, but not dagger etc. +% \begin{macrocode} + \def\@tempa{T1} + \ifx\operator@encoding\@tempa + \DeclareMathSymbol\mathsterling{\mathord}{operators}{191} + \let\mathunderscore\@undefined + \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95} + \fi +% \end{macrocode} +% +% \begin{macrocode} +\else + \DeclareFontEncoding{TS1}{}{} + \DeclareSymbolFont{textcomp}{TS1}{ptm}{m}{n} + \ifx\mv@bold\@undefined + \else + \SetSymbolFont {textcomp}{bold}{TS1}{ptm}{b}{n} + \fi +% \end{macrocode} +% +% \begin{macrocode} + \ifx\mv@heavy\@undefined + \else + \SetSymbolFont {textcomp}{heavy}{TS1}{ptm}{b}{n} + \fi +% \end{macrocode} +% +% \begin{macrocode} + \DeclareMathSymbol\dagger {\mathbin}{textcomp}{'204} + \DeclareMathSymbol\ddagger{\mathbin}{textcomp}{'205} +% \end{macrocode} +% +% The math versions for \textsection{} and \textparagraph{} +% are also not in the symbol fonts so we pick them up as well. +% \begin{macrocode} + \DeclareMathSymbol\mathsection{\mathord}{textcomp}{'247} + \DeclareMathSymbol\mathparagraph{\mathord}{textcomp}{'266} +% \end{macrocode} +% +% \begin{macrocode} +\fi +% \end{macrocode} +% +% \subsection{Encoding Specific Text Commands} +% +% Some encoding specific commands default to the OML or OMS encoding. +% As these encodings are not used with this package, we need to change +% the defaults. +% +% These ones used to default to OML +% \begin{macrocode} +\DeclareTextSymbolDefault{\textless}{MY1} +\DeclareTextSymbolDefault{\textgreater}{MY1} +\DeclareTextAccentDefault{\t}{MY2} +% \end{macrocode} +% +% Important is to not only set the default the default but also declare +% the symbols itself. If this is forgotten calling the command will +% generate a loop. Or to quote David: +% \begin{quote} +% [hmm, otherwise you waste an hour or two staring at |\tracingall| +% output trying to work out what the heck is happening:-] +% \end{quote} +% +% \begin{macrocode} +\DeclareTextSymbol{\textless}{MY1}{`\<} +\DeclareTextSymbol{\textgreater}{MY1}{`\>} +\DeclareTextAccent{\t}{MY2}{65} +% \end{macrocode} +% +% These ones used to default to OMS +% \begin{macrocode} +\DeclareTextSymbolDefault{\textasteriskcentered}{MY2} +\DeclareTextSymbolDefault{\textbackslash}{MY2} +\DeclareTextSymbolDefault{\textbar}{MY2} +\DeclareTextSymbolDefault{\textbraceleft}{MY2} +\DeclareTextSymbolDefault{\textbraceright}{MY2} +\DeclareTextSymbolDefault{\textbullet}{MY2} +\DeclareTextSymbolDefault{\textperiodcentered}{MY2} +\DeclareTextAccentDefault{\textcircled}{MY2} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareTextSymbol{\textasteriskcentered}{MY2}{3} +\DeclareTextSymbol{\textbackslash}{MY2}{110} +\DeclareTextSymbol{\textbar}{MY2}{106} +\DeclareTextSymbol{\textbraceleft}{MY2}{102} +\DeclareTextSymbol{\textbraceright}{MY2}{103} +\DeclareTextSymbol{\textbullet}{MY2}{15} +\DeclareTextSymbol{\textperiodcentered}{MY2}{1} +\DeclareTextCommand{\textcircled}{MY2}[1]{{% + \ooalign{% + \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr + \char13}}} +% \end{macrocode} +% +% These also normally default to OMS, but are not available +% in MY1 or MY2, so get them from the TS1 encoded font. +% \begin{macrocode} +\ifx\symtextcomp\relax +\else + \DeclareTextSymbolDefault{\textsection}{TS1} + \DeclareTextSymbolDefault{\textparagraph}{TS1} +% \end{macrocode} +% +% \begin{macrocode} + \DeclareTextSymbol{\textsection}{TS1}{'247} + \DeclareTextSymbol{\textparagraph}{TS1}{'266} +\fi +% \end{macrocode} +% +% +% \subsection{Subscript correction} +% +% We provide a definition for |_| as active character. This definition +% in itself is not changing \LaTeX's behaviour as by default |_| has +% catcode 8, i.e., subscript character. Only if we change this catcode +% or if we change the |\mathcode| of |_| \TeX{} is going to look at it. +% \begin{macrocode} +\begingroup + \catcode`\_=13 + \gdef_#1{\sb{\test@sb#1}} +\endgroup +% \end{macrocode} +% +% The |\test@sb| gets passed the argument of a subscript and tests with +% |\@ifnextchar| if the first non-space token is a \texttt{p}. +% If not it will look at |\@let@token| (set by |\@ifnextchar|) to see +% if it is perhaps \texttt{j} or \texttt{f}. In each case it will add +% a negative kern. +% +% Note that this test will fail if an old \LaTeX{} is used as the old +% definition of |\@ifnextchar| does not use |\@let@token| but +% |\@tempa|. +% However, the worst that would happen is that the kern is not +% inserted. I tried to trap this by requesting a \LaTeX{} not older +% than 1995/01/01. +% \begin{macrocode} +\def\test@sb{% + \@ifnextchar p% + {\mkern\m@ne mu}% + {\ifx\@let@token j% + \mkern-\tw@ mu% + \else + \ifx\@let@token f% + \mkern-\tw@ mu% + \fi + \fi}} +% \end{macrocode} +% +% Finally we set the |\mathcode| of |_| to ``active''. However, as long +% as its |\catcode| is not changed this |\mathcode| is never looked at, +% in other words we can now turn the feature on and off by changing the +% |\catcode| to |12| (that is done in the option section above). +% \begin{macrocode} +\mathcode`\_=\string"8000 +% \end{macrocode} +% +% +% +% \begin{macrocode} +%</mathtime> +% \end{macrocode} +% +% +% +% +% \section{Math Pi} +% +% This package consist only of options declaring math alphabets: +% \begin{macrocode} +%<*mathpi> +\DeclareOption{mathfrak}{% + \DeclareMathAlphabet\mathfrak{U}{mh2}{m}{n}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{mathcal}{% + \DeclareMathAlphabet\mathcal{U}{mh2scr}{m}{n}} +\DeclareOption{mathscr}{% + \DeclareMathAlphabet\mathscr{U}{mh2scr}{m}{n}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{mathbb}{% + \DeclareMathAlphabet\mathbb{U}{mh6}{m}{n}} +% \end{macrocode} +% +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% \begin{macrocode} +%</mathpi> +% \end{macrocode} +% +% \subsection{Unused Declarations} +% The following declarations may be extracted from this source +% file, but they are not used in the \textsf{mathpi} package +% as equivalent code is called in the options section. +% \begin{macrocode} +%<*mpifrak> +\DeclareMathAlphabet\mathfrak{U}{mh2}{m}{n} +%</mpifrak> +% +%<*mpiscr> +\DeclareMathAlphabet\mathscr{U}{mh2scr}{m}{n} +%</mpiscr> +% +%<*mpibb> +\DeclareMathAlphabet\mathbb{U}{mh6}{m}{n} +%</mpibb> +% \end{macrocode} +% +% \Finale +% + diff --git a/texmf-dist/source/latex/mathtime-ltx/mathtime.ins b/texmf-dist/source/latex/mathtime-ltx/mathtime.ins new file mode 100644 index 00000000..58d40f93 --- /dev/null +++ b/texmf-dist/source/latex/mathtime-ltx/mathtime.ins @@ -0,0 +1,84 @@ +%% Copyright 1996 1997 Frank Mittelbach David Carlisle +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com + +\def\batchfile{mathtime.ins} +\input docstrip.tex +\preamble +\endpreamble + +\def\writefd#1{\lowercase{\generateFile{#1}{f}}} +\def\mtplus{mtplus} + + +%%%% IMPORTANT NOTE %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% +% If your LaTeX is older than 1996/12/01 then uncomment this +% line to write the file names as `mixed case' if you are +% using a case sensitive system such as UNIX. +% +%\def\writefd#1{\generateFile{#1}{f}} +% +%%%% IMPORTANT NOTE %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% +% If you have the `basic' MathTime font set, and *not* +% the extended MathTime Plus (or MathTime Complete) set +% then you should uncomment this line so that LaTeX does +% not attempt to access bold math fonts, or the new MTSYN +% font. +% +%\def\mtplus{} +% +%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% + + +\keepsilent + +\Msg{*** Generating .fd files using Mathtime fonts ***} + +\writefd{MY1mtt.fd}{\from{mtfonts.fdd}{MY1mtt,\mtplus}} + +\writefd{MY2mtt.fd}{\from{mtfonts.fdd}{MY2mtt,\mtplus}} + +\writefd{MY3mtt.fd}{\from{mtfonts.fdd}{MY3mtt,\mtplus}} + +% mathtime plus script + +\writefd{Umtms.fd}{\from{mtfonts.fdd}{Umtms}} + +% Adobe Math Pi Two for Fraktur and Script alphabets + +\writefd{Umh2.fd}{\from{mtfonts.fdd}{Umh2}} + +\writefd{Umh2scr.fd}{\from{mtfonts.fdd}{Umh2Scr}} + +% Adobe Math Pi Six for Blackboard Bold alphabet + +\writefd{Umh6.fd}{\from{mtfonts.fdd}{Umh6}} + +% Lucida New Math Symbol for Calligraphy alphabet + +\writefd{OMSlby.fd}{\from{mtfonts.fdd}{lucidascale,OMSlby}} + + +\Msg{*** Generating packages for Mathtime fonts ***} + +\generateFile{mathpi.sty}{f}{\from{mathtime.dtx}{package,mathpi}} + +\generateFile{mathtime.sty}{f}{\from{mathtime.dtx}{package,mathtime}} + + +\Msg{*** Generating Encoding file for Math Pi Two font ***} + +\postamble +\endpostamble +% the encoding file to reencode the Pi Two font + +\generateFile{mh2scr.enc}{f}{\from{mtfonts.fdd}{mh2screnc}} + + diff --git a/texmf-dist/source/latex/mathtime-ltx/mtfonts.fdd b/texmf-dist/source/latex/mathtime-ltx/mtfonts.fdd new file mode 100644 index 00000000..b4916754 --- /dev/null +++ b/texmf-dist/source/latex/mathtime-ltx/mtfonts.fdd @@ -0,0 +1,260 @@ +% +% \iffalse +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +% +% +%<*dtx> + \ProvidesFile{mtfonts.fdd} +%</dtx> +%<*!mh2screnc> +%<MY1mtt>\ProvidesFile{my1mtt.fd} +%<MY2mtt>\ProvidesFile{my2mtt.fd} +%<MY3mtt>\ProvidesFile{my3mtt.fd} +%<Umtms>\ProvidesFile{umtms.fd} +%<Umh2>\ProvidesFile{umh2.fd} +%<Umh2Scr>\ProvidesFile{umh2scr.fd} +%<Umh6>\ProvidesFile{umh6.fd} +%<OMSlby>\ProvidesFile{omslby.fd} +%<driver>\ProvidesFile{bm.drv} +% \fi +% \ProvidesFile{mtfonts.fdd} + [2001/05/30 v1.0c +%<MY1mtt> Mathtime Encoding 1 +%<MY2mtt> Mathtime Encoding 2 +%<MY3mtt> Mathtime Encoding 3 +%<Umtms> Mathtime Plus Script (Unknown encoding) +%<Umh2> Adobe Math Pi 2 (Unknown encoding) +%<Umh2Scr> Adobe Math Pi 2 Script (Unknown encoding) +%<Umh6> Adobe Math Pi 6 (Unknown encoding) +%<OMSlby> Lucida New Math Symbols + (FMi)] +% \iffalse +%</!mh2screnc> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{bm} +\DocInput{mtfonts.fdd} +\end{document} +%</driver> +% \fi +% +% \CheckSum{525} +% +% \GetFileInfo{mtfonts.fdd} +% \begin{document} +% \title{The \textsf{mathtime} Font Descriptor files\thanks{This file +% has version number \fileversion, last +% revised \filedate.}} +% +% \date{\filedate} +% \author{Frank Mittelbach} +% \maketitle +% +% \section{The Implementation} +% +% \subsection{Math Pi 2} +% needed for Adobe Math Pi 2 and 6, lbms, lbmsd (Calligraphic) +% Note: LaTeX 2e needs the TFMs for these even if you don't use them... +% +% \begin{macrocode} +%<*Umh2> +\DeclareFontFamily{U}{mh2}{} +\DeclareFontShape{U}{mh2}{m}{n}{<->s * [0.95]mh2}{} +%</Umh2> +% \end{macrocode} +% +% \begin{macrocode} +%<*Umh2Scr> +\DeclareFontFamily{U}{mh2scr}{} +\DeclareFontShape{U}{mh2scr}{m}{n}{<->s * [0.95]mh2scr}{} +%</Umh2Scr> +% \end{macrocode} +% +% The following section is a PostScript header file which may +% be used to reencdode the script alphabet in the Math Pi 2 font +% into the `normal' positions for the roman alphabet. +% \begin{macrocode} +%<*mh2screnc> + % + % Encoding file to reencode MathematicalPi-Two font by Adobe so that + % its script alphabet is in a sensible position + % and thus can be used with \DeclareMathAlphabet + % + % Usage: + % + % generate tfm + % + % afm2tfm mh2_____ -T mh2scr.enc mh2scr + % + % add mapping line to dvips config file: + % + % mh2 MathematicalPi-Two <mh2_____.pfa + % mh2scr MathematicalPi-Two "mh2scrEncoding ReEncodeFont" <mh2scr.enc <mh2_____.pfa + % + % + % +/mh2scrEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'10x + /space /H5101 /H5102 /H5103 /H5104 /H5105 /H5106 /H5107 + /H5108 /H5109 /H5110 /H5111 /H5112 /H5113 /H5114 /H5115 + /H5116 /H5117 /H5118 /H5119 /H5120 /H5121 /H5122 /H5123 + /H5124 /H5125 /H5126 /.notdef /.notdef /.notdef /.notdef /.notdef + % +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'20 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + %'30 +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + +%</mh2screnc> +% \end{macrocode} +% +% \begin{macrocode} +%<*Umh6> +\DeclareFontFamily{U}{mh6}{} +\DeclareFontShape{U}{mh6}{m}{n}{<->s * [0.95]mh6}{} +%</Umh6> +% \end{macrocode} +% +% \subsection{LucidaNewMath-Symbols font description files} +% +% Following controls size of lbms, lbmsd when used for Calligraphic: +% \begin{macrocode} +%<*lucidascale> +\@ifundefined{LucidaScale}{\def\LucidaScale{0.9}}{} +%</lucidascale> +% \end{macrocode} +% +% \begin{macrocode} +%<*OMSlby> +\DeclareFontFamily{OMS}{lby}{\skewchar\font48} +\DeclareFontShape{OMS}{lby}{m}{n}{<->s * [\LucidaScale]lbms}{} +\DeclareFontShape{OMS}{lby}{b}{n}{<->s * [\LucidaScale]lbmsd}{} +%</OMSlby> +% \end{macrocode} +% +% \subsection{Math Time font description files} +% +% The Math Time fonts are similar in encoding to the Computer Modern set +% of math fonts. Unfortunately, there are some important differences which +% make integration of the fonts in a standard setup painful and error prone. +% +% To ease the integration we have allocated official encoding names so that +% (at least on the \LaTeX{} level the encoding difference is transparent) +% +% The |MY1| encoding is in most respects the same as the |OML| encoding, for +% the differences see the font description by Spivak. +% +% \begin{macrocode} +%<*MY1mtt> +\DeclareFontFamily{MY1}{mtt}{\skewchar\font45} +\DeclareFontShape{MY1}{mtt}{m}{it}{<->mtmi}{} +%</MY1mtt> +% \end{macrocode} +% +% Similarily, the |MY2| encoding corresponds to the |OMS| encoding +% except for a small number of slots. +% +% In fact their are two variants of this encoding, the |MTSY| font +% in the base mathtime set and a slightly extended version in the +% mathtime plus set. Within \LaTeX\ ignore this difference but +% give the user the option of installing an my2mtt.fd file +% calling on either version. +% \begin{macrocode} +%<*MY2mtt> +\DeclareFontFamily{MY2}{mtt}{} +%<!mtplus>\DeclareFontShape{MY2}{mtt}{m}{n}{<->mtsy}{} +%</MY2mtt> +% \end{macrocode} +% +% The ``extension symbol'' font has the same encoding as the Computer +% Modern \texttt{cmex} font, except that it contains one additional symbol +% (the radical which is originally located in the symbol font. There is a good +% reason for the radical not being put into the symbol font as it has a large +% decender and makes it impossible to use the font with programs other than +% \TeX{}. However, it has the nasty side-effect that we have to define +% another encoding just for this reason. +% \begin{macrocode} +%<*MY3mtt> +\DeclareFontFamily{MY3}{mtt}{} +\DeclareFontShape{MY3}{mtt}{m}{n}{<->mtex}{} +%</MY3mtt> +% \end{macrocode} +% +% \subsection{Math Time Plus font description files} +% +% We call the font variant that contains upright lowercase letters +% ``normal'' which is some sort of abuse, but then the whole font layout +% is rather percuiliar +% \begin{macrocode} +%<*MY1mtt&mtplus> +\DeclareFontShape{MY1}{mtt}{b}{it}{<->mtmib}{} +\DeclareFontShape{MY1}{mtt}{ub}{it}{<->mtmih}{} +\DeclareFontShape{MY1}{mtt}{b}{n} {<->mtmub}{} +\DeclareFontShape{MY1}{mtt}{ub}{n}{<->mtmuh}{} +%</MY1mtt&mtplus> +% \end{macrocode} +% +% \begin{macrocode} +%<*MY2mtt&mtplus> +\DeclareFontShape{MY2}{mtt}{m}{n}{<->mtsyn}{} +\DeclareFontShape{MY2}{mtt}{b}{n}{<->mtsyb}{} +\DeclareFontShape{MY2}{mtt}{ub}{n}{<->mtsyh}{} +%</MY2mtt&mtplus> +% \end{macrocode} +% +% \begin{macrocode} +%<*MY3mtt&mtplus> +\DeclareFontShape{MY3}{mtt}{b}{n}{<->mtexb}{} +\DeclareFontShape{MY3}{mtt}{ub}{n}{<->mtexh}{} +%</MY3mtt&mtplus> +% \end{macrocode} +% +% \begin{macrocode} +%<*Umtms> +\DeclareFontFamily{U}{mtms}{\skewchar\font42} +\DeclareFontShape{U}{mtms}{m}{n}{<->mtms}{} +\DeclareFontShape{U}{mtms}{b}{n}{<->mtmsb}{} +%</Umtms> +% \end{macrocode} +% +% \begin{macrocode} +%<*LAptm> +\DeclareFontFamily{LA}{ptm}{} +\DeclareFontShape{LA}{ptm}{m}{n}{<->tir}{} +\DeclareFontShape{LA}{ptm}{b}{n}{<->tir}{} +%</LAptm> +% \end{macrocode} +% +% \Finale +% diff --git a/texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.sty b/texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.tex index b2947bb3..8d1d5572 100644 --- a/texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.sty +++ b/texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.tex @@ -1,9 +1,7 @@ %% %% Load Cambria fonts (C) A. Tsolomitis %% -\RequirePackage{fontspec} \setmainfont[Contextuals=AlternateOff,BoldFont=Cambria-Bold,ItalicFont=Cambria-Italic,BoldItalicFont=Cambria-BoldItalic]{Cambria} -\RequirePackage{unicode-math} \setmathfont{Cambria Math} \endinput diff --git a/texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.sty b/texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.tex index 2287f486..b0707c79 100644 --- a/texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.sty +++ b/texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.tex @@ -1,4 +1,3 @@ -\RequirePackage{fontspec} \setmainfont[% main font UprightFont=LucidaBrightOT, ItalicFont=LucidaBrightOT-Italic, @@ -22,7 +21,6 @@ SmallCapsFeatures={Numbers=OldStyle}, ]{LucidaSansTypewriterOT.otf} % support for OpenType math fonts: -\RequirePackage{unicode-math} \setmathfont{LucidaBrightMathOT.otf} \setmathfont[version=bold]{LucidaBrightMathOT-Demi.otf} diff --git a/texmf-dist/tex/latex/fontsetup-nonfree/fspminion.sty b/texmf-dist/tex/latex/fontsetup-nonfree/fspminion.tex index 292f3dd7..1821bf3a 100644 --- a/texmf-dist/tex/latex/fontsetup-nonfree/fspminion.sty +++ b/texmf-dist/tex/latex/fontsetup-nonfree/fspminion.tex @@ -1,7 +1,6 @@ -\RequirePackage{fontspec} \defaultfontfeatures{Ligatures=TeX} \setmainfont[SmallCapsFeatures={Numbers=OldStyle},% NFSSFamily=MinionPro,% @@ -27,18 +26,8 @@ BoldFont=MinionPro-Bold,% BoldItalicFont=MinionPro-BoldIt,% ]{MinionPro-Regular} -\RequirePackage{iftex} -\ifxetex -\RequirePackage[Latin, Greek]{ucharclasses} -\setDefaultTransitions{\defaultfont}{} -\setTransitionsForLatin{\defaultfont}{} -\setTransitionsForGreek{\greekfont}{} -\else -\relax -\fi -\RequirePackage{unicode-math} \setmathfont{STIXTwoMath-Regular.otf} \setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{MinionPro-Regular} \setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold} diff --git a/texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.sty b/texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.tex index 5f50b8bf..1479678e 100644 --- a/texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.sty +++ b/texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.tex @@ -1,5 +1,4 @@ %\RequirePackage[no-math]{fontspec} -\RequirePackage{fontspec} \defaultfontfeatures{Ligatures=TeX} %\RequirePackage[garamond]{mathdesign} @@ -34,17 +33,7 @@ ]{Garamond} -\RequirePackage{iftex} -\ifxetex -\RequirePackage[Latin, Greek]{ucharclasses} -\setDefaultTransitions{\defaultfont}{} -\setTransitionsForLatin{\defaultfont}{} -\setTransitionsForGreek{\greekfont}{} -\else -\relax -\fi -\RequirePackage{unicode-math} \setmathfont{Garamond-Math.otf} \setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Garamond} \setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{Garamond-Bold} diff --git a/texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.sty b/texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.tex index 48528a88..6f3b4e07 100644 --- a/texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.sty +++ b/texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.tex @@ -1,4 +1,3 @@ -\RequirePackage{fontspec} \defaultfontfeatures{Ligatures=TeX} \setmainfont[SmallCapsFeatures={Numbers=OldStyle},% NFSSFamily=Palatino Linotype,% @@ -18,17 +17,7 @@ BoldItalicFont=PalatinoLinotype-BoldItalic,% ]{PalatinoLinotype-Roman} -\RequirePackage{iftex} -\ifxetex -\RequirePackage[Latin, Greek]{ucharclasses} -\setDefaultTransitions{\defaultfont}{} -\setTransitionsForLatin{\defaultfont}{} -\setTransitionsForGreek{\greekfont}{} -\else -\relax -\fi -\RequirePackage{unicode-math} \setmathfont{texgyrepagella-math.otf} diff --git a/texmf-dist/tex/latex/lucida-otf/lucida-otf-kern.tex b/texmf-dist/tex/latex/lucida-otf/lucida-otf-kern.tex index bfd6f478..9f8b057c 100644 --- a/texmf-dist/tex/latex/lucida-otf/lucida-otf-kern.tex +++ b/texmf-dist/tex/latex/lucida-otf/lucida-otf-kern.tex @@ -1,3 +1,4 @@ +%% $Id: lucida-otf-kern.tex 755 2018-04-13 11:33:43Z herbert $ %% %% Herbert Voss 2018 - %% diff --git a/texmf-dist/tex/latex/lucida-otf/lucida-otf.sty b/texmf-dist/tex/latex/lucida-otf/lucida-otf.sty index b380836d..3fe40d4a 100644 --- a/texmf-dist/tex/latex/lucida-otf/lucida-otf.sty +++ b/texmf-dist/tex/latex/lucida-otf/lucida-otf.sty @@ -1,13 +1,13 @@ -%% $Id: lucida-otf.sty 750 2018-03-29 12:29:53Z herbert $ +%% $Id: lucida-otf.sty 751 2018-03-31 17:34:46Z herbert $ %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. %% Either version 1.3 or, at your option, any later version. %% -% Copyright 2018 Herbert Voss hvoss@tug.org +% Copyright 2023 Herbert Voss hvoss@tug.org %% \ProvidesPackage{lucida-otf}[% - 2018/03/31 v. 0.08 (Herbert Voss) Supports Lucida OpenType for lualatex/xelatex.] + 2023/06/16 v. 0.09 (Herbert Voss) Supports Lucida OpenType for lualatex/xelatex.] % \RequirePackage{ifxetex,ifluatex,xkeyval,textcomp} \RequirePackage{unicode-math} % support opentype math fonts @@ -136,6 +136,7 @@ %----------------------------------------- symbolic names ---------------------------- \setmainfont{Lucida Bright OT}[% main rm \lucidaRM@features, + ItalicFont = * Italic, BoldFont = * Demibold, BoldItalicFont = * Demibold Italic, RawFeature = {\Lucida@RawFeatures} @@ -143,6 +144,7 @@ % \setsansfont{Lucida Sans OT}[% main sans \lucidaSS@features, + ItalicFont = * Italic, BoldFont = * Demibold, BoldItalicFont = * Demibold Italic ] diff --git a/texmf-dist/tex/latex/mathtime-ltx/mathpi.sty b/texmf-dist/tex/latex/mathtime-ltx/mathpi.sty new file mode 100644 index 00000000..080cbe99 --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/mathpi.sty @@ -0,0 +1,34 @@ +%% +%% This is file `mathpi.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathtime.dtx (with options: `package,mathpi') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +%% This package may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\NeedsTeXFormat{LaTeX2e}[1995/01/01] +\ProvidesPackage{mathpi} + [1999/03/29 v1.1% + mathpi + font support (FMi/DPC)] +\DeclareOption{mathfrak}{% + \DeclareMathAlphabet\mathfrak{U}{mh2}{m}{n}} +\DeclareOption{mathcal}{% + \DeclareMathAlphabet\mathcal{U}{mh2scr}{m}{n}} +\DeclareOption{mathscr}{% + \DeclareMathAlphabet\mathscr{U}{mh2scr}{m}{n}} +\DeclareOption{mathbb}{% + \DeclareMathAlphabet\mathbb{U}{mh6}{m}{n}} +\ProcessOptions + +\endinput +%% +%% End of file `mathpi.sty'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/mathtime.sty b/texmf-dist/tex/latex/mathtime-ltx/mathtime.sty new file mode 100644 index 00000000..35054191 --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/mathtime.sty @@ -0,0 +1,358 @@ +%% +%% This is file `mathtime.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mathtime.dtx (with options: `package,mathtime') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +%% This package may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +\NeedsTeXFormat{LaTeX2e}[1995/01/01] +\ProvidesPackage{mathtime} + [1999/03/29 v1.1% + mathtime + font support (FMi/DPC)] +\newcommand\greekshape{} +\DeclareOption{slantedgreek}{\renewcommand\greekshape{it}} +\DeclareOption{uprightgreek}{\renewcommand\greekshape{n}} +\DeclareOption{nobold}{\let\boldmath=u} +\DeclareOption{cmbold}{\let\boldmath=c} +\DeclareOption{mtbold}{\let\boldmath=m} +\DeclareOption{heavybold}{\let\boldmath=h} +\newcommand\enablesubscriptcorrection {\catcode`\_=12\relax} +\newcommand\disablesubscriptcorrection{\catcode`\_=8\relax} +\DeclareOption{nosubscriptcorrection}{\disablesubscriptcorrection} +\DeclareOption{subscriptcorrection} {\enablesubscriptcorrection} +\DeclareOption{cmcal} {\let\mathcal=c} +\DeclareOption{lucidacal}{\let\mathcal=l} +\DeclareOption{mtplusscr}{\let\mathscr=s} +\DeclareOption{mtpluscal}{\let\mathcal=s} +\DeclareOption{lucidascr}{\let\mathscr=l} +\DeclareOption{noTS1} {\let\symtextcomp\relax} +\let\operator@encoding\encodingdefault +\DeclareOption{OT1}{\def\operator@encoding{OT1}} +\DeclareOption{T1}{\def\operator@encoding{T1}} +\DeclareOption{LY1}{\def\operator@encoding{LY1}\ExecuteOptions{noTS1}} +\DeclareOption{errorshow}{% + \def\@font@info#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Info: \space\space\space#1}}% + \def\@font@warning#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Warning: #1}}} +\DeclareOption{warningshow}{% + \def\@font@info#1{% + \GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Info: \space\space\space#1}}% + \def\@font@warning#1{% + \GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}% + {LaTeX Font Warning: #1}}} +\DeclareOption{nofontinfo}{% + \let\@font@info\@gobble + \let\@font@warning\@gobble} +\ExecuteOptions{% + slantedgreek,nobold,nosubscriptcorrection,cmcal,errorshow} +\ProcessOptions +\edef\@tempa{\rmdefault} +\def\@tempb {cmr} +\ifx\@tempa\@tempb + \renewcommand*\sfdefault{phv} + \renewcommand*\rmdefault{ptm} + \renewcommand*\ttdefault{pcr} + \renewcommand*\bfdefault{b} +\fi +\DeclareFontEncoding{MY1}{}{} +\DeclareFontEncoding{MY2}{}{} +\DeclareFontEncoding{MY3}{}{} +\DeclareFontSubstitution{MY1}{mtt}{m}{it} +\DeclareFontSubstitution{MY2}{mtt}{m}{n} +\DeclareFontSubstitution{MY3}{mtt}{m}{n} +\SetSymbolFont{operators} {normal}{\operator@encoding}{ptm}{m}{n} +\SetSymbolFont{letters} {normal}{MY1}{mtt}{m}{it} +\SetSymbolFont{symbols} {normal}{MY2}{mtt}{m}{n} +\SetSymbolFont{largesymbols}{normal}{MY3}{mtt}{m}{n} +\ifx\boldmath c + \SetSymbolFont{operators} {bold}{\operator@encoding}{cmr}{bx}{n} + \SetSymbolFont{letters} {bold}{OML}{cmm}{b}{it} + \SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{m}{n} +\PackageWarningNoLine{mathtime} + {The use of the `cmbold' option will result\MessageBreak + in incorrect characters in some circumstances\MessageBreak + without any warning as the Math Time fonts and the\MessageBreak + Computer Modern fonts have incompatible encodings.\MessageBreak + Please use this option with care!\@gobble} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \let\heavymath\boldmath +\fi +\ifx\boldmath u + \let\@tempa\version@elt + \def\version@elt#1{% + \ifx\mv@bold#1\else\noexpand\version@elt\noexpand#1\fi} + \edef\version@list{\version@list} + \let\version@elt\@tempa + \let\mv@bold\@undefined + \renewcommand\boldmath{\PackageError{mathtime}% + {Bold math is not supported}% + {Use cmbold or mtbold options}} + \let\heavymath\boldmath +\fi +\ifx\boldmath m + \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {bold}{MY1}{mtt}{b}{\greekshape} + \SetSymbolFont{symbols} {bold}{MY2}{mtt}{b}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{b}{n} + \DeclareMathVersion{heavy} + \SetSymbolFont{operators}{heavy}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {heavy}{MY1}{mtt}{ub}{\greekshape} + \SetSymbolFont{symbols} {heavy}{MY2}{mtt}{ub}{n} + \SetSymbolFont{largesymbols}{heavy}{MY3}{mtt}{ub}{n} + \DeclareMathSymbol{:}{\mathrel}{symbols}{86} + \DeclareMathSymbol{!}{\mathclose}{symbols}{87} + \DeclareMathSymbol{[}{\mathopen}{symbols}{84} + \DeclareMathSymbol{]}{\mathclose}{symbols}{85} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \newcommand\heavymath{\@nomath\heavymath\mathversion{heavy}} +\fi +\ifx\boldmath h + \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n} + \SetSymbolFont{letters} {bold}{MY1}{mtt}{ub}{\greekshape} + \SetSymbolFont{symbols} {bold}{MY2}{mtt}{ub}{n} + \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{ub}{n} + \DeclareMathSymbol{:}{\mathrel}{symbols}{86} + \DeclareMathSymbol{!}{\mathclose}{symbols}{87} + \DeclareMathSymbol{[}{\mathopen}{symbols}{84} + \DeclareMathSymbol{]}{\mathclose}{symbols}{85} + \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}} + \let\heavymath\boldmath +\fi +\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n} +\SetMathAlphabet{\mathbf}{normal}{\encodingdefault}{\rmdefault}{b}{n} +\SetMathAlphabet{\mathit}{normal}{\encodingdefault}{\rmdefault}{m}{it} +\SetMathAlphabet{\mathsf}{normal}{\encodingdefault}{\sfdefault}{m}{n} +\SetMathAlphabet{\mathtt}{normal}{\encodingdefault}{\ttdefault}{m}{n} +\ifx\mv@bold\@undefined +\else + \SetMathAlphabet{\mathrm}{bold} {\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathbf}{bold} {\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathit}{bold} {\encodingdefault}{\rmdefault}{b}{it} + \SetMathAlphabet{\mathsf}{bold} {\encodingdefault}{\sfdefault}{b}{n} + \SetMathAlphabet{\mathtt}{bold} {\encodingdefault}{\ttdefault}{b}{n} +\fi +\ifx\mv@heavy\@undefined +\else + \SetMathAlphabet{\mathrm}{heavy}{\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathbf}{heavy}{\encodingdefault}{\rmdefault}{b}{n} + \SetMathAlphabet{\mathit}{heavy}{\encodingdefault}{\rmdefault}{b}{it} + \SetMathAlphabet{\mathsf}{heavy}{\encodingdefault}{\sfdefault}{b}{n} + \SetMathAlphabet{\mathtt}{heavy}{\encodingdefault}{\ttdefault}{b}{n} +\fi +\ifx\mathscr s + \let\mathscr\relax + \DeclareMathAlphabet\mathscr{U} {mtms}{b}{n} + \SetMathAlphabet \mathscr{normal}{U}{mtms}{m}{n} + \DeclareMathAlphabet\mathbscr{U}{mtms}{b}{n} +\fi +\ifx\mathscr l + \let\mathscr\relax + \DeclareMathAlphabet{\mathscr} {OMS}{lby}{b}{n} + \SetMathAlphabet {\mathscr}{normal} {OMS}{lby}{m}{n} + \DeclareMathAlphabet{\mathbscr} {OMS}{lby}{b}{n} +\fi +\ifx\mathcal l + \let\mathcal\relax + \DeclareMathAlphabet{\mathcal} {OMS}{lby}{b}{n} + \SetMathAlphabet {\mathcal}{normal} {OMS}{lby}{m}{n} + \DeclareMathAlphabet{\mathbcal} {OMS}{lby}{b}{n} +\fi +\ifx\mathcal s + \let\mathcal\relax + \DeclareMathAlphabet\mathcal{U} {mtms}{b}{n} + \SetMathAlphabet \mathcal{normal}{U}{mtms}{m}{n} + \DeclareMathAlphabet\mathbcal{U}{mtms}{b}{n} +\fi +\ifx\mathcal c + \let\mathcal\relax + \DeclareMathAlphabet\mathcal{OMS} {cmsy}{b}{n} + \SetMathAlphabet \mathcal{normal}{OMS}{cmsy}{m}{n} + \DeclareMathAlphabet\mathbcal{OMS} {cmsy}{b}{n} + +\fi +\DeclareMathSymbol\Gamma {\mathord}{letters}{48} +\DeclareMathSymbol\Delta {\mathord}{letters}{49} +\DeclareMathSymbol\Theta {\mathord}{letters}{50} +\DeclareMathSymbol\Lambda {\mathord}{letters}{51} +\DeclareMathSymbol\Xi {\mathord}{letters}{52} +\DeclareMathSymbol\Pi {\mathord}{letters}{53} +\DeclareMathSymbol\Sigma {\mathord}{letters}{54} +\DeclareMathSymbol\Upsilon{\mathord}{letters}{55} +\DeclareMathSymbol\Phi {\mathord}{letters}{56} +\DeclareMathSymbol\Psi {\mathord}{letters}{57} +\DeclareMathSymbol\Omega {\mathord}{letters}{127} +\DeclareMathSymbol\varGamma {\mathord}{letters}{0} +\DeclareMathSymbol\varDelta {\mathord}{letters}{1} +\DeclareMathSymbol\varTheta {\mathord}{letters}{2} +\DeclareMathSymbol\varLambda {\mathord}{letters}{3} +\DeclareMathSymbol\varXi {\mathord}{letters}{4} +\DeclareMathSymbol\varPi {\mathord}{letters}{5} +\DeclareMathSymbol\varSigma {\mathord}{letters}{6} +\DeclareMathSymbol\varUpsilon {\mathord}{letters}{7} +\DeclareMathSymbol\varPhi {\mathord}{letters}{8} +\DeclareMathSymbol\varPsi {\mathord}{letters}{9} +\DeclareMathSymbol\varOmega {\mathord}{letters}{10} +\DeclareMathSymbol{(}{\mathopen}{letters}{46} % was 028 +\DeclareMathSymbol{)}{\mathclose}{letters}{47} % was 029 +\DeclareMathDelimiter{(}{letters}{46}{largesymbols}{0} +\DeclareMathDelimiter{)}{letters}{47}{largesymbols}{1} +\DeclareMathSymbol{\triangleleft}{\mathbin}{symbols}{71} % was 12F +\DeclareMathSymbol{\triangleright}{\mathbin}{symbols}{70} % was 12E +\DeclareMathSymbol{\comp}{\mathbin}{symbols}{66} % new? +\DeclareMathSymbol{\setdif}{\mathbin}{symbols}{88} % new +\DeclareMathSymbol{\cupprod}{\mathbin}{symbols}{89} % new +\DeclareMathSymbol{\capprod}{\mathbin}{symbols}{90} % new +\DeclareMathSymbol{+}{\mathbin}{symbols}{67} % was 02B +\DeclareMathSymbol{=}{\mathrel}{symbols}{68} % was 03D +\let\Relbar\@undefined +\DeclareMathSymbol{\Relbar}{\mathrel}{symbols}{72} % was a macro +\DeclareMathSymbol{;}{\mathpunct}{symbols}{73} % was 13B +\DeclareMathSymbol{\varkappa}{\mathord}{letters}{126} % new (AMS) +\DeclareMathAccent{\vec}{\mathord}{symbols}{69} +\DeclareMathAccent{\grave}{\mathord}{symbols}{74} +\DeclareMathAccent{\acute}{\mathord}{symbols}{75} +\DeclareMathAccent{\check}{\mathord}{symbols}{76} +\DeclareMathAccent{\breve}{\mathord}{symbols}{77} +\DeclareMathAccent{\bar}{\mathord}{symbols}{78} +\DeclareMathAccent{\hat}{\mathord}{symbols}{79} +\DeclareMathAccent{\dot}{\mathord}{symbols}{80} +\DeclareMathAccent{\tilde}{\mathord}{symbols}{81} +\DeclareMathAccent{\ddot}{\mathord}{symbols}{82} +\DeclareMathAccent{\widebar}{\mathord}{symbols}{83} % new +\def\defaultscriptratio{.76} +\def\defaultscriptscriptratio{.6} +\DeclareMathSizes{5} {6} {6} {6} +\DeclareMathSizes{6} {6} {6} {6} +\DeclareMathSizes{7} {6.8} {6} {6} +\DeclareMathSizes{8} {8} {6.8}{6} +\DeclareMathSizes{9} {9} {7.6}{6} +\DeclareMathSizes{10} {10} {7.6}{6} +\DeclareMathSizes{10.95}{10.95}{7.6}{6} +\DeclareMathSizes{12} {12} {9} {7} +\DeclareMathSizes{14.4} {14.4} {10} {8} +\DeclareMathSizes{17.28}{17.28}{12} {9} +\DeclareMathSizes{20.74}{20.74}{14.4}{10} +\DeclareMathSizes{24.88}{24.88}{17.28}{12} +\newcommand\hb@xmdot{\hbox{$\m@th.$}} +\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ + \kern6\p@\hb@xmdot\hb@xmdot\hb@xmdot}} +\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@ + \hb@xmdot}\mkern2mu + \raise4\p@\hb@xmdot\mkern2mu\raise\p@\hb@xmdot\mkern1mu}} +\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr + \not\mathrel{\mkern14mu}\crcr + \noalign{\nointerlineskip}% + \mkern2.5mu% + \leaders\hrule\@height.48\p@\hfill\mkern2.5mu\crcr}}}} +\DeclareRobustCommand\hbar{{% + \dimen@.12em% + \dimen@ii.1em% + \def\@tempa##1##2{{% + \lower##1\dimen@\rlap{\kern##1\dimen@ii\the##2\tw@\char78}}}% + \mathchoice\@tempa\@ne\textfont + \@tempa\@ne\textfont + \@tempa\defaultscriptratio\scriptfont + \@tempa\defaultscriptscriptratio\scriptscriptfont + h}} +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \else\@ctrerr\fi}} +\ifx\symtextcomp\relax + \def\@tempa{LY1} + \ifx\operator@encoding\@tempa + \DeclareMathSymbol\dagger {\mathbin}{operators}{134} + \DeclareMathSymbol\ddagger{\mathbin}{operators}{135} + \DeclareMathSymbol\mathsection{\mathord}{operators}{'247} + \DeclareMathSymbol\mathparagraph{\mathord}{operators}{'266} + \DeclareMathSymbol\mathsterling{\mathord}{operators}{163} + \let\mathunderscore\@undefined + \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95} + \fi + \def\@tempa{T1} + \ifx\operator@encoding\@tempa + \DeclareMathSymbol\mathsterling{\mathord}{operators}{191} + \let\mathunderscore\@undefined + \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95} + \fi +\else + \DeclareFontEncoding{TS1}{}{} + \DeclareSymbolFont{textcomp}{TS1}{ptm}{m}{n} + \ifx\mv@bold\@undefined + \else + \SetSymbolFont {textcomp}{bold}{TS1}{ptm}{b}{n} + \fi + \ifx\mv@heavy\@undefined + \else + \SetSymbolFont {textcomp}{heavy}{TS1}{ptm}{b}{n} + \fi + \DeclareMathSymbol\dagger {\mathbin}{textcomp}{'204} + \DeclareMathSymbol\ddagger{\mathbin}{textcomp}{'205} + \DeclareMathSymbol\mathsection{\mathord}{textcomp}{'247} + \DeclareMathSymbol\mathparagraph{\mathord}{textcomp}{'266} +\fi +\DeclareTextSymbolDefault{\textless}{MY1} +\DeclareTextSymbolDefault{\textgreater}{MY1} +\DeclareTextAccentDefault{\t}{MY2} +\DeclareTextSymbol{\textless}{MY1}{`\<} +\DeclareTextSymbol{\textgreater}{MY1}{`\>} +\DeclareTextAccent{\t}{MY2}{65} +\DeclareTextSymbolDefault{\textasteriskcentered}{MY2} +\DeclareTextSymbolDefault{\textbackslash}{MY2} +\DeclareTextSymbolDefault{\textbar}{MY2} +\DeclareTextSymbolDefault{\textbraceleft}{MY2} +\DeclareTextSymbolDefault{\textbraceright}{MY2} +\DeclareTextSymbolDefault{\textbullet}{MY2} +\DeclareTextSymbolDefault{\textperiodcentered}{MY2} +\DeclareTextAccentDefault{\textcircled}{MY2} +\DeclareTextSymbol{\textasteriskcentered}{MY2}{3} +\DeclareTextSymbol{\textbackslash}{MY2}{110} +\DeclareTextSymbol{\textbar}{MY2}{106} +\DeclareTextSymbol{\textbraceleft}{MY2}{102} +\DeclareTextSymbol{\textbraceright}{MY2}{103} +\DeclareTextSymbol{\textbullet}{MY2}{15} +\DeclareTextSymbol{\textperiodcentered}{MY2}{1} +\DeclareTextCommand{\textcircled}{MY2}[1]{{% + \ooalign{% + \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr + \char13}}} +\ifx\symtextcomp\relax +\else + \DeclareTextSymbolDefault{\textsection}{TS1} + \DeclareTextSymbolDefault{\textparagraph}{TS1} + \DeclareTextSymbol{\textsection}{TS1}{'247} + \DeclareTextSymbol{\textparagraph}{TS1}{'266} +\fi +\begingroup + \catcode`\_=13 + \gdef_#1{\sb{\test@sb#1}} +\endgroup +\def\test@sb{% + \@ifnextchar p% + {\mkern\m@ne mu}% + {\ifx\@let@token j% + \mkern-\tw@ mu% + \else + \ifx\@let@token f% + \mkern-\tw@ mu% + \fi + \fi}} +\mathcode`\_=\string"8000 + +\endinput +%% +%% End of file `mathtime.sty'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/my1mtt.fd b/texmf-dist/tex/latex/mathtime-ltx/my1mtt.fd new file mode 100644 index 00000000..4c6c47cb --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/my1mtt.fd @@ -0,0 +1,25 @@ +%% +%% This is file `my1mtt.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `MY1mtt,mtplus') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{my1mtt.fd} + [2001/05/30 v1.0c + Mathtime Encoding 1 + (FMi)] +\DeclareFontFamily{MY1}{mtt}{\skewchar\font45} +\DeclareFontShape{MY1}{mtt}{m}{it}{<->mtmi}{} +\DeclareFontShape{MY1}{mtt}{b}{it}{<->mtmib}{} +\DeclareFontShape{MY1}{mtt}{ub}{it}{<->mtmih}{} +\DeclareFontShape{MY1}{mtt}{b}{n} {<->mtmub}{} +\DeclareFontShape{MY1}{mtt}{ub}{n}{<->mtmuh}{} +\endinput +%% +%% End of file `my1mtt.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/my2mtt.fd b/texmf-dist/tex/latex/mathtime-ltx/my2mtt.fd new file mode 100644 index 00000000..aa3cd60e --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/my2mtt.fd @@ -0,0 +1,23 @@ +%% +%% This is file `my2mtt.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `MY2mtt,mtplus') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{my2mtt.fd} + [2001/05/30 v1.0c + Mathtime Encoding 2 + (FMi)] +\DeclareFontFamily{MY2}{mtt}{} +\DeclareFontShape{MY2}{mtt}{m}{n}{<->mtsyn}{} +\DeclareFontShape{MY2}{mtt}{b}{n}{<->mtsyb}{} +\DeclareFontShape{MY2}{mtt}{ub}{n}{<->mtsyh}{} +\endinput +%% +%% End of file `my2mtt.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/my3mtt.fd b/texmf-dist/tex/latex/mathtime-ltx/my3mtt.fd new file mode 100644 index 00000000..c4b035f2 --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/my3mtt.fd @@ -0,0 +1,23 @@ +%% +%% This is file `my3mtt.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `MY3mtt,mtplus') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{my3mtt.fd} + [2001/05/30 v1.0c + Mathtime Encoding 3 + (FMi)] +\DeclareFontFamily{MY3}{mtt}{} +\DeclareFontShape{MY3}{mtt}{m}{n}{<->mtex}{} +\DeclareFontShape{MY3}{mtt}{b}{n}{<->mtexb}{} +\DeclareFontShape{MY3}{mtt}{ub}{n}{<->mtexh}{} +\endinput +%% +%% End of file `my3mtt.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/omslby.fd b/texmf-dist/tex/latex/mathtime-ltx/omslby.fd new file mode 100644 index 00000000..2e1da24f --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/omslby.fd @@ -0,0 +1,23 @@ +%% +%% This is file `omslby.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `lucidascale,OMSlby') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{omslby.fd} + [2001/05/30 v1.0c + Lucida New Math Symbols + (FMi)] +\@ifundefined{LucidaScale}{\def\LucidaScale{0.9}}{} +\DeclareFontFamily{OMS}{lby}{\skewchar\font48} +\DeclareFontShape{OMS}{lby}{m}{n}{<->s * [\LucidaScale]lbms}{} +\DeclareFontShape{OMS}{lby}{b}{n}{<->s * [\LucidaScale]lbmsd}{} +\endinput +%% +%% End of file `omslby.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/umh2.fd b/texmf-dist/tex/latex/mathtime-ltx/umh2.fd new file mode 100644 index 00000000..038f17b5 --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/umh2.fd @@ -0,0 +1,21 @@ +%% +%% This is file `umh2.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `Umh2') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{umh2.fd} + [2001/05/30 v1.0c + Adobe Math Pi 2 (Unknown encoding) + (FMi)] +\DeclareFontFamily{U}{mh2}{} +\DeclareFontShape{U}{mh2}{m}{n}{<->s * [0.95]mh2}{} +\endinput +%% +%% End of file `umh2.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/umh2scr.fd b/texmf-dist/tex/latex/mathtime-ltx/umh2scr.fd new file mode 100644 index 00000000..9246d61a --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/umh2scr.fd @@ -0,0 +1,21 @@ +%% +%% This is file `umh2scr.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `Umh2Scr') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{umh2scr.fd} + [2001/05/30 v1.0c + Adobe Math Pi 2 Script (Unknown encoding) + (FMi)] +\DeclareFontFamily{U}{mh2scr}{} +\DeclareFontShape{U}{mh2scr}{m}{n}{<->s * [0.95]mh2scr}{} +\endinput +%% +%% End of file `umh2scr.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/umh6.fd b/texmf-dist/tex/latex/mathtime-ltx/umh6.fd new file mode 100644 index 00000000..7763a9db --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/umh6.fd @@ -0,0 +1,21 @@ +%% +%% This is file `umh6.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `Umh6') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{umh6.fd} + [2001/05/30 v1.0c + Adobe Math Pi 6 (Unknown encoding) + (FMi)] +\DeclareFontFamily{U}{mh6}{} +\DeclareFontShape{U}{mh6}{m}{n}{<->s * [0.95]mh6}{} +\endinput +%% +%% End of file `umh6.fd'. diff --git a/texmf-dist/tex/latex/mathtime-ltx/umtms.fd b/texmf-dist/tex/latex/mathtime-ltx/umtms.fd new file mode 100644 index 00000000..8340cb0d --- /dev/null +++ b/texmf-dist/tex/latex/mathtime-ltx/umtms.fd @@ -0,0 +1,22 @@ +%% +%% This is file `umtms.fd', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mtfonts.fdd (with options: `Umtms') +%% +%% Copyright 1996 1997 Frank Mittelbach and David Carlisle. +%% +%% Development of this package was commissioned by Y&Y Inc. +%% http://www.yandy.com +\ProvidesFile{umtms.fd} + [2001/05/30 v1.0c + Mathtime Plus Script (Unknown encoding) + (FMi)] +\DeclareFontFamily{U}{mtms}{\skewchar\font42} +\DeclareFontShape{U}{mtms}{m}{n}{<->mtms}{} +\DeclareFontShape{U}{mtms}{b}{n}{<->mtmsb}{} +\endinput +%% +%% End of file `umtms.fd'. diff --git a/texmf-dist/tex/latex/siam/proc209.sty b/texmf-dist/tex/latex/siam/proc209.sty new file mode 100644 index 00000000..56365402 --- /dev/null +++ b/texmf-dist/tex/latex/siam/proc209.sty @@ -0,0 +1,366 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc209.sty. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the SIAM Proceedings series using LaTeX. + +% Report the version. +\message{*** SIAM LaTeX 2.09 Proceedings Series macro package, version 1.1, +October 28, 1996 ***} + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=56pc +\hsize=36pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 15pt +\textheight 53.5pc \advance\textheight by \topskip +\textwidth 36pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% + \def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}% + \def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +}} + + + +\def\theequation{\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +\def\trivlist{\parsep\outerparskip + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\parindent \def\makelabel##1{##1}} + +\def\@trivlist{\topsep=0pt\@topsepadd\topsep + \if@noskipsec \leavevmode \fi + \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi + \if@inlabel \@noparitemtrue \@noparlisttrue + \else \@noparlistfalse \@topsep\@topsepadd \fi + \advance\@topsep \parskip + \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue + \@setpar{\if@newlist\else{\@@par}\fi}% + \global\@newlisttrue \@outerparskip\parskip} + + +\def\endtrivlist{\if@newlist\@noitemerr\fi + \if@inlabel\indent\fi + \ifhmode\unskip \par\fi + \if@noparlist \else + \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi\@endparenv\fi + \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}%{2.3ex plus .2ex} +{2pt}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}%{1.5ex plus .2ex} +{2pt}{\large\bf}} +\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus + .2ex}{-.5em plus -.1em}{\normalsize\bf}} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=17pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + + + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of style file diff --git a/texmf-dist/tex/latex/siam/proc2e.sty b/texmf-dist/tex/latex/siam/proc2e.sty new file mode 100644 index 00000000..270777c3 --- /dev/null +++ b/texmf-dist/tex/latex/siam/proc2e.sty @@ -0,0 +1,366 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is proc2e.sty. +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% This is a file of macros and definitions for creating a chapter for +% publication in the SIAM Proceedings series using LaTeX2e. + +% Report the version. +\message{*** SIAM LaTeX2e Proceedings Series macro package, version 1.1, +October 28, 1996 ***} + +\pretolerance=800 +\tolerance=10000 +\sloppy + + +\vsize=56pc +\hsize=36pc +\baselineskip=13pt +\hoffset -.5in +\voffset -.5in +\footskip=18pt +\topmargin 24pt +\headheight 12pt +\headsep 15pt +\textheight 53.5pc \advance\textheight by \topskip +\textwidth 36pc +\parskip 0pt +\parindent 18pt +\def\topfraction{.9} +\def\textfraction{.1} +\def\topnumber{2} +%% footnotes to be set 8/10 +\def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt + % \indent + \abovedisplayskip \z@ + \belowdisplayskip\z@ + \abovedisplayshortskip\abovedisplayskip + \belowdisplayshortskip\belowdisplayshortskip +\def\@listi{\leftmargin\leftmargini \topsep 3pt plus 1pt minus 1pt + \parsep 2pt plus 1pt minus 1pt + \itemsep \parsep}} + +\let\referencesize\footnotesize + +\footnotesep 0pt + +\skip\footins 12pt plus 12pt + +\def\footnoterule{\kern3\p@ \hrule width 3em\vspace{3pt}} % the \hrule is .4pt high + + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddfoot{{\hfil\small\thepage\hfil}}% + \def\@oddhead{} + \def\@evenhead{}\def\@evenfoot{}} + + + +\def\ps@headings{\let\@mkboth\markboth + \def\@oddfoot{}\def\@evenfoot{}% + \def\@evenhead{{\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% + \def\@oddhead{\hfil{\noindent\sc\rightmark}\hspace*{2pc}{\rm\thepage}}% + + + +\def\ps@myheadings{\let\@mkboth\@gobbletwo + \def\@oddfoot{}\def\@evenfoot{}% + \def\@oddhead{\hfil{\sc\rightmark}\hspace*{2pc}{\normalsize\rm\thepage}}% + \def\@evenhead{{\normalsize\rm\thepage}\hspace*{2pc}{\sc\leftmark}\hfil}% +% \def\chaptermark##1{}% + % \def\sectionmark##1{}\def\subsectionmark##1{}} +}} + + + +\def\theequation{\arabic{equation}} + +\def\abstract{\if@twocolumn +\section*{Abstract} +\else \small +\begin{center} +{\bf Abstract\vspace{-.5em}\vspace{3pt}} +\end{center} +\quotation +\fi} +\def\endabstract{\if@twocolumn\else\endquotation\fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% THEOREMS, PROOFS, ALGORITHMS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% defined proof environment by theorem model (took out counter) + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\newproof#1{\@nprf{#1}} + +\def\@nprf#1#2{\@xnprf{#1}{#2}} + +\def\@xnprf#1#2{\expandafter\@ifdefinable\csname #1\endcsname +\global\@namedef{#1}{\@prf{#1}{#2}}\global\@namedef{end#1}{\@endproof}} + +\def\@prf#1#2{\@xprf{#1}{#2}} + +\def\@xprf#1#2{\@beginproof{#2}{\csname the#1\endcsname}\ignorespaces} + + + +%%% defined algorithm environment by theorem model + +\def\newalgorithm#1{\@ifnextchar[{\@oalg{#1}}{\@nalg{#1}}} + +\def\@nalg#1#2{% +\@ifnextchar[{\@xnalg{#1}{#2}}{\@ynalg{#1}{#2}}} + +\def\@xnalg#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}\@addtoreset{#1}{#3}% +\expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand + \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@ynalg#1#2{\expandafter\@ifdefinable\csname #1\endcsname +{\@definecounter{#1}% +\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% +\global\@namedef{#1}{\@alg{#1}{#2}}\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@oalg#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname + {\global\@namedef{the#1}{\@nameuse{the#2}}% +\global\@namedef{#1}{\@alg{#2}{#3}}% +\global\@namedef{end#1}{\@endalgorithm}}} + +\def\@alg#1#2{\refstepcounter + {#1}\@ifnextchar[{\@yalg{#1}{#2}}{\@xalg{#1}{#2}}} + +\def\@xalg#1#2{\@beginalgorithm{#2}{\csname the#1\endcsname}\ignorespaces} +\def\@yalg#1#2[#3]{\@opargbeginalgorithm{#2}{\csname + the#1\endcsname}{#3}\ignorespaces} + + + + +\def\@beginproof#1{\rm {\it #1.\ }} +\def\@endproof{\outerparskip 0pt\endtrivlist} + +\def\@begintheorem#1#2{\it {\sc #1\ #2.\ }} +\def\@opargbegintheorem#1#2#3{\it + {\sc #1\ #2\ (#3).\ }} +\def\@endtheorem{\outerparskip 0pt\endtrivlist} + +%\def\@begindefinition#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +%\def\@opargbegindefinition#1#2#3{\rm \trivlist +% \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +%\def\@enddefinition{\outerparskip 0pt\endtrivlist} + + +\def\@beginalgorithm#1#2{\rm \trivlist \item[\hskip \labelsep{\sc #1\ #2.}]} +\def\@opargbeginalgorithm#1#2#3{\rm \trivlist + \item[\hskip \labelsep{\sc #1\ #2.\ (#3)}]} +\def\@endalgorithm{\outerparskip 6pt\endtrivlist} + + +\newskip\outerparskip + +%\def\trivlist{\parsep\outerparskip +% \@trivlist \labelwidth\z@ \leftmargin\z@ +% \itemindent\parindent \def\makelabel##1{##1}} +% +%\def\@trivlist{\topsep=0pt\@topsepadd\topsep +% \if@noskipsec \leavevmode \fi +% \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi +% \if@inlabel \@noparitemtrue \@noparlisttrue +% \else \@noparlistfalse \@topsep\@topsepadd \fi +% \advance\@topsep \parskip +% \leftskip\z@\rightskip\@rightskip \parfillskip\@flushglue +% \@setpar{\if@newlist\else{\@@par}\fi}% +% \global\@newlisttrue \@outerparskip\parskip} +% +% +%\def\endtrivlist{\if@newlist\@noitemerr\fi +% \if@inlabel\indent\fi +% \ifhmode\unskip \par\fi +% \if@noparlist \else +% \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip +% \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip +% \vskip\@tempskipa +% \fi\@endparenv\fi +% \vskip\outerparskip} + + + + \newproof{@proof}{Proof} + \newenvironment{proof}{\begin{@proof}}{\end{@proof}} + + \newtheorem{@theorem}{Theorem}[section] + \newenvironment{theorem}{\begin{@theorem}}{\end{@theorem}} + +% \newalgorithm{@algorithm}{Algorithm}[section] +% \newenvironment{algorithm}{\begin{@algorithm}}{\end{@algorithm}} + + + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{fact}{Fact}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{axiom}{Axiom}[section] +\newtheorem{cond}{Condition}[section] +\newtheorem{property}{Property}[section] +\newtheorem{proposition}{Proposition}[section] + +\newtheorem{Conjecture}{Conjecture}[section] +\newtheorem{Definition}{Definition}[section] +\newtheorem{Lemma}{Lemma}[section] +\newtheorem{Remark}{Remark}[section] + +\newproof{Example}{Example} +\newproof{Method}{Method} +\newproof{Exercise}{Exercise} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% TABLE AND FIGURE CAPTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \def\@figtxt{figure} +\long\def\@makecaption#1#2{\small +\setlength{\parindent}{18pt} +\baselineskip 14pt + \ifx\@captype\@figtxt + \vskip 10pt + \setbox\@tempboxa\hbox{{\sc #1} {\it #2}} + \ifdim \wd\@tempboxa >\hsize {\sc #1} {\it #2}\par \else \hbox +to\hsize{\hfil\box\@tempboxa\hfil}% + \fi\else\hbox to\hsize{\hfil{\sc #1}\hfil}% + \setbox\@tempboxa\hbox{{\it #2}}% + \ifdim \wd\@tempboxa >\hsize {\it #2}\par \else + \hbox to \hsize{\hfil\box\@tempboxa\hfil}\fi + \vskip 10pt + \fi} + + +%\newif\iftable \global\tablefalse + + +%\long\def\@makecaption#1#2{% +%\setlength{\parindent}{18pt} +% \vskip 12pt +% \iftable + % \hbox to \hsize{\hfil\sc #1\hfil} + % \hbox to \hsize{\hfil\it #2\hfil} + % \global\tablefalse + % \else + % \setbox\@tempboxa\hbox{{\small#1} {\small\it#2}} + % \ifdim \wd\@tempboxa >\hsize + % \indent{\small#1}{\small\it#2}\par + % \else + % \hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi + % \fi} +% \vskip 6pt} + + + +%\def\figure{\global\tablefalse\@float{figure}} +\def\fnum@figure{\par\sc Fig. \thefigure.\ } +%\def\fnum@figure{\par\sc Fig. \thefigure\ } + +%\def\table{\global\tabletrue\@float{table}} +\def\fnum@table{\small \sc Table \thetable} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SECTIONS % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus + -.2ex}%{2.3ex plus .2ex} +{2pt}{\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus + -.2ex}%{1.5ex plus .2ex} +{2pt}{\large\bf}} +\def\subsubsection{\@startsection {subsubsection}{3}{\z@}{1.3ex plus .5ex minus + .2ex}{-.5em plus -.1em}{\normalsize\bf}} + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% BIBLIOGRAPHY %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\def\thebibliography#1{% +%\cleardoublepage +\parindent 0em +\vspace{9pt} +\begin{flushleft}\large\bf {References}\end{flushleft} +\addvspace{3pt}\nopagebreak\list + %% default is no labels, for those not using \cite or BibTeX +{[\arabic{enumi}]} {\settowidth\labelwidth{[#1]} +%%{[\arabic{enumi}]}{\settowidth\labelwidth{mm} +\leftmargin\labelwidth +\leftmargin=17pt + \advance\leftmargin\labelsep + \usecounter{enumi}\@bibsetup} +\def\newblock{\hskip .11em plus .33em minus -.07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} + + + +%% setup 8/10 type +\def\@bibsetup{%\itemindent=0pt +\itemsep=0pt \parsep=0pt +\small} + +\def\sameauthor{\leavevmode\vrule height 2pt depth -1.6pt width 23pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% INDEX % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%makeindex.sty official version 6.4 +%The second line came from /usr/misc/lib/tex82/report.sty. + +\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\chapter*{Index}] + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\def\printindex{\cleardoublepage\markboth{INDEX}{INDEX} +\addcontentsline{toc}{chapter}{Index}\@input{\jobname.ind}} + +\ps@headings + + +%%% end of style file diff --git a/texmf-dist/tex/latex/siam/ptexproc.sty b/texmf-dist/tex/latex/siam/ptexproc.sty new file mode 100644 index 00000000..6848b8f4 --- /dev/null +++ b/texmf-dist/tex/latex/siam/ptexproc.sty @@ -0,0 +1,320 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CUT HERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% This is ptexproc.sty +% This file may be freely distributed but may not be altered in any way. +% Any comments or questions regarding these macros should be directed to: + +% Corey Gray +% SIAM +% 3600 University City Science Center +% Philadelphia, PA 19104-2688 +% USA +% Telephone: (215) 382-9800 +% Fax: (215) 386-7999 +% e-mail: gray@siam.org + +% +% This is a file of macros and definitions for creating a chapter +% for publication in the SIAM Proceedings Series using Plain TeX. + +% Report the version. +\message{*** SIAM Plain TeX Proceedings Series macro package, version 1.0, +November 6, 1992.***} + +% Make the @ sign a letter for internal control sequences. +\catcode`\@=11 +% +% +% + +\overfullrule=0pt +\baselineskip=14truept + + +%%% DIMENSIONS %%% + +\hsize=36truepc +\vsize=55truepc +%\hoffset=.5in +\parindent=18truept +\def\firstpar{\parindent=0pt\global\everypar{\parindent=18truept}} +\parskip=0pt + + +%%% FONTS %%% + +\font\tenrm=cmr10 +\font\tenbf=cmbx10 +\font\tenit=cmti10 +\font\tensmc=cmcsc10 +\def\tenpoint{% + \def\rm{\tenrm}\def\bf{\tenbf}% + \def\it{\tenit}\def\smc{\tensmc} + \textfont0=\tenrm \scriptfont0=\sevenrm + \textfont1=\teni \scriptfont1=\seveni + \textfont2=\tensy \scriptfont2=\sevensy + \textfont3=\tenex \scriptfont3=\tenex +\baselineskip=12pt\rm}% + +\font\ninerm=cmr9 +\font\ninebf=cmbx9 +\font\nineit=cmti9 +\def\ninepoint{% + \def\rm{\ninerm}\def\bf{\ninebf}% + \def\it{\nineit}\baselineskip=11pt\rm}% + +\font\eightrm=cmr8 +\font\eightbf=cmbx8 +\font\eightit=cmti8 +\font\eighti=cmmi8 +\font\eightsy=cmsy8 +\def\eightpoint{% + \def\rm{\eightrm}\def\bf{\eightbf}% + \def\it{\eightit}\def\smc{\eightrm}\baselineskip=10pt\rm% + \textfont0=\eightrm \scriptfont0=\sixrm + \textfont1=\eighti \scriptfont1=\sixi + \textfont2=\eightsy \scriptfont2=\sixsy + \textfont3=\tenex \scriptfont3=\tenex +} + +\font\sixrm=cmr6 +\font\sixbf=cmbx6 +\font\sixi=cmmi6 +\font\sixsmc=cmr5 +\font\sixsy=cmsy6 +\def\sixpoint{% + \def\rm{\sixrm}\def\bf{\sixbf}% + \def\smc{\sixsmc}\baselineskip=8pt\rm}% + +\fontdimen13\tensy=2.6pt +\fontdimen14\tensy=2.6pt +\fontdimen15\tensy=2.6pt +\fontdimen16\tensy=1.2pt +\fontdimen17\tensy=1.2pt +\fontdimen18\tensy=1.2pt + +\font\eightrm=cmr8 +\font\ninerm=cmr9 +\font\elevenrm=cmr10 scaled\magstephalf +\font\fourteenrm=cmr10 scaled\magstep 1 +\font\eighteenrm=cmr10 scaled\magstep 3 +\font\twelvebf=cmbx10 scaled\magstep 1 +\font\elevenbf=cmbx10 scaled\magstephalf +\font\elevenit=cmti10 scaled\magstephalf +\font\elevensc=cmcsc10 scaled\magstephalf + +\def\theoremfont{\elevensc} +\def\textfont{\elevenrm} +\def\itfont{\elevenit} +\def\headfont{\twelvebf} +\def\smallheadfont{\elevenbf} +\def\titlefont{\eighteenrm} +\def\chapterfont{\fourteenrm} +\def\authorfont{\fourteenrm} +\def\rheadfont{\tenrm} +\def\abstractfont{\tenrm} +\def\smc{\tensmc} +\font\eightsmc=cmcsc8 + +\def\footnote#1{\baselineskip=11truept\edef\@sf{\spacefactor\the\spacefactor}#1\@sf + \insert\footins\bgroup\ninepoint\hsize=36pc + \interlinepenalty10000 \let\par=\endgraf + \leftskip=0pt \rightskip=0pt + \splittopskip=10pt plus 1pt minus 1pt \floatingpenalty=20000 +\smallskip +\item{#1}\bgroup\baselineskip=10pt\strut +\aftergroup\@foot\let\next} +\skip\footins=12pt plus 2pt minus 4pt +\dimen\footins=36pc + + + +%%% CHAPTER OPENING MACROS %%% + +\def\startchapter{\topinsert\vglue54pt\endinsert} + +\def\title#1\endtitle{\titlefont\centerline{#1}\vglue5pt}%\vskip40truept\tenrm} +\def\lasttitle#1\endlasttitle{\titlefont\centerline{#1}\vskip1.32truepc} +\def\author#1\endauthor{\authorfont\centerline{#1}\vglue8pt\textfont} +\def\lastauthor#1\endlastauthor{\authorfont\centerline{#1}\vglue2.56pc\textfont} +\def\abstract#1\endabstract{\baselineskip=12pt\leftskip=2.25pc + \rightskip=2.25pc\abstractfont{#1}\textfont} + +%%% COUNTERS FOR HEADINGS %%% + +\newcount\headcount +\headcount=1 +\newcount\seccount +\seccount=1 +\newcount\subseccount +\subseccount=1 +\def\secreset{\global\seccount=1} + \def\subsecreset{\global\subseccount=1} + +%%% HEADINGS %%% + +\def\headone#1{\baselineskip=14pt\leftskip=0pt\rightskip=0pt\vskip17truept\parindent=0pt +{\headfont\the\headcount\hskip14truept #1} +\par\nobreak\firstpar\global\advance\headcount by 0 + \global\advance\headcount by 1\secreset\vskip2truept\textfont} + +\def\headtwo#1{\advance\headcount by -1% + \vskip17truept\parindent=0pt{\headfont\the\headcount.% + \the\seccount\hskip14truept #1}%\enspace\ignorespaces\firstpar + \global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\subsecreset\vskip2pt\textfont} + + \def\headthree#1{\advance\headcount by -1\advance\seccount by -1 +% \advance\subseccount by -1% + \vskip17truept\parindent=0pt{\smallheadfont\the\headcount.% + \the\seccount.\the\subseccount\hskip11truept #1}\hskip6pt\ignorespaces + \firstpar\global\advance\headcount by 1\global\advance\seccount by 1 + \global\advance\subseccount by 1\textfont} + +%%% THEOREMS, PROOFS, DEFINITIONS, etc. %%% + +\def\thm#1{{\theoremfont +#1\enspace} +\hskip-5pt\begingroup\itfont\ignorespaces} + +\let\lem=\thm +\let\cor=\thm +\let\prop=\thm + +\def\endthm{\endgroup\textfont} +\let\endlem=\endthm +\let\endcor=\endthm +\let\endprop=\endthm + +\def\prf#1{{\itfont #1.}\textfont\enspace\ignorespaces} +\let\rem=\prf +\let\case=\prf + +\def\endprf{\textfont} +\let\endrem=\endprf +\let\endcase=\endprf + +\def\qed{{\qquad \vbox{\hrule\hbox{% + \vrule height1.3ex\hskip0.8ex\vrule}\hrule + }}\par} + +\def\dfn#1{{\theoremfont +#1\enspace} +\textfont\ignorespaces} + +\let\fact=\dfn + +\def\enddfn{\textfont} + +\let\endfact=\enddfn + +%%% FIGURES AND CAPTIONS %%% + + +\newcount\figcount +\figcount=1 + + +%\newcount\tablenumber +%\tablenumber=1 + +\def\\{\hfill\break} + +\newbox\TestBox +\newdimen\setwd +\newskip\belowcaptionskip +\belowcaptionskip=6pt plus 1pt + +\def\endinsert{\egroup % finish the \vbox + \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ + \advance\dimen@12\p@ \advance\dimen@\pagetotal + \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi + \if@mid\vskip\belowcaptionskip\box\z@\par \penalty-200\vskip\belowcaptionskip + \else\insert\topins{\penalty100 % floating insertion + \splittopskip\z@skip + \splitmaxdepth\maxdimen \floatingpenalty\z@ + \ifp@ge \dimen@\dp\z@ + \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero + \else \box\z@\nobreak\vskip\belowcaptionskip\fi}\fi\endgroup} + + + + +\def\fig#1#2#3{% + \setbox\TestBox=\hbox{\tenpoint #3.}\setwd=\wd\TestBox + \topinsert + \vskip #1 + \vskip 12pt + \ifdim\setwd > 23pc + {\tenit{\smc #2.}\ \ #3} + \else + \centerline{\tenit\noindent + {\smc #2.}\ \ #3}\fi% + % \global\advance\figcount by 1 + \endinsert} + + + +%%% REFERENCES %%% + +\newdimen\refindent@ +\newdimen\refhangindent@ +\newbox\refbox@ +\setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [00]}% Default 2 digits +\refindent@=\wd\refbox@ + +\def\resetrefindent#1{% + \setbox\refbox@=\hbox{\tenrm\baselineskip=11pt [#1]}% + \refindent@=\wd\refbox@} + +\def\Refs{% + \unskip\vskip1pc + \leftline{\noindent\headfont References}% + \penalty10000 + \vskip4pt + \penalty10000 + \refhangindent@=\refindent@ + \global\advance\refhangindent@ by .5em + \global\everypar{\hangindent\refhangindent@}% + \parindent=0pt\baselineskip=12pt\tenrm} + +\def\sameauthor{\leavevmode\vbox to 1ex{\vskip 0pt plus 100pt + \hbox to 2em{\leaders\hrule\hfil}\vskip 0pt plus 300pt}} + +\def\ref#1\\#2\endref{\leavevmode\hbox to \refindent@{\hfil[#1]}\enspace #2\par} + + +%%% OUTPUT %%% + +\def\rightheadline{\hfill\tensmc\rightrh\hskip2pc\tenrm\folio} +\def\leftheadline{\tenrm\folio\hskip2pc\tensmc\leftrh\hfill} + +\global\footline={\hss\tenrm\folio\hss}% first page + +\output{\plainoutput} +\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}% + \advancepageno + \ifnum\pageno>1 + \global\footline={\hfill}% + \fi + \ifodd\pageno + \global\headline={\rightheadline}% + \else + \global\headline={\leftheadline}% + \fi + \ifnum\outputpenalty>-\@MM \else\dosupereject\fi} +\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}} +\def\makeheadline{\vbox to\z@{\vskip-22.5\p@ + \line{\vbox to8.5\p@{}\rheadfont\the\headline}\vss}% + \nointerlineskip} +\def\makefootline{\baselineskip24\p@\vskip-6\p@\line{\the\footline}} +\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over + \line{}\kern-\topskip\nobreak\vfill\supereject\fi} + +\def\footnoterule{\vskip11pt\kern -4\p@\hrule width 3pc \kern 3.6\p@ } % rule = .4 pt high + +% Turn off @ as being a letter. +% +\catcode`\@=13 + +%end of style file diff --git a/tlpkg/texlive.tlpdb b/tlpkg/texlive.tlpdb index 5bbe3221..f8ac6e4c 100644 --- a/tlpkg/texlive.tlpdb +++ b/tlpkg/texlive.tlpdb @@ -1,13 +1,13 @@ name 00texlive.config category TLCore -revision 269 +revision 371 depend container_format/xz depend container_split_doc_files/1 depend container_split_src_files/1 depend frozen/0 -depend minrelease/2016 +depend minrelease/2023 depend release/2100-nonfree -depend revision/349 +depend revision/378 name 00texlive.installation category TLCore @@ -32,7 +32,7 @@ depend opt_sys_info:/usr/local/share/info depend opt_sys_man:/usr/local/share/man depend opt_w32_multi_user:1 depend opt_write18_restricted:1 -depend setting_available_architectures:amd64-freebsd amd64-netbsd armel-linux armhf-linux i386-cygwin i386-darwin i386-freebsd i386-linux i386-netbsd i386-solaris powerpc-darwin powerpc-linux sparc-solaris universal-darwin win32 x86_64-cygwin x86_64-darwin x86_64-darwinlegacy x86_64-linux x86_64-solaris +depend setting_available_architectures:amd64-freebsd amd64-netbsd armel-linux armhf-linux i386-cygwin i386-darwin i386-freebsd i386-linux i386-netbsd i386-solaris powerpc-darwin powerpc-linux sparc-solaris universal-darwin windows x86_64-cygwin x86_64-darwin x86_64-darwinlegacy x86_64-linux x86_64-solaris name acmtrans category Package @@ -301,18 +301,11 @@ catalogue-topics collection pdf-forms name acrotex-js category Package revision 335 -shortdesc JavaScript files used by acrotex and other packages -longdesc In the distribution of this package are two critical JavaScript -longdesc files (aeb.js and aeb_pro.js) used by the packages insdljs, -longdesc aeb-pro, thorshammer, and docassembly. Previously these JS -longdesc files where distributed with the individual packages, now they -longdesc are distributed by this package and must be installed according -longdesc to the instructions in the docs folder. docfiles size=223 - texmf-dist/doc/latex/acrotex-js/README.md details="Readme" + texmf-dist/doc/latex/acrotex-js/README.md texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.pdf texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.tex - texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf details="Package documentation" + texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf texmf-dist/doc/latex/acrotex-js/install_jsfiles.pdf texmf-dist/doc/latex/acrotex-js/install_jsfiles.tex texmf-dist/doc/latex/acrotex-js/js-files/aeb-reader.js @@ -325,9 +318,6 @@ srcfiles size=3 texmf-dist/source/latex/acrotex-js/acrotex-js.ins runfiles size=1 texmf-dist/tex/latex/acrotex-js/acrotex-js.sty -catalogue-ctan /macros/latex/contrib/acrotex-js -catalogue-license lppl -catalogue-topics pdf-feat acrobat name adobecaslon category Package @@ -1230,12 +1220,12 @@ shortdesc universal-darwin files of cjk-gs-integrate-macos binfiles arch=universal-darwin size=1 bin/universal-darwin/cjk-gs-integrate-macos -name cjk-gs-integrate-macos.win32 +name cjk-gs-integrate-macos.windows category Package -revision 95 -shortdesc win32 files of cjk-gs-integrate-macos -binfiles arch=win32 size=1 - bin/win32/cjk-gs-integrate-macos.exe +revision 371 +shortdesc windows files of cjk-gs-integrate-macos +binfiles arch=windows size=1 + bin/windows/cjk-gs-integrate-macos.exe name cjk-gs-integrate-macos.x86_64-cygwin category Package @@ -1433,7 +1423,7 @@ catalogue-version 0.6 name collection-contrib category Collection -revision 344 +revision 366 shortdesc tlcontrib packages longdesc collections of all packages in contrib.texlive.info depend acmtrans @@ -1484,7 +1474,6 @@ depend hiraprop depend icon-appr depend imprintmtshadow depend japanese-otf-nonfree -depend japanese-otf-uptex-nonfree depend jj-game depend joy-of-tex depend lettergothic @@ -1497,6 +1486,7 @@ depend lucidabr depend lucold depend luxi depend mathstone +depend mathtime-ltx depend mkstmpdad depend notocjksc depend notocondensed @@ -1511,6 +1501,7 @@ depend rangen depend renditions depend richtext depend rmannot +depend siam depend spark-otf-fonts depend thorshammer depend thsmc @@ -1767,16 +1758,9 @@ catalogue-topics caption adobe-distiller name docassembly category Package revision 329 -shortdesc Use the Acrobat JavaScript API -longdesc This package defines the docassembly environment in which -longdesc JavaScript code can be written to execute once and only once -longdesc the newly created PDF in the Acrobat application. The package -longdesc also defines a series of helper commands to execute security -longdesc restricted JavaScript methods. The package depends on -longdesc acrotex-js. docfiles size=587 - texmf-dist/doc/latex/docassembly/README.md details="Readme" - texmf-dist/doc/latex/docassembly/docassembly.pdf details="Package documentation" + texmf-dist/doc/latex/docassembly/README.md + texmf-dist/doc/latex/docassembly/docassembly.pdf texmf-dist/doc/latex/docassembly/examples/attach-files.tex texmf-dist/doc/latex/docassembly/examples/certifyinvisible.pdf texmf-dist/doc/latex/docassembly/examples/certifyinvisible.tex @@ -1807,9 +1791,6 @@ srcfiles size=7 texmf-dist/source/latex/docassembly/docassembly.ins runfiles size=2 texmf-dist/tex/latex/docassembly/docassembly.sty -catalogue-ctan /macros/latex/contrib/docassembly -catalogue-license lppl1.2 -catalogue-topics pdf-feat name dps category Package @@ -2301,13 +2282,10 @@ catalogue-version 0.6 name fontsetup-nonfree category Package -revision 317 -shortdesc A front-end to fontspec, for selected non-free fonts -longdesc This package accompanies fontsetup and includes support for -longdesc nonfree fonts. -docfiles size=155 - texmf-dist/doc/latex/fontsetup-nonfree/README details="Readme" - texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf details="Package documentation" +revision 378 +docfiles size=152 + texmf-dist/doc/latex/fontsetup-nonfree/README + texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.pdf texmf-dist/doc/latex/fontsetup-nonfree/fontsetup-nonfree-doc.tex texmf-dist/doc/latex/fontsetup-nonfree/fspsample-cambria.pdf texmf-dist/doc/latex/fontsetup-nonfree/fspsample-lucida.pdf @@ -2318,15 +2296,11 @@ docfiles size=155 texmf-dist/doc/latex/fontsetup-nonfree/system-install-fonts/fsplpscel.otf texmf-dist/doc/latex/fontsetup-nonfree/system-install-fonts/fspmnscel.otf runfiles size=5 - texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.sty - texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.sty - texmf-dist/tex/latex/fontsetup-nonfree/fspminion.sty - texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.sty - texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.sty -catalogue-ctan /macros/unicodetex/latex/fontsetup-nonfree -catalogue-license gpl3 -catalogue-topics font-sel font-supp xetex luatex maths -catalogue-version 1.02 + texmf-dist/tex/latex/fontsetup-nonfree/fspcambria.tex + texmf-dist/tex/latex/fontsetup-nonfree/fsplucidaot.tex + texmf-dist/tex/latex/fontsetup-nonfree/fspminion.tex + texmf-dist/tex/latex/fontsetup-nonfree/fspmsgaramondot.tex + texmf-dist/tex/latex/fontsetup-nonfree/fsppalatinoot.tex name futurans category Package @@ -4127,13 +4101,13 @@ binfiles arch=universal-darwin size=2 bin/universal-darwin/getnonfreefonts bin/universal-darwin/getnonfreefonts-sys -name getnonfreefonts.win32 +name getnonfreefonts.windows category Package -revision 3 -shortdesc win32 files of getnonfreefonts -binfiles arch=win32 size=2 - bin/win32/getnonfreefonts-sys.exe - bin/win32/getnonfreefonts.exe +revision 371 +shortdesc windows files of getnonfreefonts +binfiles arch=windows size=2 + bin/windows/getnonfreefonts-sys.exe + bin/windows/getnonfreefonts.exe name getnonfreefonts.x86_64-cygwin category Package @@ -4411,10 +4385,11 @@ catalogue-version 1.0 name japanese-otf-nonfree category Package -revision 292 -docfiles size=1 +revision 377 +docfiles size=2 + texmf-dist/doc/fonts/japanese-otf-nonfree/COPYRIGHT texmf-dist/doc/fonts/japanese-otf-nonfree/README -runfiles size=400 +runfiles size=373 texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-h.ofm texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w3-v.ofm texmf-dist/fonts/ofm/public/japanese-otf-nonfree/hirakaku-w6-h.ofm @@ -4445,6 +4420,16 @@ runfiles size=400 texmf-dist/fonts/tfm/public/japanese-otf-nonfree/phiraminw3-v.tfm texmf-dist/fonts/tfm/public/japanese-otf-nonfree/phiraminw6-h.tfm texmf-dist/fonts/tfm/public/japanese-otf-nonfree/phiraminw6-v.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-h.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw3-v.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-h.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphirakakuw6-v.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-h.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiramaruw4-v.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-h.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw3-v.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-h.tfm + texmf-dist/fonts/tfm/public/japanese-otf-nonfree/upphiraminw6-v.tfm texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-h.vf texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw3-v.vf texmf-dist/fonts/vf/public/japanese-otf-nonfree/phirakakuw6-h.vf @@ -4455,33 +4440,16 @@ runfiles size=400 texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw3-v.vf texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-h.vf texmf-dist/fonts/vf/public/japanese-otf-nonfree/phiraminw6-v.vf - -name japanese-otf-uptex-nonfree -category Package -revision 292 -docfiles size=1 - texmf-dist/doc/fonts/japanese-otf-uptex-nonfree/README -runfiles size=33 - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-h.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw3-v.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-h.tfm - texmf-dist/fonts/tfm/public/japanese-otf-uptex-nonfree/upphiraminw6-v.tfm - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-h.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw3-v.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-h.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphirakakuw6-v.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-h.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiramaruw4-v.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-h.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw3-v.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-h.vf - texmf-dist/fonts/vf/public/japanese-otf-uptex-nonfree/upphiraminw6-v.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-h.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw3-v.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-h.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphirakakuw6-v.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-h.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiramaruw4-v.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-h.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw3-v.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-h.vf + texmf-dist/fonts/vf/public/japanese-otf-nonfree/upphiraminw6-v.vf name jj-game category Package @@ -4894,19 +4862,19 @@ runfiles size=3 catalogue-ctan /macros/latex/contrib/ltx4yt catalogue-license lppl catalogue-topics multimedia pdf-feat +catalogue-version 0.7 name lucida-otf category Package -revision 101 +revision 373 shortdesc Support for the Lucida Bright fonts (OpenType) longdesc This package supports the non-free fonts from Bigelow & Holmes longdesc which are available from the TUG office for a special price for -longdesc members of any TeX user group. See https://tug.org/lucida -docfiles size=62 +longdesc members of any TeX user group. See http://tug.org/lucida +docfiles size=60 texmf-dist/doc/latex/lucida-otf/Changes texmf-dist/doc/latex/lucida-otf/README.md details="Readme" texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.bib - texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.fonts texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.pdf details="Package documentation" texmf-dist/doc/latex/lucida-otf/lucida-otf-doc.tex runfiles size=20 @@ -4960,7 +4928,7 @@ runfiles size=48 texmf-dist/tex/latex/lucidabr/omxhlcv.fd catalogue-alias psnfssx-luc catalogue-also lucida -catalogue-contact-home https://tug.org/lucida/ +catalogue-contact-home http://tug.org/lucida/ catalogue-ctan /macros/latex/contrib/psnfssx/lucidabr catalogue-license lppl1.3 catalogue-topics font-supp font-use @@ -5252,6 +5220,32 @@ catalogue-license gpl3 catalogue-topics font-supp-maths font-absent catalogue-version 2.0 +name mathtime-ltx +category Package +revision 362 +shortdesc LaTeX macros for using MathTime and MathTime Plus +docfiles size=1 + texmf-dist/doc/latex/mathtime-ltx/mathtime.txt details="Package outline" +srcfiles size=15 + texmf-dist/source/latex/mathtime-ltx/mathtime.dtx + texmf-dist/source/latex/mathtime-ltx/mathtime.ins + texmf-dist/source/latex/mathtime-ltx/mtfonts.fdd +runfiles size=14 + texmf-dist/fonts/enc/dvips/mathtime-ltx/mh2scr.enc + texmf-dist/tex/latex/mathtime-ltx/mathpi.sty + texmf-dist/tex/latex/mathtime-ltx/mathtime.sty + texmf-dist/tex/latex/mathtime-ltx/my1mtt.fd + texmf-dist/tex/latex/mathtime-ltx/my2mtt.fd + texmf-dist/tex/latex/mathtime-ltx/my3mtt.fd + texmf-dist/tex/latex/mathtime-ltx/omslby.fd + texmf-dist/tex/latex/mathtime-ltx/umh2.fd + texmf-dist/tex/latex/mathtime-ltx/umh2scr.fd + texmf-dist/tex/latex/mathtime-ltx/umh6.fd + texmf-dist/tex/latex/mathtime-ltx/umtms.fd +catalogue-ctan /macros/latex/contrib/psnfssx/mathtime +catalogue-license lppl +catalogue-topics font-supp-maths + name mkstmpdad category Package revision 130 @@ -5313,17 +5307,12 @@ catalogue-version 1.004 name notocondensed category Package revision 349 -shortdesc Support for the condensed variants of the Noto fonts -longdesc This package provides pdfLaTeX, XeLaTeX and LuaLaTeX support -longdesc for the condensed variants of the NotoSerif, NotoSans and -longdesc NotoSansMono families of fonts, designed by Steve Matteson for -longdesc Google. depend noto execute addMap notocondensed.map docfiles size=90 texmf-dist/doc/fonts/notocondensed/LICENSE_OFL.txt - texmf-dist/doc/fonts/notocondensed/README details="Readme" - texmf-dist/doc/fonts/notocondensed/notocondensed-samples.pdf details="Font samples" + texmf-dist/doc/fonts/notocondensed/README + texmf-dist/doc/fonts/notocondensed/notocondensed-samples.pdf texmf-dist/doc/fonts/notocondensed/notocondensed-samples.tex runfiles size=64926 texmf-dist/fonts/map/dvips/notocondensed/notocondensed.map @@ -21880,10 +21869,6 @@ runfiles size=64926 texmf-dist/fonts/vf/google/notocondensed/NotoSerif-SemiCondensedThinItalic-tosf-ts1.vf texmf-dist/tex/latex/notocondensed/notocondensed-mono.sty texmf-dist/tex/latex/notocondensed/notocondensed.sty -catalogue-contact-home https://www.google.com/get/noto/ -catalogue-ctan /fonts/notocondensed -catalogue-license ofl lppl -catalogue-topics font font-body font-proportional font-mono font-multilingual font-greek font-sans font-serif font-ttf font-type1 font-supp font-t1enc name opacity-pro category Package @@ -21966,6 +21951,41 @@ catalogue-license other-free catalogue-topics font-supp catalogue-version 1.0a +name pdftex-dev +category TLCore +revision 354 +depend atbegshi +depend atveryend +depend babel +depend cm +depend dehyph +depend everyshi +depend firstaid +depend hyph-utf8 +depend hyphen-base +depend kpathsea +depend l3backend +depend l3kernel +depend l3packages +depend latex +depend latex-fonts +depend latexconfig +depend pdftex +depend pdftex-dev.ARCH +depend tex-ini-files +depend unicode-data +execute AddFormat name=devlatex engine=pdftex-dev patterns=language.dat options="-translate-file=cp227.tcx *latex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig +execute AddFormat name=devpdflatex engine=pdftex-dev patterns=language.dat options="-translate-file=cp227.tcx *pdflatex.ini" fmttriggers=atbegshi,atveryend,babel,cm,everyshi,firstaid,hyphen-base,l3backend,l3kernel,l3packages,latex,latex-fonts,tex-ini-files,unicode-data,latex,dehyph,hyph-utf8,latexconfig + +name pdftex-dev.x86_64-linux +category TLCore +revision 354 +shortdesc x86_64-linux files of pdftex-dev +binfiles arch=x86_64-linux size=657 + bin/x86_64-linux/devlatex + bin/x86_64-linux/devpdflatex + bin/x86_64-linux/pdftex-dev + name pmdb category Package revision 325 @@ -21986,7 +22006,7 @@ longdesc content is loaded into the default application, possibly a longdesc LaTeX editor. For the Ctrl+Click feature to work, the file longdesc aeb-reader.js needs to be installed. As the filename suggests, longdesc this file will work for Adobe Acrobat Reader (DC), as well as -longdesc for the magnificent Adobe Acrobat itself. +longdesc for Adobe Acrobat itself. docfiles size=418 texmf-dist/doc/latex/pmdb/README.md details="Readme" texmf-dist/doc/latex/pmdb/examples/chapters/doc1.tex @@ -22288,9 +22308,47 @@ runfiles size=19 texmf-dist/tex/latex/rmannot/rmannot.sty catalogue-contact-home http://www.math.uakron.edu/~dpstory/rmannot.html catalogue-ctan /macros/latex/contrib/rmannot -catalogue-license lppl +catalogue-license lppl1 catalogue-topics pdf-feat pdf-forms adobe-distiller +name siam +category Package +revision 365 +shortdesc Styles for SIAM publications +longdesc Packages for plain TeX and both LaTeX and old LaTeX 2.09, with +longdesc instructions for submissions. The bundle includes usage +longdesc templates for all three packages. +docfiles size=136 + texmf-dist/doc/latex/siam/README details="Package README" + texmf-dist/doc/latex/siam/ltexconf.all + texmf-dist/doc/latex/siam/ltexnec.all + texmf-dist/doc/latex/siam/ltexproc.all + texmf-dist/doc/latex/siam/makeindx/makeidx.doc + texmf-dist/doc/latex/siam/makeindx/makeindx.tex + texmf-dist/doc/latex/siam/proc209.all + texmf-dist/doc/latex/siam/proc209.tex + texmf-dist/doc/latex/siam/proc2e.all + texmf-dist/doc/latex/siam/proc2e.tex + texmf-dist/doc/latex/siam/ptexconf.all + texmf-dist/doc/latex/siam/ptexnec.all + texmf-dist/doc/latex/siam/ptexproc.all + texmf-dist/doc/latex/siam/ptexproc.tex + texmf-dist/doc/latex/siam/siamatex.tar + texmf-dist/doc/latex/siam/siamltex.zip + texmf-dist/doc/latex/siam/siamptex.tar + texmf-dist/doc/latex/siam/soda209.all + texmf-dist/doc/latex/siam/soda2e.all + texmf-dist/doc/latex/siam/sodaptex.all +runfiles size=14 + texmf-dist/bibtex/bst/siam/siamproc.bst + texmf-dist/tex/latex/siam/proc209.sty + texmf-dist/tex/latex/siam/proc2e.sty + texmf-dist/tex/latex/siam/ptexproc.sty +catalogue-ctan /macros/latex/contrib/siam +catalogue-license nosell +catalogue-topics journalpub +catalogue-version 1.1 + name spark-otf-fonts category Package revision 71 diff --git a/tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc b/tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc index c2e084b3..df5500ba 100644 --- a/tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc +++ b/tlpkg/tlpsrc/00texlive.autopatterns.tlpsrc @@ -47,7 +47,7 @@ tlpsetvar global_no_luajit_platforms x86_64-solaris # the patterns, in preparation for supporting w64 in addition to w32, # and perhaps others in the future. The name ${global_wndws} was just # too long, so there is a super-special case in the code. -tlpsetvar wndws win32 +#tlpsetvar wndws windows # It would be ideal to be able to specify the non-jit platforms here, # but it's not crucial, so we haven't implemented ${global_} expansion diff --git a/tlpkg/tlpsrc/00texlive.config.tlpsrc b/tlpkg/tlpsrc/00texlive.config.tlpsrc index 65ea92a7..4b4c8b30 100644 --- a/tlpkg/tlpsrc/00texlive.config.tlpsrc +++ b/tlpkg/tlpsrc/00texlive.config.tlpsrc @@ -1,4 +1,4 @@ category TLCore depend container_format/xz depend release/2100-nonfree -depend minrelease/2016 +depend minrelease/2023 diff --git a/tlpkg/tlpsrc/collection-contrib.tlpsrc b/tlpkg/tlpsrc/collection-contrib.tlpsrc index ce59f986..750851d1 100644 --- a/tlpkg/tlpsrc/collection-contrib.tlpsrc +++ b/tlpkg/tlpsrc/collection-contrib.tlpsrc @@ -49,7 +49,6 @@ depend hiraprop depend icon-appr depend imprintmtshadow depend japanese-otf-nonfree -depend japanese-otf-uptex-nonfree depend jj-game depend joy-of-tex depend lettergothic @@ -62,6 +61,7 @@ depend lucida-otf depend lucold depend luxi depend mathstone +depend mathtime-ltx depend mkstmpdad depend notocjksc depend notocondensed @@ -76,6 +76,7 @@ depend rangen depend renditions depend richtext depend rmannot +depend siam depend spark-otf-fonts depend thorshammer depend thsmc diff --git a/tlpkg/tlpsrc/japanese-otf-uptex-nonfree.tlpsrc b/tlpkg/tlpsrc/mathtime-ltx.tlpsrc index e69de29b..e69de29b 100644 --- a/tlpkg/tlpsrc/japanese-otf-uptex-nonfree.tlpsrc +++ b/tlpkg/tlpsrc/mathtime-ltx.tlpsrc diff --git a/tlpkg/tlpsrc/siam.tlpsrc b/tlpkg/tlpsrc/siam.tlpsrc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tlpkg/tlpsrc/siam.tlpsrc |