From d4423673cba877cef7be7fad4e807b773f97ace0 Mon Sep 17 00:00:00 2001 From: Amir Pourmand Date: Mon, 17 Jan 2022 11:47:49 +0330 Subject: [PATCH] init --- .gitignore | 292 ++++++++++++++ MyTemplate.sty | 51 +++ endnotes.sty | 325 +++++++++++++++ images/rcnn.png | Bin 0 -> 105321 bytes multirow.sty | 159 ++++++++ ref.bib | 160 ++++++++ seminar.tex | 194 +++++++++ tables/datasets.tex | 24 ++ title.tex | 42 ++ toi.tex | 3 + unsrtabbrv.bst | 959 ++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 2209 insertions(+) create mode 100644 .gitignore create mode 100644 MyTemplate.sty create mode 100644 endnotes.sty create mode 100644 images/rcnn.png create mode 100644 multirow.sty create mode 100755 ref.bib create mode 100644 seminar.tex create mode 100644 tables/datasets.tex create mode 100644 title.tex create mode 100644 toi.tex create mode 100755 unsrtabbrv.bst diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..558d2d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,292 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib +thesis.mtc +thesis.pdf +Proposal/TargetBiopsy_Proposal.pdf +*.pdf diff --git a/MyTemplate.sty b/MyTemplate.sty new file mode 100644 index 0000000..ee87c44 --- /dev/null +++ b/MyTemplate.sty @@ -0,0 +1,51 @@ +% This Template Designed By Nima Pourdamghani +\ProvidesPackage{MyTemplate} + + +%Required Packages +%======================================================= +\RequirePackage{hyperref} +\usepackage{fancybox} +\usepackage{graphicx} +\usepackage{subfigure} +\usepackage{endnotes} +\usepackage[small,it]{caption} +\usepackage[font=small,format=plain,labelfont=bf,textfont=it]{caption} %Image captions reformatt +\usepackage[bottom=29mm,top=29mm,left=19mm,right=19mm]{geometry} +\usepackage{multicol} +\usepackage{xepersian} +\graphicspath{{images/}} + +%======================================================= +\addtolength{\topmargin}{-0.8cm} +\addtolength{\textheight}{1.6cm} +\addtolength{\oddsidemargin}{0cm} +\addtolength{\evensidemargin}{-0.5cm} +\addtolength{\textwidth}{0.5cm} + +%Paragraph setting +%======================================================= +\linespread{1.3} %line space +\setlength{\parindent}{0pt} %The indent of the paragraph first line +\setlength{\parskip}{5pt} %Befor paragraph space + +%General Setting +%======================================================= +\hypersetup{colorlinks=true,linkcolor=blue,citecolor=green,filecolor=magneta,urlcolor=cyan} +\settextfont[Scale=1]{Nazli} +\setlatintextfont[Scale=1]{Times New Roman} +\setdigitfont[Scale=1]{Nazli} + +% numbering style definition +\renewcommand{\thesection}{\arabic{section}} +\renewcommand{\thesubsection}{\arabic{subsection}.\arabic{section}} +\renewcommand{\thetable}{\arabic{table}.\arabic{section}} +\renewcommand{\thefigure}{\arabic{figure}.\arabic{section}} + +% Commands and definitions +%======================================================= + + + +\let\LTRfootnote=\endnote +\renewcommand{\notesname}{\vspace{-16pt}} diff --git a/endnotes.sty b/endnotes.sty new file mode 100644 index 0000000..4d28e59 --- /dev/null +++ b/endnotes.sty @@ -0,0 +1,325 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Save file as: ENDNOTES.STY +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% **************************************** +% * ENDNOTES * +% **************************************** +% +% Date of this version: 24 September 1991. +% +% Based on the FOOTNOTES section of +% LATEX.TEX (VERSION 2.09 - RELEASE OF 19 April 1986), with +% "footnote" changed to "endnote" and "fn" changed to "en" (where +% appropriate), with all the minipage stuff pulled out, and with +% some small changes for the different operation of endnotes. +% +% Uses an extra external file, with .ENT extension, to hold the +% text of the endnotes. This may be deleted after the run; a new +% version is generated each time. +% +% This code does not obey \nofiles. Perhaps it should. +% +% John Lavagnino (lav@brandeis.bitnet), 9/23/88 +% Department of English and American Literature, +% Brandeis University +% +% To turn all the footnotes in your documents into endnotes, say +% +% \let\footnote=\endnote +% +% in your preamble, and then add something like +% +% \newpage +% \begingroup +% \parindent 0pt +% \parskip 2ex +% \def\enotesize{\normalsize} +% \theendnotes +% \endgroup +% +% as the last thing in your document. +% +% **************************************** +% * CHANGE LOG * +% **************************************** +% +% JL Modified to include \addtoendnotes. JL, 10/22/89. +% +% JK Modification by J"org Knappen 25. 2. 1991: +% JK +% JK Introduced \notesname in the spirit of international \LaTeX. +% JK \notesname is set per default to be {Notes}, but can easily +% JK be redifined, e.g. for german language +% JK \renewcommand{\notesname}{Anmerkungen} +% +% DW Modification by Dominik Wujastyk, London, 19 September 1991: +% DW +% DW Moved the line +% DW \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark} +% DW out of the definition of \@endnotetext and into the definition +% DW of \@doanenote so that \label and \ref commands work correctly in +% DW endnotes. Otherwise, the \label just pointed to the last section +% DW heading (or whatever) preceding the \theendnotes command. +% +% JL Revised documentation and macros. 24 Sept 1991. +% +% **************************************** +% * ENDNOTE COMMANDS * +% **************************************** +% +% +% \endnote{NOTE} : User command to insert a endnote. +% +% \endnote[NUM]{NOTE} : User command to insert a endnote numbered +% NUM, where NUM is a number -- 1, 2, +% etc. For example, if endnotes are numbered +% *, **, etc. within pages, then \endnote[2]{...} +% produces endnote '**'. This command does not +% step the endnote counter. +% +% \endnotemark[NUM] : Command to produce just the endnote mark in +% the text, but no endnote. With no argument, +% it steps the endnote counter before generating +% the mark. +% +% \endnotetext[NUM]{TEXT} : Command to produce the endnote but no +% mark. \endnote is equivalent to +% \endnotemark \endnotetext . +% +% \addtoendnotes{TEXT} : Command to add text or commands to current +% endnotes file: for inserting headings, +% pagebreaks, and the like into endnotes +% sections. TEXT a moving argument: +% \protect required for fragile commands. +% +% **************************************** +% * ENDNOTE USER COMMANDS * +% **************************************** +% +% Endnotes use the following parameters, similar to those relating +% to footnotes: +% +% \enotesize : Size-changing command for endnotes. +% +% \theendnote : In usual LaTeX style, produces the endnote number. +% +% \@theenmark : Holds the current endnote's mark--e.g., \dag or '1' or 'a'. +% +% \@makeenmark : A macro to generate the endnote marker from \@theenmark +% The default definition is \hbox{$^\@theenmark$}. +% +% \@makeentext{NOTE} : +% Must produce the actual endnote, using \@theenmark as the mark +% of the endnote and NOTE as the text. It is called when effectively +% inside a \parbox, with \hsize = \columnwidth. For example, it might +% be as simple as +% $^{\@theenmark}$ NOTE +% +% +% **************************************** +% * ENDNOTE PSEUDOCODE * +% **************************************** +% +% \endnote{NOTE} == +% BEGIN +% \stepcounter{endnote} +% \@theenmark :=G eval (\theendnote) +% \@endnotemark +% \@endnotetext{NOTE} +% END +% +% \endnote[NUM]{NOTE} == +% BEGIN +% begingroup +% counter endnote :=L NUM +% \@theenmark :=G eval (\theendnote) +% endgroup +% \@endnotemark +% \@endnotetext{NOTE} +% END +% +% \@endnotetext{NOTE} == +% BEGIN +% write to \@enotes file: "\@doanenote{ENDNOTE MARK}" +% begingroup +% \next := NOTE +% set \newlinechar for \write to \space +% write to \@enotes file: \meaning\next +% (that is, "macro:->NOTE) +% endgroup +% END +% +% \addtoendnotes{TEXT} == +% BEGIN +% open endnotes file if not already open +% begingroup +% let \protect to \string +% set \newlinechar for \write to \space +% write TEXT to \@enotes file +% endgroup +% END +% +% \endnotemark == +% BEGIN \stepcounter{endnote} +% \@theenmark :=G eval(\theendnote) +% \@endnotemark +% END +% +% \endnotemark[NUM] == +% BEGIN +% begingroup +% endnote counter :=L NUM +% \@theenmark :=G eval(\theendnote) +% endgroup +% \@endnotemark +% END +% +% \@endnotemark == +% BEGIN +% \leavevmode +% IF hmode THEN \@x@sf := \the\spacefactor FI +% \@makeenmark % put number in main text +% IF hmode THEN \spacefactor := \@x@sf FI +% END +% +% \endnotetext == +% BEGIN \@theenmark :=G eval (\theendnote) +% \@endnotetext +% END +% +% \endnotetext[NUM] == +% BEGIN begingroup counter endnote :=L NUM +% \@theenmark :=G eval (\theendnote) +% endgroup +% \@endnotetext +% END +% +% **************************************** +% * ENDNOTE MACROS * +% **************************************** +% + +\@definecounter{endnote} +\def\theendnote{\arabic{endnote}} + +% Default definition +\def\@makeenmark{\hbox{$^{\@theenmark}$}} + +\newdimen\endnotesep + +\def\endnote{\@ifnextchar[{\@xendnote}{\stepcounter + {endnote}\xdef\@theenmark{\theendnote}\@endnotemark\@endnotetext}} + +\def\@xendnote[#1]{\begingroup \c@endnote=#1\relax + \xdef\@theenmark{\theendnote}\endgroup + \@endnotemark\@endnotetext} + +% Here begins endnote code that's really different from the footnote +% code of LaTeX. + +\let\@doanenote=0 +\let\@endanenote=0 + +\newwrite\@enotes +\newif\if@enotesopen \global\@enotesopenfalse + +\def\@openenotes{\immediate\openout\@enotes=\jobname.ent\relax + \global\@enotesopentrue} + +% The stuff with \next and \meaning is a trick from the TeXbook, 382, +% there intended for setting verbatim text, but here used to avoid +% macro expansion when the footnote text is written. \next will have +% the entire text of the footnote as one long line, which might well +% overflow limits on output line length; the business with \newlinechar +% makes every space become a newline in the \@enotes file, so that all +% of the lines wind up being quite short. + +\long\def\@endnotetext#1{% + \if@enotesopen \else \@openenotes \fi + \immediate\write\@enotes{\@doanenote{\@theenmark}}% + \begingroup + \def\next{#1}% + \newlinechar='40 + \immediate\write\@enotes{\meaning\next}% + \endgroup + \immediate\write\@enotes{\@endanenote}} + +% \addtoendnotes works the way the other endnote macros probably should +% have, requiring the use of \protect for fragile commands. + +\long\def\addtoendnotes#1{% + \if@enotesopen \else \@openenotes \fi + \begingroup + \newlinechar='40 + \let\protect\string + \immediate\write\@enotes{#1}% + \endgroup} + +% End of unique endnote code + +\def\endnotemark{\@ifnextchar[{\@xendnotemark + }{\stepcounter{endnote}\xdef\@theenmark{\theendnote}\@endnotemark}} + +\def\@xendnotemark[#1]{\begingroup \c@endnote #1\relax + \xdef\@theenmark{\theendnote}\endgroup \@endnotemark} + +\def\@endnotemark{\leavevmode\ifhmode + \edef\@x@sf{\the\spacefactor}\fi \@makeenmark + \ifhmode\spacefactor\@x@sf\fi\relax} + +\def\endnotetext{\@ifnextchar + [{\@xendnotenext}{\xdef\@theenmark{\theendnote}\@endnotetext}} + +\def\@xendnotenext[#1]{\begingroup \c@endnote=#1\relax + \xdef\@theenmark{\theendnote}\endgroup \@endnotetext} + + +% \theendnotes actually prints out the endnotes. + +% The user may want separate endnotes for each chapter, or a big +% block of them at the end of the whole document. As it stands, +% either will work; you just say \theendnotes wherever you want the +% endnotes so far to be inserted. However, you must add +% \setcounter{endnote}{0} after that if you want subsequent endnotes +% to start numbering at 1 again. + +% \enoteformat is provided so user can specify some special formatting +% for the endnotes. It needs to set up the paragraph parameters, start +% the paragraph, and print the label. The \leavemode stuff is to make +% and undo a dummy paragraph, to get around the games \section* +% plays with paragraph indenting. + +\def\notesname{Notes}% <------ JK +\def\enoteheading{\section*{\notesname + \@mkboth{\uppercase{\notesname}}{\uppercase{\notesname}}}% + \leavevmode\par\vskip-\baselineskip} + +\def\enoteformat{\rightskip\z@ \leftskip\z@ \parindent=1.8em + \leavevmode\llap{\hbox{$^{\@theenmark}$}}} + +\def\enotesize{\footnotesize} + +% The definition of \ETC. is needed only for versions of TeX prior +% to 2.992. Those versions limited \meaning expansions to 1000 +% characters; in 2.992 and beyond there is no limit. At Brandeis the +% BIGLATEX program changed the code in the token_show procedure of +% TeX to eliminate this problem, but most ``big'' versions of TeX +% will not solve this problem. + +\def\theendnotes{\immediate\closeout\@enotes \global\@enotesopenfalse + \begingroup + \makeatletter + \def\@doanenote##1##2>{\def\@theenmark{##1}\par\begingroup + \edef\@currentlabel{\csname p@endnote\endcsname\@theenmark} %DW + \enoteformat} + \def\@endanenote{\par\endgroup}% + \def\ETC.{\errmessage{Some long endnotes will be truncated; % + use BIGLATEX to avoid this}% + \def\ETC.{\relax}} + \enoteheading + \enotesize + \@input{\jobname.ent}% + \endgroup} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/images/rcnn.png b/images/rcnn.png new file mode 100644 index 0000000000000000000000000000000000000000..fa313a474b01bd3689218f0755d53db5a82c0881 GIT binary patch literal 105321 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
?O;nCa{oQ#M{)L%Ip~ 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 literal 0 HcmV?d00001 diff --git a/multirow.sty b/multirow.sty new file mode 100644 index 0000000..2576eb9 --- /dev/null +++ b/multirow.sty @@ -0,0 +1,159 @@ +%% +%% multirow.sty V1.6 version (5-May-2004) +%% +%% Author: Jerry Leichter +%% Piet van Oostrum +%% +%% This file 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 or, at your option, any later version. +%% +%% V1.0 was distributed anonymously, based on a Usenet posting that was +%% not intended for stand-alone use. +%% V1.1 was modified by Piet van Oostrum to allow it to +%% work without bigstrut.sty. +%% V1.2 was modified by Jerry Leichter for the same goal, but using a +%% different approach which will work properly in conjunction with +%% bigstrut.sty. +%% V1.2a was modified by Piet van Oostrum to use \vskip +%% instead of \raise in positioning, avoiding making rows too high +%% when the adjustment is large. +%% V1.3 was modified by Piet van Oostrum to work properly in a p{} column +%% (\leavevmode added) +%% V1.4 was modified by Piet van Oostrum to check for the special case that +%% the width is given as an *. In this case the natural +%% width of the text argument will be used and the argument +%% is processed in LR-mode. +%% V1.5 was modified by Piet van Oostrum: Added a % after \hbox{#5}\vfill}. +%% Added \struts around #5 for better vertical positioning. +%% Additional coding for negative value of nrows. +%% V1.6 was modified by Piet van Oostrum: Replace a space by \relax after +%% \advance\@tempdima#4. +%% +% Make an entry that will span multiple rows of a table. +% +% \multirow{nrows}[bigstruts]{width}[fixup]{text} +% +% nrows is the number of rows to span. It's up to you to leave the other +% rows empty, or the stuff created by \multirow will over-write it. +% With a positive value of nrows the spanned colomns are this row and +% (nrows-1) rows below it. With a negative value of nrows they are +% this row and (1-nrows) above it. +% +% bigstruts is mainly used if you've used bigstrut.sty. In that case it +% is the total number of uses of \bigstrut within the rows being +% spanned. Count 2 uses for each \bigstrut, 1 for each \bigstrut[x] +% where x is either t or b. The default is 0. +% width is the width to which the text is to be set, or * to indicate that +% the text argument's natural width is to be used. +% +% text is the actual text. If the width was set explicitly, the text will +% be set in a parbox of that width; you can use \\ to force linebreaks +% where you like. +% +% If the width was given as * the text will be set in LR mode. If you +% want a multiline entry in this case you should use a tabular or array +% in the text parameter. +% +% The text is centered vertically within the range spanned by nrows. +% +% fixup is a length used for fine tuning: The text will be raised (or +% lowered, if fixup is negative) by that length above (below) wherever +% it would otherwise have gone. +% +% For example (using both multirow and bigstrut) +% +% \newcommand{\minitab}[2][l]{\begin{tabular}{#1}#2\end{tabular}} +% \begin{tabular}{|c|c|} +% \hline +% \multirow{4}{1in}{Common g text} & Column g2a\\ +% & Column g2b \\ +% & Column g2c \\ +% & Column g2d \\ +% \hline +% \multirow{3}[6]*{Common g text} & Column g2a\bigstrut\\\cline{2-2} +% & Column g2b \bigstrut\\\cline{2-2} +% & Column g2c \bigstrut\\ +% \hline +% \multirow{4}[8]{1in}{Common g text} & Column g2a\bigstrut\\\cline{2-2} +% & Column g2b \bigstrut\\\cline{2-2} +% & Column g2c \bigstrut\\\cline{2-2} +% & Column g2d \bigstrut\\ +% \hline +% \multirow{4}*{\minitab[c]{Common \\ g text}} & Column g2a\\ +% & Column g2b \\ +% & Column g2c \\ +% & Column g2d \\ +% \hline +% \end{tabular} +% +% If any of the spanned rows are unusually large, or if you're using +% bigstrut.sty and \bigstrut's are used assymetrically about the centerline of +% the spanned rows, the vertical centering may not come out right. Use the +% fixup argument in this case. +% +% Just before "text" is expanded, the \multirowsetup macro is expanded to +% set up any special environment. Initially, \multirowsetup contains just +% \raggedright. It can be redefined with \renewcommand. +% +% Bugs: It's just about impossible to deal correctly with descenders. The +% text will be set up centered, but it may then have a baseline that doesn't +% match the baseline of the stuff beside it, in particular if the stuff +% beside it has descenders and "text" does not. This may result in a small +% missalignment. About all that can be done is to do a final touchup on +% "text", using the fixup optional argument. (Hint: If you use a measure +% like .1ex, there's a reasonable chance that the fixup will still be correct +% if you change the point size.) +% +% \multirow is mainly designed for use with table, as opposed to array, +% environments. It will not work well in an array environment since the lines +% have an extra \jot of space between them which it won't account for. Fixing +% this is difficult in general, and doesn't seem worth it. The bigstruts +% argument can be used to provide a semi-automatic fix: First set +% \bigstrutjot to .5\jot. Then simply repeat nrows as the bigstruts argument. +% This will be close, but probably not exact; you can use the fixup argument +% to refine the result. (If you do this repeatedly, you'll probably want to +% wrap these steps up in a simple macro. Note that the modified \bigstrutjot +% value will not give reasonable results if you have bigstruts and use this +% argument for its intended purpose elsewhere. In that case, you might want +% to set it locally.) +% +% If you use \multirow with the colortbl package you have to take +% precautions if you want to color the column that has the \multirow in it. +% colortbl works by coloring each cell separately. So if you use \multirow +% with a positive nrows value, colortbl will first color the top cell, then +% \multirow will typeset nrows cells starting with this cell, and later +% colortbl will color the other cells, effectively hiding the text in that +% area. This can be solved by putting the \multirow is the last row with a +% negative nrows value. +% Example: +% +% \begin{tabular}{l>{\columncolor{yellow}}l} +% aaaa & \\ +% cccc & \\ +% dddd & \multirow{-3}*{bbbb}\\ +% \end{tabular} +% +\def\multirowsetup{\raggedright} +\def\multirow#1{\relax\@ifnextchar + [{\@multirow{#1}}{\@multirow{#1}[0]}} +\def\@multirow#1[#2]#3{\@ifnextchar [{\@xmultirow{#1}[#2]{#3}}% + {\@xmultirow{#1}[#2]{#3}[0pt]}} +\def\@xmultirow#1[#2]#3[#4]#5{\@tempcnta=#1% + \@tempdima\@tempcnta\ht\@arstrutbox + \advance\@tempdima\@tempcnta\dp\@arstrutbox + \ifnum\@tempcnta<0\@tempdima=-\@tempdima\fi + \advance\@tempdima#2\bigstrutjot + \if*#3\setbox0\vtop to \@tempdima{\vfill\multirowsetup + \hbox{\strut#5\strut}\vfill}% + \else + \setbox0\vtop to \@tempdima{\hsize#3\@parboxrestore + \vfill \multirowsetup \strut#5\strut\par\vfill}% + \fi + \ht0\z@\dp0\z@ + \ifnum\@tempcnta<0\advance\@tempdima-\dp\@arstrutbox + \else\@tempdima=\ht\@arstrutbox + \ifnum#2>0 \advance\@tempdima\bigstrutjot \fi + \fi + \advance\@tempdima#4\relax\leavevmode\vtop{\vskip-\@tempdima\box0\vss}} +\@ifundefined{bigstrutjot}{\newdimen\bigstrutjot \bigstrutjot\jot}{} diff --git a/ref.bib b/ref.bib new file mode 100755 index 0000000..ff7e488 --- /dev/null +++ b/ref.bib @@ -0,0 +1,160 @@ +% Encoding: UTF-8 + +@Article{pacal2021robust, + author = {Pacal, Ishak and Karaboga, Dervis}, + journal = {Computers in Biology and Medicine}, + title = {A Robust Real-Time Deep Learning Based Automatic Polyp Detection System}, + year = {2021}, + issn = {0010-4825}, + month = {jul}, + pages = {104519}, + volume = {134}, + doi = {10.1016/j.compbiomed.2021.104519}, + publisher = {Elsevier}, +} + +@Misc{cancer_keystatistics, + howpublished = {https://www.cancer.org/cancer/colon-rectal-cancer/about/key-statistics.html}, + note = {Accessed: 2021-08-10}, + title = {Key Statistics for Colorectal Cancer}, +} + +@Article{pacal2020comprehensive, + author = {Pacal, Ishak and Karaboga, Dervis and Basturk, Alper and Akay, Bahriye and Nalbantoglu, Ufuk}, + journal = {Computers in Biology and Medicine}, + title = {A comprehensive review of deep learning in colon cancer}, + year = {2020}, + month = {nov}, + pages = {104003}, + volume = {126}, + doi = {10.1016/j.compbiomed.2020.104003}, + publisher = {Elsevier}, +} + + +@Article{Jha_2021, + author = {Jha, Debesh and Ali, Sharib and Tomar, Nikhil Kumar and Johansen, Havard D. and Johansen, Dag and Rittscher, Jens and Riegler, Michael A. and Halvorsen, Pal}, + journal = {IEEE Access}, + title = {Real-Time Polyp Detection, Localization and Segmentation in Colonoscopy Using Deep Learning}, + year = {2021}, + issn = {2169-3536}, + pages = {40496–40510}, + volume = {9}, + doi = {10.1109/access.2021.3063716}, + publisher = {Institute of Electrical and Electronics Engineers (IEEE)}, + url = {http://dx.doi.org/10.1109/ACCESS.2021.3063716}, +} + +@Misc{zaidi2021survey, + author = {Syed Sahil Abbas Zaidi and Mohammad Samar Ansari and Asra Aslam and Nadia Kanwal and Mamoona Asghar and Brian Lee}, + title = {A Survey of Modern Deep Learning based Object Detection Models}, + year = {2021}, + archiveprefix = {arXiv}, + eprint = {2104.11892}, + primaryclass = {cs.CV}, +} + +@InProceedings{girshick2014rich, + author = {Girshick, Ross and Donahue, Jeff and Darrell, Trevor and Malik, Jitendra}, + booktitle = {Proceedings of the IEEE conference on computer vision and pattern recognition}, + title = {Rich feature hierarchies for accurate object detection and semantic segmentation}, + year = {2014}, + month = {jun}, + pages = {580--587}, + publisher = {{IEEE}}, + doi = {10.1109/cvpr.2014.81}, +} + +@Article{nogueira2021deep, + author = {Nogueira-Rodr{\'\i}guez, Alba and Dom{\'\i}nguez-Carbajales, Rub{\'e}n and L{\'o}pez-Fern{\'a}ndez, Hugo and Iglesias, {\'A}gueda and Cubiella, Joaqu{\'\i}n and Fdez-Riverola, Florentino and Reboiro-Jato, Miguel and Glez-Pe{\~n}a, Daniel}, + journal = {Neurocomputing}, + title = {Deep neural networks approaches for detecting and classifying colorectal polyps}, + year = {2021}, + month = {jan}, + pages = {721--734}, + volume = {423}, + doi = {10.1016/j.neucom.2020.02.123}, + publisher = {Elsevier}, +} + +@InProceedings{yolo2016, + author = {Redmon, Joseph and Divvala, Santosh and Girshick, Ross and Farhadi, Ali}, + booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + title = {You Only Look Once: Unified, Real-Time Object Detection}, + year = {2016}, + month = {June}, + publisher = {{IEEE}}, + doi = {10.1109/cvpr.2016.91}, +} + +@Misc{szegedy2014going, + author = {Christian Szegedy and Wei Liu and Yangqing Jia and Pierre Sermanet and Scott Reed and Dragomir Anguelov and Dumitru Erhan and Vincent Vanhoucke and Andrew Rabinovich}, + month = {jun}, + title = {Going Deeper with Convolutions}, + year = {2014}, + archiveprefix = {arXiv}, + booktitle = {2015 {IEEE} Conference on Computer Vision and Pattern Recognition ({CVPR})}, + doi = {10.1109/cvpr.2015.7298594}, + eprint = {1409.4842}, + primaryclass = {cs.CV}, + publisher = {{IEEE}}, +} + +@Article{ssd, + author = {Liu, Wei and Anguelov, Dragomir and Erhan, Dumitru and Szegedy, Christian and Reed, Scott and Fu, Cheng-Yang and Berg, Alexander C.}, + journal = {Lecture Notes in Computer Science}, + title = {SSD: Single Shot MultiBox Detector}, + year = {2016}, + issn = {1611-3349}, + pages = {21–37}, + booktitle = {Computer Vision {\textendash} {ECCV} 2016}, + doi = {10.1007/978-3-319-46448-0_2}, + isbn = {9783319464480}, + publisher = {Springer International Publishing}, + url = {http://dx.doi.org/10.1007/978-3-319-46448-0_2}, +} + +@Misc{redmon2016yolo9000, + author = {Joseph Redmon and Ali Farhadi}, + month = {jul}, + title = {YOLO9000: Better, Faster, Stronger}, + year = {2016}, + archiveprefix = {arXiv}, + booktitle = {2017 {IEEE} Conference on Computer Vision and Pattern Recognition ({CVPR})}, + doi = {10.1109/cvpr.2017.690}, + eprint = {1612.08242}, + primaryclass = {cs.CV}, + publisher = {{IEEE}}, +} + +@InProceedings{dpm, + author = {Felzenszwalb, Pedro and McAllester, David and Ramanan, Deva}, + booktitle = {2008 IEEE conference on computer vision and pattern recognition}, + title = {A discriminatively trained, multiscale, deformable part model}, + year = {2008}, + month = {jun}, + organization = {Ieee}, + pages = {1--8}, + publisher = {{IEEE}}, + doi = {10.1109/cvpr.2008.4587597}, +} + +@Misc{redmon2018yolov3, + author = {Joseph Redmon and Ali Farhadi}, + title = {YOLOv3: An Incremental Improvement}, + year = {2018}, + archiveprefix = {arXiv}, + eprint = {1804.02767}, + primaryclass = {cs.CV}, +} + +@Misc{bochkovskiy2020yolov4, + author = {Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao}, + title = {YOLOv4: Optimal Speed and Accuracy of Object Detection}, + year = {2020}, + archiveprefix = {arXiv}, + eprint = {2004.10934}, + primaryclass = {cs.CV}, +} + +@Comment{jabref-meta: databaseType:bibtex;} diff --git a/seminar.tex b/seminar.tex new file mode 100644 index 0000000..51b51a4 --- /dev/null +++ b/seminar.tex @@ -0,0 +1,194 @@ +\documentclass[11pt]{article} +\usepackage{makecell} +\usepackage{amsfonts} +\usepackage{amsmath} + +\usepackage{MyTemplate} + +\usepackage{endnotes} + +\let\footnote=\endnote + +\newcommand{\پاورقی}[1]{\footnote{\lr{#1}}} +\newcommand{\cols}[1]{ + \begin{tabular}{@{}c@{}} #1 \end{tabular} +} + + +\begin{document} + +\input{title} + + +{\bf {چکيده: }} +روش‌های تشخیص پولیپ به کمک کامپیوتر تأثیر زیادی در کم کردن نرخ عدم تشخیص + +{\bf { واژه‌های کلیدی: }} +تشخیص پولیپ، دسته‌بندی پولیپ، سرطان روده، کولونوسکوپی، تشخیص بی‌درنگ + +\setlength{\parindent}{0.25in} %The indent of the paragraph first line + +\section{مقدمه} +امروزه سرطان یکی از مهم‌ترین بیماری‌هایی است که سلامتی افراد را تحت تاثیر قرار داده است و همچنین نرخ مرگ و میر بالایی نیز دارد. سرطان‌ها بر اساس تومور بدخیم پدید می‌آیند. در تمام انواع سرطان، بعضی سلول‌ها تقسیم می‌شوند و در اطراف پخش می‌شوند +\cite{pacal2020comprehensive}. +سرطان روده سومین عامل مرگ و میر در جهان در بین مردان و دومین عامل مرگ در بین زنان است. +به طور کلی ریسک گرفتن سرطان روده برای مردان +$4.3$ \% +و برای زنان +$4.0$ \% +است +\cite{cancer_keystatistics}. + + + +\section{واژگان تخصصی تحقیق (اختیاری)} + +\paragraph{پولیپ (\lr{Polyp})} +به صورت رشد غیرطبیعی توده‌های خوش‌خیم در جدار اعضای بدن تعریف می‌شود؛ مانند پولیپ روده، معده، بینی و پولیپ رحم. +\textbf{پولیپ، سرطان نیست} +ولی سرطان می‌تواند منشا آن باشد. +پولیپ می‌تواند در هر جایی ظاهر شود ولی معمولا در ناحیه روده ظاهر می‌شوند +\cite{Jha_2021}. +%% Todo: انواع پولیپ +پولیپ به طور کلی در دو دسته نئوپلاستیک +\lr{(neoplastic)} +و غیر نئوپلاستیک +\lr{(non-neoplastic)} +دسته بندی می‌شود. پولیپ‌‌های غیرنئوپلاستیک معمولا سرطانی نیستند و خطری ندارند. این پولیپ‌ها به سه زیردسته هایپرپلاستیک +\lr{(hyper-plastic)} +، +التهابی +\lr{(inflammatory)} +، +همارتوماتوز +\lr{(hamartomatous)} +تقسیم بندی می‌شوند. در سوی دیگر پولیپ‌های نئوپلاستیک هستند که می‌توانند به پولیپ سرطانی تبدیل شوند. این پولیپ‌ها نیز به دو زیردسته +آدنوما +\lr{(adenomas)} +و +دندانه‌دار +\lr{(serrated)} +تقسیم‌بندی می‌شوند +\cite{Jha_2021}. + + +\paragraph{کولونوسکوپی + ( + \lr{Colonoscopy} + ) +} +آزمایشی است که برای تشخیص تغییرات یا موارد غیر عادی در روده بزرگ و رکتوم (راست روده) مورد استفاده قرار می گیرد. +در طول کولونوسکوپی یک لوله طولانی و انعطاف پذیر به نام کولونوسکوپ داخل رکتوم (راست روده) قرار داده می شود. یک دوربین ویدئویی کوچک در بالای لوله وجود دارد که به پزشک اجازه می دهد تا داخل کل روده بزرگ را به خوبی مشاهده کند. در طول کولونوسکوپی، اگر نیاز باشد، پولیپ یا سایر بافت های غیر طبیعی را می توان حذف کرد. + + + + +\section{ادبیات پژوهش} + + + +در مقالات اکثرا از روش‌های مبتنی بر CNN +استفاده شده که روش‌ حل ما نیز بر اساس همان است. شبکه‌های استفاده شده در مقالات +\lr{R-CNN} +، +\lr{Fast R-CNN} +، +\lr{Faster R-CNN} +و +\lr{YOLO} +بوده است. + + + + +به طور کلی روش‌های تشخیص شی دو دسته هستند +\cite{zaidi2021survey}: + +\begin{itemize} + \item + روش های مبتنی بر پردازش تصویر که ویژگی‌ها را بصورت دستی استخراج می‌کنند ولی نیاز به داده برچسب‌دار ندارند. عیب اصلی این روش‌ها این است که در مواجهه با سناریوهای پیچیده‌تر مثل استتار + \پاورقی{occlusion} + کارا نیستند. + \item + روش‌های مبتنی بر یادگیری عمیق که + مبتنی بر یادگیری تقویتی هستند و کارایی آن به قدرت GPU که روی آن پردازش می‌شود نیز بستگی دارد. + این روش‌ها در مواجهه با سناریوهای پیچیده‌تر مثل استتار + و یا نوردهی متفاوت + \پاورقی{illumination} + کاراتر هستند ولی نیاز به داده برچسب‌دهی شده زیادی دارند. +\end{itemize} + +روش‌های مبتنی بر یادگیری عمیق نیز به دو دسته کلی تک مرحله‌ای +\پاورقی{single-stage} +و دومرحله‌ای +\پاورقی{multi-stage} +تقسیم بندی می‌شوند که در ادامه آن‌ها را به تفضیل بررسی خواهیم کرد. +پیش از این توجه داریم که +با توجه به این که روش‌های مبتنی بر پردازش تصویر نمی‌توانند ساختارهای پیچیده‌تر را یاد بگیرند و عموما دقت کمی دارند در این تحقیق بر روی روش‌های مبتنی بر یادگیری عمیق متمرکز خواهیم شد. + + +\subsection{روش های دومرحله‌ای} + +\subsubsection{R-CNN} + +مدل +\lr{R-CNN} +\cite{girshick2014rich} +در سال ۲۰۱۴ +معرفی شد که برای هر تصویر سه مرحله را انجام می‌هد. در این الگوریتم (همان طور که در شکل +\ref{fig:rcnn} +نشان داده شده است +)، ابتدا با استفاده از یک الگوریتم پیشنهاد ناحیه +\lr{(region proposal)} +به نام جستجوی انتخابی +\lr{(selective search)} +تعدادی (تقریبا ۲۰۰۰ تا) ناحیه استخراج می‌شود، سپس نواحی استخراجی از یک شبکه CNN عبور می‌کند و با استفاده از SVM +\پاورقی { + \lr{Support Vector Machine} +} +دسته‌بندی انجام می‌شود. + +اهمیت این شبکه از این لحاظ است که از مدل‌های پیشین خود به طرز شگفت آوری بهتر عمل کرد و mAP را ۳۰ درصد افزایش داد. معایب این روش این است که آموزش شبکه بصورت انتها به انتها انجام نمیشود و یک فرآیند چندمرحله‌ای داریم که باعث کند شدن سرعت شده است. ثانیا آموزش این مدل هم از نظر زمانی و هم از نظر فضای دیسک بسیار هزینه بر است زیرا ویژگی‌ها به ازای هر تصویر استحراج می‌شوند و بر روی دیسک نوشته می‌شوند که باعث اشغال کردن مقدار زیادی فضا می‌شود (در حد چند صد گیگابایت. + +% TODO: \usepackage{graphicx} required +\begin{figure} + \centering + \includegraphics[width=0.7\linewidth]{images/rcnn} + \caption[خلاصه مراحل تشخیص در R-CNN]{} + \label{fig:rcnn} +\end{figure} + + + + +\subsection[تشخیص و دسته‌بندی پولیپ] {تشخیص و دسته‌بندی پولیپ \پاورقی{Polyp detection and classification}} + +نیز در زمره بهترین معماری‌های یادگیری عمیق قرار دارند. در جدول مقایسه + کاملی بین روش‌های قبلی در این زمینه وجود دارد. همان طور که مشخص است تعداد کارهای انجام شده ای که هم تشخیص و هم دسته‌بندی پولیپ را انجام دهند بسیار کم است و در چند سال گذشته نیز کسی روی این زمینه کار نکرده است. + + + +\clearpage +\section{آزمایش‌های اجرا شده} +\input{tables/datasets} + +\linespread{1} +\small +\setlength{\parskip}{0pt} +\setlength{\parsep}{0pt} +\input{bib} + +\newpage + + + + +%\Persian +\section*{واژه‌نامه} +\begin{LTR} +\begin{multicols}{3} +\theendnotes +\end{multicols} +\end{LTR} +\end{document} + diff --git a/tables/datasets.tex b/tables/datasets.tex new file mode 100644 index 0000000..29e7ee4 --- /dev/null +++ b/tables/datasets.tex @@ -0,0 +1,24 @@ + +\begin{table}[] +\centering +\caption{مجموعه دادگان مورد استفاده در پژوهش} +\label{tab:datasets} +\begin{tabular}{cccc} +\hline +مجموعه دادگان & تعداد تصویر یا ویدئو & رزولوشن & کار \\ \hline +\lr{CVC-ClinicDB} & 612 تصویر & SD +، +$384 \times 288$ & تشخیص و مکان‌یابی \\ \hline +\lr{CVC-VideoClinicDB} & 18 ویدئو & SD +، $768 \times 576$ & تشخیص و مکان‌یابی \\ \hline +\lr{Colonoscopy Dataset} & 76 ویدئو & SD +، $768 \times 576$ & دسته بندی \\ \hline +\lr{ETIS-Larib} & 196 تصویر & HD +، $1225 \times 966$ & تشخیص و مکان‌یابی \\ \hline +\lr{Kvasir-SEG} & 1000 تصویر & متفاوت & قطعه‌بندی +%\\ \hline +%\lr{Kvasir} & & & \\ \hline +%\lr{Hyper-Kvasir} & & & +\end{tabular} + +\end{table} \ No newline at end of file diff --git a/title.tex b/title.tex new file mode 100644 index 0000000..ba1bbd9 --- /dev/null +++ b/title.tex @@ -0,0 +1,42 @@ +\thispagestyle{empty} +\begin{center} +\includegraphics{logo} +\vskip 1cm + +\large{ +{\bf +دانشگاه صنعتی شریف\\ دانشکده مهندسی کامپیوتر\\ سمینار کارشناسی ارشد گرایش هوش مصنوعی +} +\\ +\vskip 1cm +عنوان:\\ +{ \bf +تست تست +} +\\{ \bf \large +\lr{ My test }} +\vskip 1cm +نگارش:\\ +\textbf{امیر پورمند} +\\ +\vskip 0.5cm +شماره دانشجویی: \\ +3123123123213 +\\ +\vskip 1cm +استاد راهنما:\\ + \textbf{دکتر } + \\ +\vskip 1cm +استاد ممتحن داخلی:\\ +\textbf{دکتر } +\\ + +\vskip 3.5cm + +} +بهمن ۱۴۰۰ +\newpage +\end{center} + + diff --git a/toi.tex b/toi.tex new file mode 100644 index 0000000..cc9800f --- /dev/null +++ b/toi.tex @@ -0,0 +1,3 @@ +\tableofcontents +\listoffigures +%\listoftables diff --git a/unsrtabbrv.bst b/unsrtabbrv.bst new file mode 100755 index 0000000..9b79554 --- /dev/null +++ b/unsrtabbrv.bst @@ -0,0 +1,959 @@ +%-------------------------------------------------------------- +% +% BibTeX bibliography style `unsrtabbrv' +% Created by mixing unsrt.bst and abbrv.bst. +% +%-------------------------------------------------------------- + + +% BibTeX bibliography style `unsrt+abbrv' + % Version 0.99b (8-Dec-10 release) for BibTeX versions 0.99a or later. + % Copyright (C) 1984, 1985, 1988, 2010 Howard Trickey and Oren Patashnik. + % Unlimited copying and redistribution of this file are permitted as long as + % it is unmodified. Modifications (and redistribution of modified versions) + % are also permitted, but only if the resulting file is renamed to something + % besides btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +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.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + 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 {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + 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 {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " 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$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + 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$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" 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 {\em " 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 " + } + { "Volume" volume tie.or.space.connect + " 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$ + "" * + } + { "{\em " * 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 {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + 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 + new.block + format.title "title" output.check + howpublished address new.block.checkb + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "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 + title howpublished new.block.checkb + 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 + new.block + format.btitle "title" output.check + new.block + "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$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + 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 + new.block + 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. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. 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.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. 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 + +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} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib}