summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2020-02-01 12:11:19 +0100
committerAndré Nusser <andre.nusser@googlemail.com>2020-02-01 12:11:19 +0100
commit8fe4b06a22710fb073bcdc89909f6113397d9f07 (patch)
treebb39a4e79b29009841fe90dfa6a31441f9cfe631
parent12b97c2d78627cadf43d2f76bedb98bbdb1ae5f2 (diff)
Put current work into LAC-20 format.
-rw-r--r--sampling_alg_lac2020/.gitignore6
-rw-r--r--sampling_alg_lac2020/IEEEbib.bst1021
-rw-r--r--sampling_alg_lac2020/LAC-20.bib5
-rw-r--r--sampling_alg_lac2020/LAC-20.sty490
-rw-r--r--sampling_alg_lac2020/LAC-20.tex359
-rw-r--r--sampling_alg_lac2020/Makefile3
6 files changed, 1884 insertions, 0 deletions
diff --git a/sampling_alg_lac2020/.gitignore b/sampling_alg_lac2020/.gitignore
new file mode 100644
index 0000000..14c85a9
--- /dev/null
+++ b/sampling_alg_lac2020/.gitignore
@@ -0,0 +1,6 @@
+LAC-20.aux
+LAC-20.bbl
+LAC-20.blg
+LAC-20.log
+LAC-20.out
+LAC-20.pdf
diff --git a/sampling_alg_lac2020/IEEEbib.bst b/sampling_alg_lac2020/IEEEbib.bst
new file mode 100644
index 0000000..f9bf3cc
--- /dev/null
+++ b/sampling_alg_lac2020/IEEEbib.bst
@@ -0,0 +1,1021 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% IEEE.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Bibliography Syle file for articles according to IEEE instructions
+% balemi@aut.ee.ethz.ch <22-JUN-93>
+% modified from unsrt.bib. Contributions by Richard H. Roy
+
+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 =
+% next line commented out by rhr and changed to write comma
+% { add.period$ write$
+ { ", " * 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$
+}
+
+% 5/24/89 rhr
+% modified fin.entry function - prints note field after body of entry
+%FUNCTION {fin.entry}
+%{ add.period$
+% note empty$
+% 'write$
+% { "\par\bgroup\parindent=0em " * annote * "\par\egroup " * write$
+% }
+% if$
+% newline$
+%}
+
+FUNCTION {new.block}
+{ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+% new block without terminating last block with a comma
+FUNCTION {new.ncblock}
+{
+ write$
+ newline$
+ "\newblock "
+ before.all 'output.state :=
+}
+
+FUNCTION {new.nccont}
+{
+ write$
+ " "
+ before.all 'output.state :=
+}
+
+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$
+}
+
+FUNCTION {boldface}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "{\bf " swap$ * "}" * }
+ if$
+}
+
+%FUNCTION {boldface}
+%{ 's swap$ :=
+% s "" =
+% { "" }
+% { "{\bf " s * "}" * }
+% if$
+%}
+%
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{ff~}{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 >
+ { ", Eds." * }
+ { ", Ed." * }
+ 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.date}
+% { year empty$
+% 'year
+% { " " year * }
+% 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 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
+ { "pp." pages n.dashify tie.or.space.connect }
+ { "p." pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.num.pages}
+{
+volume empty$
+ {"" }
+ {"vol. " volume *}
+if$
+number empty$
+ 'skip$
+ {", no. " number * *}
+if$
+pages empty$
+ 'skip$
+ { duplicate$ empty$
+ { pop$ format.pages }
+ { ", pp. " * pages n.dashify * }
+ if$
+ }
+if$
+}
+
+%FUNCTION {format.vol.num.pages}
+%%boldface added 3/17/87 rhr
+%{ volume field.or.null boldface
+% 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 " booktitle emphasize * ", " * format.editors * }
+ 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$
+ { "Tech. {R}ep." }
+ '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 "
+ }
+ { "vol." 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.ncblock
+ 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
+ new.nccont
+ 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.ncblock
+ 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.ncblock
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ address empty$
+ { organization publisher new.sentence.checkb
+ organization output
+ format.date "year" output.check
+ }
+ { address output.nonnull
+ format.date "year" output.check
+ organization output
+ }
+ if$
+ format.bvolume output
+ format.number.series output
+ format.pages output
+ publisher output
+ }
+ { 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.ncblock
+ "M.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
+ new.nccont
+ 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
+ "Ph.D. 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.ncblock
+ 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.ncblock
+ 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 Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+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}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End of IEEE.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/sampling_alg_lac2020/LAC-20.bib b/sampling_alg_lac2020/LAC-20.bib
new file mode 100644
index 0000000..9247ddb
--- /dev/null
+++ b/sampling_alg_lac2020/LAC-20.bib
@@ -0,0 +1,5 @@
+@inproceedings{Guy:17,
+ author = {One Guy},
+ TITLE = {Fancy Title},
+ year = {2017},
+}
diff --git a/sampling_alg_lac2020/LAC-20.sty b/sampling_alg_lac2020/LAC-20.sty
new file mode 100644
index 0000000..7b102b5
--- /dev/null
+++ b/sampling_alg_lac2020/LAC-20.sty
@@ -0,0 +1,490 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%
+% File: LAC-20.sty (LaTeX Document style option "LAC-20")
+%
+% Usage: \documentclass{article}
+% \usepackage{LAC-20}
+%
+% Or for LaTeX 2.09:
+% Usage: \documentstyle[...,LAC-20,...]{article}
+%
+% Purpose:
+%
+% Style file for the Linux Audio Conference (LAC-20).
+% Modified from LAC-19.sty
+% Features:
+% - use times-roman font as default font (roman font) in order to achieve
+% best quality on paper and screen
+% - twocolumn format
+% - boldfaced, numbered, and centered section headings
+% - correct subsection and subsubsection headings
+% - use \title{xx} for title, will automatically be typeset uppercase (not need for the user to do so)
+%
+% NEW NEW NEW
+%
+% - use \affiliation{author1, author2, ... and authorN}{address} for author(s) <typeset in italics>
+% with a single affiliation (address)
+% - use \affiliationS{author}{address1}{address2} for author(s) <typeset in italics>
+% with double affiliation (address)
+% - use \twoaffiliations{author1}{address1}{author2}{address2}
+% for two (or more) authors with two separate addresses
+% - use \threeaffiliations{author1}{address1}{author2}{address2}{author3}{address3}
+% for three (or more) authors with three separate addresses
+% - use \fouraffiliations{author1}{address1}{author2}{address2}{author3}{address3}{author4}{address4}
+% for four (or more) authors with four separate addresses
+% - note: no need for \name \address \author nor \date
+%
+% - optional: can use \thanks{xx} within \affiliation, \affiliations, etc.
+% asterisk is not printed after name nor in footnote
+% - optional: can use \sthanks{xx} after each name within \name or
+% \twoauthors if different thanks for each author,
+% footnote symbol will appear for each name and footnote
+% - optional: use \ninept to typeset text in 9 pt; default is 10pt.
+%
+% Example of use for one or more authors at a common address and
+% common support. For distinct support acknowledgments,
+% use \sthanks{xx} after each name.
+%
+% \documentstyle[dafx_14]{article}
+% \title{Title of the paper}
+% \affiliation{George P. Burdell and John Q. Professor
+% \thanks{This work was supported by...}}
+% {Common address, department \\
+% City, etc \\
+% optional e-mail address}
+%
+% \begin{document}
+% OPTIONAL --> \ninept <-- OPTIONAL, for nine pt only
+% \maketitle
+% \begin{abstract}
+% This is the abstract for my paper.
+% \end{abstract}
+% .
+% Insert text of paper
+% .
+% \end{document}
+%
+% Example of use for authors at two distinct addresses with only
+% one support acknowledgment. For distinct support acknowledgments,
+% use \sthanks{xx} after each name.
+%
+% \documentstyle[dafx_14]{article}
+% \title{Title of the paper}
+% \twoaffiliations{John Doe
+% \thanks{This work was supported by...}}
+% {Doe's address, department \\
+% City, etc \\
+% optional e-mail address}
+% {Judy Smith}
+% {Smith's address, department \\
+% City, etc \\
+% optional e-mail address}
+%
+% \begin{document}
+% OPTIONAL --> \ninept <-- OPTIONAL, for nine pt only
+% \maketitle
+% \begin{abstract}
+% This is the abstract for my paper.
+% \end{abstract}
+% .
+% Insert text of paper
+% .
+% \end{document}
+%
+%
+% PLEASE REPORT ANY BUGS
+%
+% Author: Stephen Martucci -- martucci@cdg.nj.nec.com
+% Modifications: Jyri Huopaniemi -- jyri.huopaniemi@research.nokia.com
+% the Dafx crew -- dafx@sci.univr.it
+% The DAFx04 crew -- dafx04@na.infn.it
+% The DAFx06 crew -- dafx06@dafx.ca
+% The DAFx07 crew -- dafx07@labri.fr
+% The DAFx08 crew -- dafx08@acousctics.hut.fi
+% The DAFx09 crew -- dafx09@como.polimi.it
+% The DAFx10 crew -- dafx10@iem.at
+% The DAFx12 crew -- papers@dafx12.york.ac.uk
+% The DAFx13 crew -- papers@dafx13.nuim.ie
+% The DAFx14 crew -- dafx14@audiolabs-erlangen.de
+% The DAFx16 crew -- dafx16@vutbr.cz
+% The IFC-18 crew -- ifc18@muwiinfa.geschichte.uni-mainz.de
+% The LAC-19 crew -- lac@linuxaudio.org
+% The LAC-20 crew -- lac@linuxaudio.org
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%change default font to times-roman
+\renewcommand{\sfdefault}{phv}
+\renewcommand{\rmdefault}{ptm}
+\renewcommand{\ttdefault}{pcr}
+
+\oddsidemargin -0.3in
+\evensidemargin -0.3in
+
+\topmargin 0truept
+\headheight 0truept
+\footskip 0truept
+\textheight 225truemm % will determine bottom margin
+\textwidth 7.1in % currently 8.5 - (0.7*2)
+\voffset -0.3in
+\headsep 18truept % distance between conf label and paper title
+
+\twocolumn
+\columnsep 8truemm
+\pagestyle{empty}
+\def\ninept{\def\baselinestretch{0.95}\let\normalsize\small\normalsize}
+
+\def\maketitle{\par
+ \begingroup
+ \def\thefootnote{}
+ \def\@makefnmark{\hbox to 6pt{$^{\@thefnmark}$\hss}}
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else \newpage
+ \global\@topnum\z@ \@maketitle \fi\@thanks
+ \endgroup
+ \setcounter{footnote}{0}
+ \let\maketitle\relax
+ \let\@maketitle\relax
+ \gdef\thefootnote{\arabic{footnote}}\gdef\@@savethanks{}%
+ \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
+
+\def\@maketitle{\newpage
+ \null
+ \vskip 1em
+ \begin{center}
+ {\large \bf \@title \par} \vskip 2em
+ {%
+ %\large
+ %\ninept
+ \lineskip .5em
+ \begin{tabular}[t]{c}\@name \\ \@address
+ \end{tabular}\par}
+ \end{center}
+ \par
+ \vskip 1.4em}
+
+\def\title#1{\gdef\@title{\MakeUppercase{#1}}}
+%\def\name#1{\gdef\@name{{\em #1}\\}}
+%\def\address#1{\gdef\@address{#1}}
+\gdef\@title{\uppercase{title of paper}}
+\gdef\@name{{\em Name of author}\\}
+\gdef\@address{Address - Line 1 \\
+ Address - Line 2 \\
+ Address - Line 3}
+
+\let\@@savethanks\thanks
+\def\thanks#1{\gdef\thefootnote{}\@@savethanks{#1}}
+\def\sthanks#1{\gdef\thefootnote{\fnsymbol{footnote}}\@@savethanks{#1}}
+
+\def\affiliationSpace{2mm}
+
+%\def\affiliation#1#2{\gdef\@address{}
+ %\gdef\@name{\begin{tabular}{@{}c@{}}
+ %{\em #1} \\ \vspace*{\affiliationSpace}\\
+ %#2\relax
+ %\end{tabular}
+ %}
+%}
+
+\def\affiliation#1#2{\gdef\@address{}
+ \gdef\@name{
+ \begin{minipage}[t]{\linewidth}
+ \centering
+ {\em #1}\\[\affiliationSpace]
+ #2\relax
+ \end{minipage}
+ }
+}
+
+\def\affiliations#1#2#3{\gdef\@address{}
+ \gdef\@name{\begin{tabular}{@{}c@{}}
+ {\em #1} \\ \vspace*{\affiliationSpace}\\
+ \begin{tabular}{@{}c@{}}
+ #2\relax
+ \end{tabular}\hskip 0.3in
+ \begin{tabular}{@{}c@{}}
+ #3\relax
+ \end{tabular}
+ \end{tabular}
+ }
+}
+
+%\def\twoaffiliations#1#2#3#4{\gdef\@address{}
+ %\gdef\@name{\begin{tabular}{@{}c@{}}
+ %{\em #1} \\ \vspace*{\affiliationSpace}\\
+ %#2\relax
+ %\end{tabular}\hskip 0.3in
+ %\begin{tabular}{@{}c@{}}
+ %{\em #3} \\ \vspace*{\affiliationSpace}\\
+ %#4\relax
+ %\end{tabular}
+ %}
+%}
+
+\def\twoaffiliations#1#2#3#4{\gdef\@address{}
+ \gdef\@name{
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #1}\\[\affiliationSpace]
+ #2\relax
+ \end{minipage}%
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #3}\\[\affiliationSpace]
+ #4\relax
+ \end{minipage}%
+ }
+}
+
+%\def\threeaffiliations#1#2#3#4#5#6{\gdef\@address{}
+ %\gdef\@name{\begin{tabular}{@{}c@{}}
+ %{\em #1} \\ \vspace*{\affiliationSpace}\\
+ %#2\relax
+ %\end{tabular}\hskip 0.3in
+ %\begin{tabular}{@{}c@{}}
+ %{\em #3} \\ \vspace*{\affiliationSpace}\\
+ %#4\relax
+ %\end{tabular} \\ \\
+ %\begin{tabular}{@{}c@{}}
+ %{\em #5} \\ \vspace*{\affiliationSpace}\\
+ %#6\relax
+ %\end{tabular}
+ %}
+%}
+%
+\def\threeaffiliations#1#2#3#4#5#6{\gdef\@address{}
+ \gdef\@name{
+ \begin{minipage}[t]{.333\linewidth}
+ \centering
+ {\em #1}\\[\affiliationSpace]
+ #2\relax
+ \end{minipage}%
+ \hfill%
+ \begin{minipage}[t]{.333\linewidth}
+ \centering
+ {\em #3}\\[\affiliationSpace]
+ #4\relax
+ \end{minipage}%
+ \hfill%
+ \begin{minipage}[t]{.333\linewidth}
+ \centering
+ {\em #5}\\[\affiliationSpace]
+ #6\relax
+ \end{minipage}%
+ }
+}
+
+%\def\fouraffiliations#1#2#3#4#5#6#7#8{\gdef\@address{}
+ %\gdef\@name{\begin{tabular}{@{}c@{}}
+ %{\em #1} \\ \vspace*{\affiliationSpace}\\
+ %#2\relax
+ %\end{tabular}\hskip 0.3in
+ %\begin{tabular}{@{}c@{}}
+ %{\em #3} \\ \vspace*{\affiliationSpace}\\
+ %#4\relax
+ %\end{tabular} \\ \\
+ %\begin{tabular}{@{}c@{}}
+ %{\em #5} \\ \vspace*{\affiliationSpace}\\
+ %#6\relax
+ %\end{tabular}\hskip 0.3in
+ %\begin{tabular}{@{}c@{}}
+ %{\em #7} \\ \vspace*{\affiliationSpace}\\
+ %#8\relax
+ %\end{tabular}
+ %}
+%}
+
+\def\fouraffiliations#1#2#3#4#5#6#7#8{\gdef\@address{}
+ \gdef\@name{
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #1}\\[\affiliationSpace]
+ #2\relax
+ \end{minipage}%
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #3}\\[\affiliationSpace]
+ #4\relax
+ \end{minipage}%
+ \\[22mm]%
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #5}\\[\affiliationSpace]
+ #6\relax
+ \end{minipage}%
+ \begin{minipage}[t]{.5\linewidth}
+ \centering
+ {\em #7}\\[\affiliationSpace]
+ #8\relax
+ \end{minipage}%
+ }
+}
+
+\def\@sect#1#2#3#4#5#6[#7]#8{
+ \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname.\hskip 0.6em}
+ \begingroup \ifnum #2=1\bf\centering
+ {\interlinepenalty \@M
+ \@svsec\uppercase{#8}\par}\else\ifnum #2=2\bf
+ \noindent{\interlinepenalty \@M \@svsec #8\par}\else\it
+ \@hangfrom{\hskip\parindent}{\interlinepenalty \@M
+ \@svsec #8\par}\fi\fi\endgroup
+ \csname #1mark\endcsname{#7}\addcontentsline
+ {toc}{#1}{\protect\numberline{\csname the#1\endcsname} #7}
+ \@tempskipa #5\relax
+ \@xsect{\@tempskipa}}
+
+\def\abstract{\begin{center}
+{\bf ABSTRACT\vspace{-.5em}\vspace{0pt}}
+\end{center}}
+\def\endabstract{\par}
+
+\def\copyrightnotice#1{\gdef\@copyrightnotice{#1}}\let\@copyrightnotice\relax
+\def\toappear#1{\gdef\@toappear{#1}}\let\@toappear\relax
+
+%%% Strings for the preprint titlepage footer:
+
+\newif\if@preprint\@preprintfalse
+\def\ds@preprint{\@preprinttrue}
+\def\ps@preprint{\let\@mkboth\@gobbletwo\def\@oddhead{}
+ \def\@oddfoot{\rlap{\@toappear}\hfil\thepage\hfil
+ \llap{\@copyrightnotice}\gdef\@toappear{}\gdef\@copyrightnotice{}}}
+
+\if@preprint\ps@preprint
+\else\ps@empty\flushbottom\fi
+
+\def\thebibliography#1{\section{References}\list
+ {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \usecounter{enumi}}
+ \def\newblock{\hskip .11em plus .33em minus .07em}
+ \sloppy\clubpenalty4000\widowpenalty4000
+ \sfcode`\.=1000\relax}
+\let\endthebibliography=\endlist
+
+\flushbottom
+%%%%% fancyheading included
+\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}}
+\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}}
+\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}}
+
+\def\chead{\@ifnextchar[{\@xchead}{\@ychead}}
+\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}}
+\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}}
+
+\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}}
+\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}}
+\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}}
+
+\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}}
+\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}}
+\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}}
+
+\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}}
+\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}}
+\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}}
+
+\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}}
+\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}}
+\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}}
+
+\newdimen\headrulewidth
+\newdimen\footrulewidth
+\newdimen\plainheadrulewidth
+\newdimen\plainfootrulewidth
+\newdimen\headwidth
+\newif\if@fancyplain
+\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi}
+
+% Command to reset various things in the headers:
+% a.o. single spacing (taken from setspace.sty)
+% and the catcode of ^^M (so that epsf files in the header work if a
+% verbatim crosses a page boundary)
+\def\fancy@reset{\restorecr
+ \def\baselinestretch{1}%
+ \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
+ \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
+ \else% NFSS (2.09) present
+ \@newbaseline%
+ \fi}
+
+% Initialization of the head and foot text.
+
+\headrulewidth 0.4pt
+\footrulewidth\z@
+\plainheadrulewidth\z@
+\plainfootrulewidth\z@
+
+\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}}
+% i.e. empty on ``plain'' pages, \rightmark on even, \leftmark on odd pages
+\chead{}
+%\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}}
+% i.e. empty on ``plain'' pages, \leftmark on even, \rightmark on odd pages
+\lfoot{}
+\cfoot{}
+\rfoot{}
+
+% Put together a header or footer given the left, center and
+% right text, fillers at left and right and a rule.
+% The \lap commands put the text into an hbox of zero size,
+% so overlapping text does not generate an errormessage.
+
+\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\hbox
+{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[b]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5}
+
+
+\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\fancy@reset\vbox{\footrule
+\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill
+\parbox[t]{\headwidth}{\centering#3\strut}\hfill
+\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5}
+
+\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
+\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
+
+\def\footrule{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
+\vskip-0.3\normalbaselineskip\vskip-\footrulewidth
+\hrule\@width\headwidth\@height\footrulewidth\vskip0.3\normalbaselineskip}}
+
+\def\ps@fancy{%
+\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%for amsbook
+\@ifundefined{chapter}{\def\sectionmark##1{\markboth
+{\uppercase{\ifnum \c@secnumdepth>\z@
+ \thesection\hskip 1em\relax \fi ##1}}{}}%
+\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne
+ \thesubsection\hskip 1em\relax \fi ##1}}}%
+{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne
+ \@chapapp\ \thechapter. \ \fi ##1}}{}}
+\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@
+ \thesection. \ \fi ##1}}}}%
+\csname ps@headings\endcsname % use \ps@headings defaults if they exist
+\ps@@fancy
+\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
+\headwidth\textwidth}
+\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy}
+\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy}
+\def\ps@@fancy{%
+\def\@mkboth{\protect\markboth}%
+\def\@oddhead{\@fancyhead\@lodd\@olhead\@ochead\@orhead\@rodd}%
+\def\@oddfoot{\@fancyfoot\@lodd\@olfoot\@ocfoot\@orfoot\@rodd}%
+\def\@evenhead{\@fancyhead\@rodd\@elhead\@echead\@erhead\@lodd}%
+\def\@evenfoot{\@fancyfoot\@rodd\@elfoot\@ecfoot\@erfoot\@lodd}%
+}
+\def\@lodd{\if@reversemargin\hss\else\relax\fi}
+\def\@rodd{\if@reversemargin\relax\else\hss\fi}
+
+\let\latex@makecol\@makecol
+\def\@makecol{\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol}
+\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi}
+\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi}
+\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi}
+
+\pagestyle{fancy}
+\renewcommand{\headrulewidth}{0pt}
+\lhead{\em{\small{Proceedings of the 18$^{\text{\itshape th}}$ Linux Audio
+Conference (LAC-20), SCRIME, Université de Bordeaux, France, May 11--13, 2020}}}
+\rhead{}
+\lfoot{}
+\rfoot{}
+
diff --git a/sampling_alg_lac2020/LAC-20.tex b/sampling_alg_lac2020/LAC-20.tex
new file mode 100644
index 0000000..6e95747
--- /dev/null
+++ b/sampling_alg_lac2020/LAC-20.tex
@@ -0,0 +1,359 @@
+% Template LaTeX file for LAC-20 papers
+%
+% To generate the correct references using BibTeX, run
+% latex, bibtex, latex, latex
+% modified...
+% - from DAFx-00 to DAFx-02 by Florian Keiler, 2002-07-08
+% - from DAFx-02 to DAFx-03 by Gianpaolo Evangelista
+% - from DAFx-05 to DAFx-06 by Vincent Verfaille, 2006-02-05
+% - from DAFx-06 to DAFx-07 by Vincent Verfaille, 2007-01-05
+% and Sylvain Marchand, 2007-01-31
+% - from DAFx-07 to DAFx-08 by Henri Penttinen, 2007-12-12
+% and Jyri Pakarinen 2008-01-28
+% - from DAFx-08 to DAFx-09 by Giorgio Prandi, Fabio Antonacci 2008-10-03
+% - from DAFx-09 to DAFx-10 by Hannes Pomberger 2010-02-01
+% - from DAFx-10 to DAFx-12 by Jez Wells 2011
+% - from DAFx-12 to DAFx-14 by Sascha Disch 2013
+% - from DAFx-15 to DAFx-16 by Pavel Rajmic 2015
+% - from DAFx-16 to IFC-18 by Romain Michon 2018
+% - from IFC-18 to LAC-19 by Romain Michon 2019
+% - from LAC-19 to LAC-20 by Jean-Michaël Celerier 2020
+%
+% Template with hyper-references (links) active after conversion to pdf
+% (with the distiller) or if compiled with pdflatex.
+%
+% 20060205: added package 'hypcap' to correct hyperlinks to figures and tables
+% use of \papertitle and \paperauthorA, etc for same title in PDF and Metadata
+%
+% 1) Please compile using lualatex, latex or pdflatex.
+% 2) If using pdflatex, you need your figures in a file format other than eps! e.g. png or jpg is working
+% 3) Please use "papertitle" and "pdfauthor" definitions below
+
+%------------------------------------------------------------------------------------------
+% ! ! ! ! ! ! ! ! ! ! ! ! user defined variables ! ! ! ! ! ! ! ! ! ! ! ! ! !
+% Please use these commands to define title and author(s) of the paper:
+\def\papertitle{Sampling Algorithms for DrumGizmo}
+\def\paperauthorA{André Nusser}
+\def\paperauthorB{Bent Bisballe Nyeng}
+\def\paperauthorC{}
+\def\paperauthorD{}
+
+% Authors' affiliations have to be set below
+
+%------------------------------------------------------------------------------------------
+\documentclass[twoside,a4paper]{article}
+\usepackage{LAC-20}
+\usepackage{amsmath,amssymb,amsfonts,amsthm}
+\usepackage{euscript}
+\usepackage{ifpdf}
+\usepackage{ifluatex}
+\usepackage{ifxetex}
+
+\usepackage{color}
+\usepackage{listings}
+\definecolor{mygrey}{rgb}{0.96,0.96,0.96}
+\lstset{
+ tabsize=4,
+ basicstyle=\ttfamily,
+ backgroundcolor=\color{mygrey},
+ captionpos=b,
+ breaklines=true
+}
+
+\usepackage[english]{babel}
+\usepackage{caption}
+\usepackage{subfig, color}
+\setcounter{page}{1}
+\ninept
+
+\usepackage{times}
+% pdf-tex settings: detect automatically if run by latex or pdflatex
+\ifluatex
+ \usepackage[
+ pdftitle={\papertitle},
+ pdfauthor={\paperauthorA, \paperauthorB, \paperauthorC, \paperauthorD},
+ colorlinks=false, % links are activated as colror boxes instead of color text
+ bookmarksnumbered, % use section numbers with bookmarks
+ pdfstartview=XYZ % start with zoom=100% instead of full screen; especially useful if working with a big screen :-)
+ ]{hyperref}
+
+ \edef\pdfcompresslevel{\pdfvariable compresslevel}
+ \pdfcompresslevel=9
+ \usepackage{graphicx}
+
+ \usepackage[figure,table]{hypcap}
+ \usepackage{fontspec}
+\else
+ \ifxetex
+ \usepackage[
+ pdftitle={\papertitle},
+ pdfauthor={\paperauthorA, \paperauthorB, \paperauthorC, \paperauthorD},
+ colorlinks=false, % links are activated as colror boxes instead of color text
+ bookmarksnumbered, % use section numbers with bookmarks
+ pdfstartview=XYZ % start with zoom=100% instead of full screen; especially useful if working with a big screen :-)
+ ]{hyperref}
+
+ \pdfcompresslevel=9
+ \usepackage{graphicx}
+
+ \usepackage[figure,table]{hypcap}
+ \usepackage{fontspec}
+ \else
+ \usepackage[utf8]{inputenc}
+ \usepackage[T1]{fontenc}
+ \ifpdf % compiling with pdflatex
+ \usepackage[pdftex,
+ pdftitle={\papertitle},
+ pdfauthor={\paperauthorA, \paperauthorB, \paperauthorC, \paperauthorD},
+ colorlinks=false, % links are activated as colror boxes instead of color text
+ bookmarksnumbered, % use section numbers with bookmarks
+ pdfstartview=XYZ % start with zoom=100% instead of full screen; especially useful if working with a big screen :-)
+ ]{hyperref}
+ \pdfcompresslevel=9
+ \usepackage[pdftex]{graphicx}
+ \usepackage[figure,table]{hypcap}
+ \DeclareGraphicsExtensions{.png,.jpg,.pdf}
+ \else % compiling with latex
+ \usepackage[dvips]{epsfig,graphicx}
+ \usepackage[dvips,
+ colorlinks=false, % no color links
+ bookmarksnumbered, % use section numbers with bookmarks
+ pdfstartview=XYZ % start with zoom=100% instead of full screen
+ ]{hyperref}
+ % hyperrefs are active in the pdf file after conversion
+ \usepackage[figure,table]{hypcap}
+ \DeclareGraphicsExtensions{.eps}
+ \fi
+ \fi
+\fi
+
+% ====================================
+% OWN PACKAGES
+
+% For utf8 encoding
+\usepackage[utf8]{inputenc}
+
+% Use for automatic line breaks in tabular (column type X)
+\usepackage{tabularx}
+% For abbreviations using \newcommand
+\usepackage{xspace}
+% For the >{...} in tabular
+\usepackage{array}
+% For t o d o notes. Make the background white to make them not that distracting.
+\usepackage[textwidth=3.5cm,color=white]{todonotes}
+% For better cite commands
+\usepackage[numbers]{natbib}
+% math stuff
+\usepackage{amsmath,amsthm,amssymb}
+\usepackage{mathtools}
+\usepackage{nicefrac}
+\usepackage{csquotes}
+% Comment in the next line to draw frames around all the layout boxes for checking where they are violated.
+%\usepackage{showframe}
+
+% nice theorem and proof environments. taken from Ema's template
+\theoremstyle{plain}
+\newtheorem{theorem}{Theorem}
+\newtheorem{proposition}{Proposition}
+\newtheorem{lemma}{Lemma}
+\newtheorem{corollary}{Corollary}
+\newtheorem{claim}{Claim}
+\newtheorem{fact}{Fact}
+
+\theoremstyle{definition}
+\newtheorem{definition}{Definition}
+\newtheorem{example}{Example}
+
+\theoremstyle{remark}
+\newtheorem{remark}{Remark}
+\newtheorem{observation}{Observation}
+\newtheorem{conjecture}{Conjecture}
+
+% Handy abbreviations
+\newcommand{\whp}[0]{w.h.p.\xspace}
+\newcommand{\ie}[0]{i.e.\xspace}
+\newcommand{\wrt}[0]{w.r.t.\xspace}
+
+% \abs and \norm hacks
+\DeclarePairedDelimiter\abs{\lvert}{\rvert}
+\makeatletter
+\let\oldabs\abs
+\def\abs{\@ifstar{\oldabs}{\oldabs*}}
+\let\oldnorm\norm
+\def\norm{\@ifstar{\oldnorm}{\oldnorm*}}
+\makeatother
+
+% ugly hack
+\renewcommand{\paragraph}[1]{\textbf{#1}. }
+
+% ====================================
+
+\title{\papertitle}
+
+%-------------SINGLE-AUTHOR HEADER STARTS (uncomment below if your paper has a single author)-----------------------
+% \affiliation{
+% \paperauthorA \,\sthanks{This work was supported by the XYZ Foundation}}
+% {\href{https://scrime.u-bordeaux.fr}{SCRIME} \\ Université de Bordeaux, France \\
+% {\tt \href{mailto:ping@linuxaudio.org}{ping@linuxaudio.org}}
+% }
+%-----------------------------------SINGLE-AUTHOR HEADER ENDS------------------------------------------------------
+
+%---------------TWO-AUTHOR HEADER STARTS (uncomment below if your paper has two authors)-----------------------
+\twoaffiliations{
+\paperauthorA % \, \sthanks{This work was supported by the XYZ Foundation}
+}
+{\href{https://drumgizmo.org}{DrumGizmo} \\ Saarbr\"ucken, Germany \\
+{\tt \href{mailto:andre.nusser@gmail.com}{andre.nusser@gmail.com}}
+}
+{\paperauthorB % \,\sthanks{This guy is a very good fellow}
+}
+{\href{https://drumgizmo.org}{DrumGizmo} \\ Aarhus, Denmark \\
+{\tt \href{mailto:deva@aasimon.org}{deva@aasimon.org}}
+}
+%-------------------------------------TWO-AUTHOR HEADER ENDS------------------------------------------------------
+
+%---------------THREE-AUTHOR HEADER STARTS (uncomment below if your paper has three authors)-----------------------
+% \threeaffiliations{
+% \paperauthorA \,\sthanks{This work was supported by the XYZ Foundation}}
+% {\href{https://scrime.u-bordeaux.fr}{SCRIME} \\ Université de Bordeaux, France \\
+% {\tt \href{mailto:ping@linuxaudio.org}{ping@linuxaudio.org}}
+% }
+% {\paperauthorB \,\sthanks{This guy is a very good fellow}}
+% {\href{https://ccrma.stanford.edu}{CCRMA} \\ Stanford University, USA \\
+% {\tt \href{mailto:lac@ccrma.stanford.edu}{lac@ccrma.stanford.edu}}
+% }
+% {\paperauthorC \,\sthanks{Illustrious contributor}}
+% {\href{http://www.musikwissenschaft.uni-mainz.de/Musikinformatik/}{Johannes Gutenberg University (JGU)} \\ Mainz, Germany\\
+% {\tt \href{mailto:lac@uni-mainz.de}{lac@uni-mainz.de}}
+% }
+%-------------------------------------THREE-AUTHOR HEADER ENDS------------------------------------------------------
+
+%----------------FOUR-AUTHOR HEADER STARTS (uncomment below if your paper has four authors)-----------------------
+% \fouraffiliations{
+% \paperauthorA \,\sthanks{This work was supported by the XYZ Foundation}}
+% {\href{https://scrime.u-bordeaux.fr}{SCRIME} \\ Université de Bordeaux, France \\
+% {\tt \href{mailto:ping@linuxaudio.org}{ping@linuxaudio.org}}
+% }
+% {\paperauthorB \,\sthanks{This guy is a very good fellow}}
+% {\href{https://ccrma.stanford.edu}{CCRMA} \\ Stanford University, USA \\
+% {\tt \href{mailto:lac@ccrma.stanford.edu}{lac@ccrma.stanford.edu}}
+% }
+% {\paperauthorC \,\sthanks{Illustrious contributor}}
+% {\href{http://www.musikwissenschaft.uni-mainz.de/Musikinformatik/}{Johannes Gutenberg University (JGU)} \\ Mainz, Germany\\
+% {\tt \href{mailto:lac@uni-mainz.de}{lac@uni-mainz.de}}
+% }
+% {\paperauthorD \,\sthanks{Thanks to the predecessors for the templates}}
+% {\href{https://c-base.org/}{C-Base} \\ Berlin, Germany \\
+% {\tt \href{mailto:lac@c-base.com}{lac@c-base.com}}
+% }
+%-------------------------------------FOUR-AUTHOR HEADER ENDS------------------------------------------------------
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+\noindent
+This paper suggests new sampling algorithms for DrumGizmo. First the requirements and certain problematic special cases are formulated and then several approaches are explored and turned into sample selection algorithms.
+\end{abstract}
+
+\section{Introduction}
+Introduce DrumGizmo. Sample selection is one of the core parts of DrumGizmo as it heavily influences how \enquote{robotic} DrumGizmo sounds. What is sample selection (only consider it for one instrument)?
+
+\subsection{Terminology}
+\begin{description}
+\item[Sample:] One hit on the instrument.
+\item[Power:] Every sample has a certain power which is given by its audio signal \todo{how exactly is it currently measured?}.
+\end{description}
+
+\subsection{Power Value Calculation in DrumGizmo}
+The power value calculation of DrumGizmo works as follows.
+Each sample offset is detected by setting a value threshold. If a sample
+above this threshold is detected the algorithm goes backwards until it
+finds the first zero-crossing and this point is used as the sample offset.
+
+The power, which is just the power of a signal, is regularly
+calculated via sum of squares and the length of it is defined by the
+\enquote{attack length} which is in samples (note to self, make this ms instead; also, see samplesorter.cc:96).
+
+The power is then \enquote{spread out} by raising the value to the power of
+\enquote{spread}, \ie:
+\begin{align*}
+power &= \text{sum of squares in the attack range} \\
+\text{stored sample energy} &= power^{spread}
+\end{align*}
+In the code this is done in samplesorter.cc:99.
+
+\todo{We should probably store the original power and attack length in the xml
+and perform the spread calculation in the engine instead of storing the
+spread-applied value in the xml.}
+
+The attack is the same across all samples within an instrument so the
+energies can be compared.
+
+\subsection{Sample Distribution in DrumGizmo Kits}
+
+\subsection{Current Algorithm of DrumGizmo}
+The current sample selection algorithm of DrumGizmo works as follows. The engine gets a value $l \in [0,1]$ which gives the strength of the sample to be triggered. The power values of a drum kit are floating point numbers without any restriction\todo{do they have to be positive?}. Then the value $l$ is mapped using the canonical bijections between $[0,1]$ and $[p_{\min}, p_{max}]$ and afterwards shifted\todo{by which amount?}. We call this new value $p$.
+
+Now the real sample selection algorithm starts. We select a value $p'$ drawn uniformly at random from $\mathcal{N}(p', \sigma^2)$, where $\sigma$ is a parameter specified by the user\todo{Actually, it is not. It is a value specified by the user \emph{multiplied} with the power range divided by the number of samples.}. Now we simply find the sample $s$ with the power $q$ which is closest to $p'$ -- ties are broken such that the first minimal value is chosen (which is problematic as explained below). In case $s$ is equal to the last sample that we played we repeat this process, otherwise we return $s$. If we did not find another sample than the last played after $4$ iterations, we just return the last played sample.
+
+\subsection{Drawbacks}
+I will list a number of drawbacks of this algorithm in the following. These will be an inspiration for the requirements that are formulated later.
+
+\paragraph{Equal Powers.} In case certain samples have the same power value. Always the first of them in the list of samples is chosen because of the way we break ties. This is obviously wrong and samples should instead be chosen either in a random way or, probably better, in a round robin way.
+
+\paragraph{Middle Samples.} Consider the case where there are 3 samples which almost have the same power value, and especially consider the sample which has the power value in the middle. This sample has a very low probability of being chosen by the current algorithm as it always chooses the closest sample. However, the range for which this sample is the closest sample is very small. Thus, an improved algorithm has to be robust to such small perturbations of power values.
+
+\paragraph{Unequal Probabilities.} More generally, we want that samples which are close, should have a similar probability of being chosen by the sampling algorithm (summed over all possible values of $l$).
+
+\paragraph{History of Size One.} Currently, we only remember the last sample that was played. This seriously limits us to select samples well. Imagine that there are several samples of similar power. We currently rely on the normal distribution solving this, even though using round robin like sampling would result in more diverse samples being chosen while not deviating significantly more from $l$.
+
+\subsection{Related Work}
+Velocity Layers. Round Robin and Random Selection. Is there actually any academic related work? What is actually the mathematical problem that we are trying to solve?
+
+\section{Requirements}
+% \paragraph{Normal Distribution.} The samples should roughly be drawn from a normal distribution.
+\paragraph{Close Sample.} The chosen sample should be reasonably close to the requested power value.
+\paragraph{Avoid Same Samples.} When we have multiple samples to choose from we should always take one which was last played far enough in the past.
+\paragraph{Randomization.} To avoid patterns (like e.g. in round robin), we want some form of randomization.
+\paragraph{Equal Probability.} Locally, samples should have almost the same probability of being chosen.
+
+\section{Suggested Algorithms}
+\subsection{Resampling}
+Resample from normal distribution until we find a fitting sample, aborting after a certain amount of tries. This seems rather wasteful.
+
+\subsection{Objective Function}
+Define an objective function which depends on the history of samples and the current power requested. The sample that we choose is then the one which minimizes this objective function. This is a nice way to balance the two contradictory requirements of choosing a sample which is close to the requested power and avoiding samples that were just played.
+
+The rough algorithm should go as follows. A sample with power $p$ is requested.
+% We draw one sample from the normal distribution around $l$ and call it $p$.
+For any sample $q$, let $t_q$ be the time at which $q$ was played last (the unit does not matter as it is parametrized by $\beta$ anyway), and let $r(q,t)$ be a random number generator uniformly producing numbers in the range $[0,1]$. At the current time $t$, we now want to find the sample $q$ minimizing the objective function
+\[
+ f(q, t) \coloneqq \alpha \cdot (p-q)^2 + \beta \cdot (t_q - t)^{-2} + \gamma \cdot r(q,t).
+\]
+We have to ensure that $t_q \neq t$ to avoid division by zero.\todo{Adapt to what is actually in the code.}
+
+\section{Implementation Details}
+Instead of iterating over all samples and computing the objective function, we can simply do a binary search for the value closest to the requested power and then search down and upwards until we can be sure that there cannot be any better value. This is the case as soon as the first summand exceeds the best found value.
+
+\section{Experiments}
+\subsection{Methods of Evaluation}
+\begin{itemize}
+\item mean squared error to straight line from min power to max power
+\item histogram of distance to closest next same sample (to check that diverse samples are selected; picture!). Or maybe some other measurement, not sure.
+\item Histogram of how often samples were played. This should be a uniforum distribution (at least locally). Globally it might diverge from that as the sampling is worse for some powers.
+\item mean square error to gaussian curve (to check that we still use something similar to a normal distribution; picture!)
+\item Upload sound samples of the different algorithms to a server and link to them.
+\end{itemize}
+\subsection{Experimental Evaluation}
+
+\section{Conclusion}
+What is the best algorithm and why?
+
+%\newpage
+\nocite{*}
+\bibliographystyle{IEEEbib}
+\bibliography{LAC-20} % requires file lac-20.bib
+
+\end{document}
diff --git a/sampling_alg_lac2020/Makefile b/sampling_alg_lac2020/Makefile
new file mode 100644
index 0000000..a593d1d
--- /dev/null
+++ b/sampling_alg_lac2020/Makefile
@@ -0,0 +1,3 @@
+all:
+ # bibtex LAC-20 || pdflatex LAC-20.tex
+ pdflatex LAC-20.tex