EvoScientist 0.0.1.dev3__py3-none-any.whl → 0.1.0rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. EvoScientist/EvoScientist.py +17 -49
  2. EvoScientist/backends.py +0 -26
  3. EvoScientist/cli.py +1109 -255
  4. EvoScientist/middleware.py +8 -61
  5. EvoScientist/stream/__init__.py +0 -25
  6. EvoScientist/stream/utils.py +16 -23
  7. EvoScientist/tools.py +0 -64
  8. evoscientist-0.1.0rc1.dist-info/METADATA +199 -0
  9. evoscientist-0.1.0rc1.dist-info/RECORD +21 -0
  10. evoscientist-0.1.0rc1.dist-info/entry_points.txt +2 -0
  11. EvoScientist/memory.py +0 -715
  12. EvoScientist/paths.py +0 -45
  13. EvoScientist/skills/accelerate/SKILL.md +0 -332
  14. EvoScientist/skills/accelerate/references/custom-plugins.md +0 -453
  15. EvoScientist/skills/accelerate/references/megatron-integration.md +0 -489
  16. EvoScientist/skills/accelerate/references/performance.md +0 -525
  17. EvoScientist/skills/bitsandbytes/SKILL.md +0 -411
  18. EvoScientist/skills/bitsandbytes/references/memory-optimization.md +0 -521
  19. EvoScientist/skills/bitsandbytes/references/qlora-training.md +0 -521
  20. EvoScientist/skills/bitsandbytes/references/quantization-formats.md +0 -447
  21. EvoScientist/skills/find-skills/SKILL.md +0 -133
  22. EvoScientist/skills/find-skills/scripts/install_skill.py +0 -211
  23. EvoScientist/skills/flash-attention/SKILL.md +0 -367
  24. EvoScientist/skills/flash-attention/references/benchmarks.md +0 -215
  25. EvoScientist/skills/flash-attention/references/transformers-integration.md +0 -293
  26. EvoScientist/skills/llama-cpp/SKILL.md +0 -258
  27. EvoScientist/skills/llama-cpp/references/optimization.md +0 -89
  28. EvoScientist/skills/llama-cpp/references/quantization.md +0 -213
  29. EvoScientist/skills/llama-cpp/references/server.md +0 -125
  30. EvoScientist/skills/lm-evaluation-harness/SKILL.md +0 -490
  31. EvoScientist/skills/lm-evaluation-harness/references/api-evaluation.md +0 -490
  32. EvoScientist/skills/lm-evaluation-harness/references/benchmark-guide.md +0 -488
  33. EvoScientist/skills/lm-evaluation-harness/references/custom-tasks.md +0 -602
  34. EvoScientist/skills/lm-evaluation-harness/references/distributed-eval.md +0 -519
  35. EvoScientist/skills/ml-paper-writing/SKILL.md +0 -937
  36. EvoScientist/skills/ml-paper-writing/references/checklists.md +0 -361
  37. EvoScientist/skills/ml-paper-writing/references/citation-workflow.md +0 -562
  38. EvoScientist/skills/ml-paper-writing/references/reviewer-guidelines.md +0 -367
  39. EvoScientist/skills/ml-paper-writing/references/sources.md +0 -159
  40. EvoScientist/skills/ml-paper-writing/references/writing-guide.md +0 -476
  41. EvoScientist/skills/ml-paper-writing/templates/README.md +0 -251
  42. EvoScientist/skills/ml-paper-writing/templates/aaai2026/README.md +0 -534
  43. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +0 -144
  44. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +0 -952
  45. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +0 -111
  46. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +0 -1493
  47. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +0 -315
  48. EvoScientist/skills/ml-paper-writing/templates/acl/README.md +0 -50
  49. EvoScientist/skills/ml-paper-writing/templates/acl/acl.sty +0 -312
  50. EvoScientist/skills/ml-paper-writing/templates/acl/acl_latex.tex +0 -377
  51. EvoScientist/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +0 -101
  52. EvoScientist/skills/ml-paper-writing/templates/acl/acl_natbib.bst +0 -1940
  53. EvoScientist/skills/ml-paper-writing/templates/acl/anthology.bib.txt +0 -26
  54. EvoScientist/skills/ml-paper-writing/templates/acl/custom.bib +0 -70
  55. EvoScientist/skills/ml-paper-writing/templates/acl/formatting.md +0 -326
  56. EvoScientist/skills/ml-paper-writing/templates/colm2025/README.md +0 -3
  57. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +0 -11
  58. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +0 -1440
  59. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  60. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +0 -218
  61. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +0 -305
  62. EvoScientist/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +0 -485
  63. EvoScientist/skills/ml-paper-writing/templates/colm2025/math_commands.tex +0 -508
  64. EvoScientist/skills/ml-paper-writing/templates/colm2025/natbib.sty +0 -1246
  65. EvoScientist/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +0 -485
  66. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +0 -24
  67. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +0 -1440
  68. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  69. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +0 -246
  70. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +0 -414
  71. EvoScientist/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +0 -508
  72. EvoScientist/skills/ml-paper-writing/templates/iclr2026/natbib.sty +0 -1246
  73. EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithm.sty +0 -79
  74. EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +0 -201
  75. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.bib +0 -75
  76. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
  77. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.tex +0 -662
  78. EvoScientist/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +0 -864
  79. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.bst +0 -1443
  80. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.sty +0 -767
  81. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  82. EvoScientist/skills/ml-paper-writing/templates/neurips2025/Makefile +0 -36
  83. EvoScientist/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +0 -53
  84. EvoScientist/skills/ml-paper-writing/templates/neurips2025/main.tex +0 -38
  85. EvoScientist/skills/ml-paper-writing/templates/neurips2025/neurips.sty +0 -382
  86. EvoScientist/skills/peft/SKILL.md +0 -431
  87. EvoScientist/skills/peft/references/advanced-usage.md +0 -514
  88. EvoScientist/skills/peft/references/troubleshooting.md +0 -480
  89. EvoScientist/skills/ray-data/SKILL.md +0 -326
  90. EvoScientist/skills/ray-data/references/integration.md +0 -82
  91. EvoScientist/skills/ray-data/references/transformations.md +0 -83
  92. EvoScientist/skills/skill-creator/LICENSE.txt +0 -202
  93. EvoScientist/skills/skill-creator/SKILL.md +0 -356
  94. EvoScientist/skills/skill-creator/references/output-patterns.md +0 -82
  95. EvoScientist/skills/skill-creator/references/workflows.md +0 -28
  96. EvoScientist/skills/skill-creator/scripts/init_skill.py +0 -303
  97. EvoScientist/skills/skill-creator/scripts/package_skill.py +0 -110
  98. EvoScientist/skills/skill-creator/scripts/quick_validate.py +0 -95
  99. EvoScientist/skills_manager.py +0 -392
  100. EvoScientist/stream/display.py +0 -604
  101. EvoScientist/stream/events.py +0 -415
  102. EvoScientist/stream/state.py +0 -343
  103. evoscientist-0.0.1.dev3.dist-info/METADATA +0 -321
  104. evoscientist-0.0.1.dev3.dist-info/RECORD +0 -113
  105. evoscientist-0.0.1.dev3.dist-info/entry_points.txt +0 -5
  106. {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/WHEEL +0 -0
  107. {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/licenses/LICENSE +0 -0
  108. {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/top_level.txt +0 -0
@@ -1,1440 +0,0 @@
1
- %% File: `iclr2024.bst'
2
- %% A copy of iclm2010.bst, which is a modification of `plainnl.bst' for use with natbib package
3
- %%
4
- %% Copyright 2010 Hal Daum\'e III
5
- %% Modified by J. Fürnkranz
6
- %% - Changed labels from (X and Y, 2000) to (X & Y, 2000)
7
- %%
8
- %% Copyright 1993-2007 Patrick W Daly
9
- %% Max-Planck-Institut f\"ur Sonnensystemforschung
10
- %% Max-Planck-Str. 2
11
- %% D-37191 Katlenburg-Lindau
12
- %% Germany
13
- %% E-mail: daly@mps.mpg.de
14
- %%
15
- %% This program can be redistributed and/or modified under the terms
16
- %% of the LaTeX Project Public License Distributed from CTAN
17
- %% archives in directory macros/latex/base/lppl.txt; either
18
- %% version 1 of the License, or any later version.
19
- %%
20
- % Version and source file information:
21
- % \ProvidesFile{icml2010.mbs}[2007/11/26 1.93 (PWD)]
22
- %
23
- % BibTeX `plainnat' family
24
- % version 0.99b for BibTeX versions 0.99a or later,
25
- % for LaTeX versions 2.09 and 2e.
26
- %
27
- % For use with the `natbib.sty' package; emulates the corresponding
28
- % member of the `plain' family, but with author-year citations.
29
- %
30
- % With version 6.0 of `natbib.sty', it may also be used for numerical
31
- % citations, while retaining the commands \citeauthor, \citefullauthor,
32
- % and \citeyear to print the corresponding information.
33
- %
34
- % For version 7.0 of `natbib.sty', the KEY field replaces missing
35
- % authors/editors, and the date is left blank in \bibitem.
36
- %
37
- % Includes field EID for the sequence/citation number of electronic journals
38
- % which is used instead of page numbers.
39
- %
40
- % Includes fields ISBN and ISSN.
41
- %
42
- % Includes field URL for Internet addresses.
43
- %
44
- % Includes field DOI for Digital Object Idenfifiers.
45
- %
46
- % Works best with the url.sty package of Donald Arseneau.
47
- %
48
- % Works with identical authors and year are further sorted by
49
- % citation key, to preserve any natural sequence.
50
- %
51
- ENTRY
52
- { address
53
- author
54
- booktitle
55
- chapter
56
- doi
57
- eid
58
- edition
59
- editor
60
- howpublished
61
- institution
62
- isbn
63
- issn
64
- journal
65
- key
66
- month
67
- note
68
- number
69
- organization
70
- pages
71
- publisher
72
- school
73
- series
74
- title
75
- type
76
- url
77
- volume
78
- year
79
- }
80
- {}
81
- { label extra.label sort.label short.list }
82
-
83
- INTEGERS { output.state before.all mid.sentence after.sentence after.block }
84
-
85
- FUNCTION {init.state.consts}
86
- { #0 'before.all :=
87
- #1 'mid.sentence :=
88
- #2 'after.sentence :=
89
- #3 'after.block :=
90
- }
91
-
92
- STRINGS { s t }
93
-
94
- FUNCTION {output.nonnull}
95
- { 's :=
96
- output.state mid.sentence =
97
- { ", " * write$ }
98
- { output.state after.block =
99
- { add.period$ write$
100
- newline$
101
- "\newblock " write$
102
- }
103
- { output.state before.all =
104
- 'write$
105
- { add.period$ " " * write$ }
106
- if$
107
- }
108
- if$
109
- mid.sentence 'output.state :=
110
- }
111
- if$
112
- s
113
- }
114
-
115
- FUNCTION {output}
116
- { duplicate$ empty$
117
- 'pop$
118
- 'output.nonnull
119
- if$
120
- }
121
-
122
- FUNCTION {output.check}
123
- { 't :=
124
- duplicate$ empty$
125
- { pop$ "empty " t * " in " * cite$ * warning$ }
126
- 'output.nonnull
127
- if$
128
- }
129
-
130
- FUNCTION {fin.entry}
131
- { add.period$
132
- write$
133
- newline$
134
- }
135
-
136
- FUNCTION {new.block}
137
- { output.state before.all =
138
- 'skip$
139
- { after.block 'output.state := }
140
- if$
141
- }
142
-
143
- FUNCTION {new.sentence}
144
- { output.state after.block =
145
- 'skip$
146
- { output.state before.all =
147
- 'skip$
148
- { after.sentence 'output.state := }
149
- if$
150
- }
151
- if$
152
- }
153
-
154
- FUNCTION {not}
155
- { { #0 }
156
- { #1 }
157
- if$
158
- }
159
-
160
- FUNCTION {and}
161
- { 'skip$
162
- { pop$ #0 }
163
- if$
164
- }
165
-
166
- FUNCTION {or}
167
- { { pop$ #1 }
168
- 'skip$
169
- if$
170
- }
171
-
172
- FUNCTION {new.block.checka}
173
- { empty$
174
- 'skip$
175
- 'new.block
176
- if$
177
- }
178
-
179
- FUNCTION {new.block.checkb}
180
- { empty$
181
- swap$ empty$
182
- and
183
- 'skip$
184
- 'new.block
185
- if$
186
- }
187
-
188
- FUNCTION {new.sentence.checka}
189
- { empty$
190
- 'skip$
191
- 'new.sentence
192
- if$
193
- }
194
-
195
- FUNCTION {new.sentence.checkb}
196
- { empty$
197
- swap$ empty$
198
- and
199
- 'skip$
200
- 'new.sentence
201
- if$
202
- }
203
-
204
- FUNCTION {field.or.null}
205
- { duplicate$ empty$
206
- { pop$ "" }
207
- 'skip$
208
- if$
209
- }
210
-
211
- FUNCTION {emphasize}
212
- { duplicate$ empty$
213
- { pop$ "" }
214
- { "\emph{" swap$ * "}" * }
215
- if$
216
- }
217
-
218
- INTEGERS { nameptr namesleft numnames }
219
-
220
- FUNCTION {format.names}
221
- { 's :=
222
- #1 'nameptr :=
223
- s num.names$ 'numnames :=
224
- numnames 'namesleft :=
225
- { namesleft #0 > }
226
- { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
227
- nameptr #1 >
228
- { namesleft #1 >
229
- { ", " * t * }
230
- { numnames #2 >
231
- { "," * }
232
- 'skip$
233
- if$
234
- t "others" =
235
- { " et~al." * }
236
- { " and " * t * }
237
- if$
238
- }
239
- if$
240
- }
241
- 't
242
- if$
243
- nameptr #1 + 'nameptr :=
244
- namesleft #1 - 'namesleft :=
245
- }
246
- while$
247
- }
248
-
249
- FUNCTION {format.key}
250
- { empty$
251
- { key field.or.null }
252
- { "" }
253
- if$
254
- }
255
-
256
- FUNCTION {format.authors}
257
- { author empty$
258
- { "" }
259
- { author format.names }
260
- if$
261
- }
262
-
263
- FUNCTION {format.editors}
264
- { editor empty$
265
- { "" }
266
- { editor format.names
267
- editor num.names$ #1 >
268
- { " (eds.)" * }
269
- { " (ed.)" * }
270
- if$
271
- }
272
- if$
273
- }
274
-
275
- FUNCTION {format.isbn}
276
- { isbn empty$
277
- { "" }
278
- { new.block "ISBN " isbn * }
279
- if$
280
- }
281
-
282
- FUNCTION {format.issn}
283
- { issn empty$
284
- { "" }
285
- { new.block "ISSN " issn * }
286
- if$
287
- }
288
-
289
- FUNCTION {format.url}
290
- { url empty$
291
- { "" }
292
- { new.block "URL \url{" url * "}" * }
293
- if$
294
- }
295
-
296
- FUNCTION {format.doi}
297
- { doi empty$
298
- { "" }
299
- { new.block "\doi{" doi * "}" * }
300
- if$
301
- }
302
-
303
- FUNCTION {format.title}
304
- { title empty$
305
- { "" }
306
- { title "t" change.case$ }
307
- if$
308
- }
309
-
310
- FUNCTION {format.full.names}
311
- {'s :=
312
- #1 'nameptr :=
313
- s num.names$ 'numnames :=
314
- numnames 'namesleft :=
315
- { namesleft #0 > }
316
- { s nameptr
317
- "{vv~}{ll}" format.name$ 't :=
318
- nameptr #1 >
319
- {
320
- namesleft #1 >
321
- { ", " * t * }
322
- {
323
- numnames #2 >
324
- { "," * }
325
- 'skip$
326
- if$
327
- t "others" =
328
- { " et~al." * }
329
- { " and " * t * }
330
- if$
331
- }
332
- if$
333
- }
334
- 't
335
- if$
336
- nameptr #1 + 'nameptr :=
337
- namesleft #1 - 'namesleft :=
338
- }
339
- while$
340
- }
341
-
342
- FUNCTION {author.editor.full}
343
- { author empty$
344
- { editor empty$
345
- { "" }
346
- { editor format.full.names }
347
- if$
348
- }
349
- { author format.full.names }
350
- if$
351
- }
352
-
353
- FUNCTION {author.full}
354
- { author empty$
355
- { "" }
356
- { author format.full.names }
357
- if$
358
- }
359
-
360
- FUNCTION {editor.full}
361
- { editor empty$
362
- { "" }
363
- { editor format.full.names }
364
- if$
365
- }
366
-
367
- FUNCTION {make.full.names}
368
- { type$ "book" =
369
- type$ "inbook" =
370
- or
371
- 'author.editor.full
372
- { type$ "proceedings" =
373
- 'editor.full
374
- 'author.full
375
- if$
376
- }
377
- if$
378
- }
379
-
380
- FUNCTION {output.bibitem}
381
- { newline$
382
- "\bibitem[" write$
383
- label write$
384
- ")" make.full.names duplicate$ short.list =
385
- { pop$ }
386
- { * }
387
- if$
388
- "]{" * write$
389
- cite$ write$
390
- "}" write$
391
- newline$
392
- ""
393
- before.all 'output.state :=
394
- }
395
-
396
- FUNCTION {n.dashify}
397
- { 't :=
398
- ""
399
- { t empty$ not }
400
- { t #1 #1 substring$ "-" =
401
- { t #1 #2 substring$ "--" = not
402
- { "--" *
403
- t #2 global.max$ substring$ 't :=
404
- }
405
- { { t #1 #1 substring$ "-" = }
406
- { "-" *
407
- t #2 global.max$ substring$ 't :=
408
- }
409
- while$
410
- }
411
- if$
412
- }
413
- { t #1 #1 substring$ *
414
- t #2 global.max$ substring$ 't :=
415
- }
416
- if$
417
- }
418
- while$
419
- }
420
-
421
- FUNCTION {format.date}
422
- { year duplicate$ empty$
423
- { "empty year in " cite$ * warning$
424
- pop$ "" }
425
- 'skip$
426
- if$
427
- month empty$
428
- 'skip$
429
- { month
430
- " " * swap$ *
431
- }
432
- if$
433
- extra.label *
434
- }
435
-
436
- FUNCTION {format.btitle}
437
- { title emphasize
438
- }
439
-
440
- FUNCTION {tie.or.space.connect}
441
- { duplicate$ text.length$ #3 <
442
- { "~" }
443
- { " " }
444
- if$
445
- swap$ * *
446
- }
447
-
448
- FUNCTION {either.or.check}
449
- { empty$
450
- 'pop$
451
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
452
- if$
453
- }
454
-
455
- FUNCTION {format.bvolume}
456
- { volume empty$
457
- { "" }
458
- { "volume" volume tie.or.space.connect
459
- series empty$
460
- 'skip$
461
- { " of " * series emphasize * }
462
- if$
463
- "volume and number" number either.or.check
464
- }
465
- if$
466
- }
467
-
468
- FUNCTION {format.number.series}
469
- { volume empty$
470
- { number empty$
471
- { series field.or.null }
472
- { output.state mid.sentence =
473
- { "number" }
474
- { "Number" }
475
- if$
476
- number tie.or.space.connect
477
- series empty$
478
- { "there's a number but no series in " cite$ * warning$ }
479
- { " in " * series * }
480
- if$
481
- }
482
- if$
483
- }
484
- { "" }
485
- if$
486
- }
487
-
488
- FUNCTION {format.edition}
489
- { edition empty$
490
- { "" }
491
- { output.state mid.sentence =
492
- { edition "l" change.case$ " edition" * }
493
- { edition "t" change.case$ " edition" * }
494
- if$
495
- }
496
- if$
497
- }
498
-
499
- INTEGERS { multiresult }
500
-
501
- FUNCTION {multi.page.check}
502
- { 't :=
503
- #0 'multiresult :=
504
- { multiresult not
505
- t empty$ not
506
- and
507
- }
508
- { t #1 #1 substring$
509
- duplicate$ "-" =
510
- swap$ duplicate$ "," =
511
- swap$ "+" =
512
- or or
513
- { #1 'multiresult := }
514
- { t #2 global.max$ substring$ 't := }
515
- if$
516
- }
517
- while$
518
- multiresult
519
- }
520
-
521
- FUNCTION {format.pages}
522
- { pages empty$
523
- { "" }
524
- { pages multi.page.check
525
- { "pp.\ " pages n.dashify tie.or.space.connect }
526
- { "pp.\ " pages tie.or.space.connect }
527
- if$
528
- }
529
- if$
530
- }
531
-
532
- FUNCTION {format.eid}
533
- { eid empty$
534
- { "" }
535
- { "art." eid tie.or.space.connect }
536
- if$
537
- }
538
-
539
- FUNCTION {format.vol.num.pages}
540
- { volume field.or.null
541
- number empty$
542
- 'skip$
543
- { "\penalty0 (" number * ")" * *
544
- volume empty$
545
- { "there's a number but no volume in " cite$ * warning$ }
546
- 'skip$
547
- if$
548
- }
549
- if$
550
- pages empty$
551
- 'skip$
552
- { duplicate$ empty$
553
- { pop$ format.pages }
554
- { ":\penalty0 " * pages n.dashify * }
555
- if$
556
- }
557
- if$
558
- }
559
-
560
- FUNCTION {format.vol.num.eid}
561
- { volume field.or.null
562
- number empty$
563
- 'skip$
564
- { "\penalty0 (" number * ")" * *
565
- volume empty$
566
- { "there's a number but no volume in " cite$ * warning$ }
567
- 'skip$
568
- if$
569
- }
570
- if$
571
- eid empty$
572
- 'skip$
573
- { duplicate$ empty$
574
- { pop$ format.eid }
575
- { ":\penalty0 " * eid * }
576
- if$
577
- }
578
- if$
579
- }
580
-
581
- FUNCTION {format.chapter.pages}
582
- { chapter empty$
583
- 'format.pages
584
- { type empty$
585
- { "chapter" }
586
- { type "l" change.case$ }
587
- if$
588
- chapter tie.or.space.connect
589
- pages empty$
590
- 'skip$
591
- { ", " * format.pages * }
592
- if$
593
- }
594
- if$
595
- }
596
-
597
- FUNCTION {format.in.ed.booktitle}
598
- { booktitle empty$
599
- { "" }
600
- { editor empty$
601
- { "In " booktitle emphasize * }
602
- { "In " format.editors * ", " * booktitle emphasize * }
603
- if$
604
- }
605
- if$
606
- }
607
-
608
- FUNCTION {empty.misc.check}
609
- { author empty$ title empty$ howpublished empty$
610
- month empty$ year empty$ note empty$
611
- and and and and and
612
- key empty$ not and
613
- { "all relevant fields are empty in " cite$ * warning$ }
614
- 'skip$
615
- if$
616
- }
617
-
618
- FUNCTION {format.thesis.type}
619
- { type empty$
620
- 'skip$
621
- { pop$
622
- type "t" change.case$
623
- }
624
- if$
625
- }
626
-
627
- FUNCTION {format.tr.number}
628
- { type empty$
629
- { "Technical Report" }
630
- 'type
631
- if$
632
- number empty$
633
- { "t" change.case$ }
634
- { number tie.or.space.connect }
635
- if$
636
- }
637
-
638
- FUNCTION {format.article.crossref}
639
- { key empty$
640
- { journal empty$
641
- { "need key or journal for " cite$ * " to crossref " * crossref *
642
- warning$
643
- ""
644
- }
645
- { "In \emph{" journal * "}" * }
646
- if$
647
- }
648
- { "In " }
649
- if$
650
- " \citet{" * crossref * "}" *
651
- }
652
-
653
- FUNCTION {format.book.crossref}
654
- { volume empty$
655
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
656
- "In "
657
- }
658
- { "Volume" volume tie.or.space.connect
659
- " of " *
660
- }
661
- if$
662
- editor empty$
663
- editor field.or.null author field.or.null =
664
- or
665
- { key empty$
666
- { series empty$
667
- { "need editor, key, or series for " cite$ * " to crossref " *
668
- crossref * warning$
669
- "" *
670
- }
671
- { "\emph{" * series * "}" * }
672
- if$
673
- }
674
- 'skip$
675
- if$
676
- }
677
- 'skip$
678
- if$
679
- " \citet{" * crossref * "}" *
680
- }
681
-
682
- FUNCTION {format.incoll.inproc.crossref}
683
- { editor empty$
684
- editor field.or.null author field.or.null =
685
- or
686
- { key empty$
687
- { booktitle empty$
688
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
689
- crossref * warning$
690
- ""
691
- }
692
- { "In \emph{" booktitle * "}" * }
693
- if$
694
- }
695
- { "In " }
696
- if$
697
- }
698
- { "In " }
699
- if$
700
- " \citet{" * crossref * "}" *
701
- }
702
-
703
- FUNCTION {article}
704
- { output.bibitem
705
- format.authors "author" output.check
706
- author format.key output
707
- new.block
708
- format.title "title" output.check
709
- new.block
710
- crossref missing$
711
- { journal emphasize "journal" output.check
712
- eid empty$
713
- { format.vol.num.pages output }
714
- { format.vol.num.eid output }
715
- if$
716
- format.date "year" output.check
717
- }
718
- { format.article.crossref output.nonnull
719
- eid empty$
720
- { format.pages output }
721
- { format.eid output }
722
- if$
723
- }
724
- if$
725
- format.issn output
726
- format.doi output
727
- format.url output
728
- new.block
729
- note output
730
- fin.entry
731
- }
732
-
733
- FUNCTION {book}
734
- { output.bibitem
735
- author empty$
736
- { format.editors "author and editor" output.check
737
- editor format.key output
738
- }
739
- { format.authors output.nonnull
740
- crossref missing$
741
- { "author and editor" editor either.or.check }
742
- 'skip$
743
- if$
744
- }
745
- if$
746
- new.block
747
- format.btitle "title" output.check
748
- crossref missing$
749
- { format.bvolume output
750
- new.block
751
- format.number.series output
752
- new.sentence
753
- publisher "publisher" output.check
754
- address output
755
- }
756
- { new.block
757
- format.book.crossref output.nonnull
758
- }
759
- if$
760
- format.edition output
761
- format.date "year" output.check
762
- format.isbn output
763
- format.doi output
764
- format.url output
765
- new.block
766
- note output
767
- fin.entry
768
- }
769
-
770
- FUNCTION {booklet}
771
- { output.bibitem
772
- format.authors output
773
- author format.key output
774
- new.block
775
- format.title "title" output.check
776
- howpublished address new.block.checkb
777
- howpublished output
778
- address output
779
- format.date output
780
- format.isbn output
781
- format.doi output
782
- format.url output
783
- new.block
784
- note output
785
- fin.entry
786
- }
787
-
788
- FUNCTION {inbook}
789
- { output.bibitem
790
- author empty$
791
- { format.editors "author and editor" output.check
792
- editor format.key output
793
- }
794
- { format.authors output.nonnull
795
- crossref missing$
796
- { "author and editor" editor either.or.check }
797
- 'skip$
798
- if$
799
- }
800
- if$
801
- new.block
802
- format.btitle "title" output.check
803
- crossref missing$
804
- { format.bvolume output
805
- format.chapter.pages "chapter and pages" output.check
806
- new.block
807
- format.number.series output
808
- new.sentence
809
- publisher "publisher" output.check
810
- address output
811
- }
812
- { format.chapter.pages "chapter and pages" output.check
813
- new.block
814
- format.book.crossref output.nonnull
815
- }
816
- if$
817
- format.edition output
818
- format.date "year" output.check
819
- format.isbn output
820
- format.doi output
821
- format.url output
822
- new.block
823
- note output
824
- fin.entry
825
- }
826
-
827
- FUNCTION {incollection}
828
- { output.bibitem
829
- format.authors "author" output.check
830
- author format.key output
831
- new.block
832
- format.title "title" output.check
833
- new.block
834
- crossref missing$
835
- { format.in.ed.booktitle "booktitle" output.check
836
- format.bvolume output
837
- format.number.series output
838
- format.chapter.pages output
839
- new.sentence
840
- publisher "publisher" output.check
841
- address output
842
- format.edition output
843
- format.date "year" output.check
844
- }
845
- { format.incoll.inproc.crossref output.nonnull
846
- format.chapter.pages output
847
- }
848
- if$
849
- format.isbn output
850
- format.doi output
851
- format.url output
852
- new.block
853
- note output
854
- fin.entry
855
- }
856
-
857
- FUNCTION {inproceedings}
858
- { output.bibitem
859
- format.authors "author" output.check
860
- author format.key output
861
- new.block
862
- format.title "title" output.check
863
- new.block
864
- crossref missing$
865
- { format.in.ed.booktitle "booktitle" output.check
866
- format.bvolume output
867
- format.number.series output
868
- format.pages output
869
- address empty$
870
- { organization publisher new.sentence.checkb
871
- organization output
872
- publisher output
873
- format.date "year" output.check
874
- }
875
- { address output.nonnull
876
- format.date "year" output.check
877
- new.sentence
878
- organization output
879
- publisher output
880
- }
881
- if$
882
- }
883
- { format.incoll.inproc.crossref output.nonnull
884
- format.pages output
885
- }
886
- if$
887
- format.isbn output
888
- format.doi output
889
- format.url output
890
- new.block
891
- note output
892
- fin.entry
893
- }
894
-
895
- FUNCTION {conference} { inproceedings }
896
-
897
- FUNCTION {manual}
898
- { output.bibitem
899
- format.authors output
900
- author format.key output
901
- new.block
902
- format.btitle "title" output.check
903
- organization address new.block.checkb
904
- organization output
905
- address output
906
- format.edition output
907
- format.date output
908
- format.url output
909
- new.block
910
- note output
911
- fin.entry
912
- }
913
-
914
- FUNCTION {mastersthesis}
915
- { output.bibitem
916
- format.authors "author" output.check
917
- author format.key output
918
- new.block
919
- format.title "title" output.check
920
- new.block
921
- "Master's thesis" format.thesis.type output.nonnull
922
- school "school" output.check
923
- address output
924
- format.date "year" output.check
925
- format.url output
926
- new.block
927
- note output
928
- fin.entry
929
- }
930
-
931
- FUNCTION {misc}
932
- { output.bibitem
933
- format.authors output
934
- author format.key output
935
- title howpublished new.block.checkb
936
- format.title output
937
- howpublished new.block.checka
938
- howpublished output
939
- format.date output
940
- format.issn output
941
- format.url output
942
- new.block
943
- note output
944
- fin.entry
945
- empty.misc.check
946
- }
947
-
948
- FUNCTION {phdthesis}
949
- { output.bibitem
950
- format.authors "author" output.check
951
- author format.key output
952
- new.block
953
- format.btitle "title" output.check
954
- new.block
955
- "PhD thesis" format.thesis.type output.nonnull
956
- school "school" output.check
957
- address output
958
- format.date "year" output.check
959
- format.url output
960
- new.block
961
- note output
962
- fin.entry
963
- }
964
-
965
- FUNCTION {proceedings}
966
- { output.bibitem
967
- format.editors output
968
- editor format.key output
969
- new.block
970
- format.btitle "title" output.check
971
- format.bvolume output
972
- format.number.series output
973
- address output
974
- format.date "year" output.check
975
- new.sentence
976
- organization output
977
- publisher output
978
- format.isbn output
979
- format.doi output
980
- format.url output
981
- new.block
982
- note output
983
- fin.entry
984
- }
985
-
986
- FUNCTION {techreport}
987
- { output.bibitem
988
- format.authors "author" output.check
989
- author format.key output
990
- new.block
991
- format.title "title" output.check
992
- new.block
993
- format.tr.number output.nonnull
994
- institution "institution" output.check
995
- address output
996
- format.date "year" output.check
997
- format.url output
998
- new.block
999
- note output
1000
- fin.entry
1001
- }
1002
-
1003
- FUNCTION {unpublished}
1004
- { output.bibitem
1005
- format.authors "author" output.check
1006
- author format.key output
1007
- new.block
1008
- format.title "title" output.check
1009
- new.block
1010
- note "note" output.check
1011
- format.date output
1012
- format.url output
1013
- fin.entry
1014
- }
1015
-
1016
- FUNCTION {default.type} { misc }
1017
-
1018
-
1019
- MACRO {jan} {"January"}
1020
-
1021
- MACRO {feb} {"February"}
1022
-
1023
- MACRO {mar} {"March"}
1024
-
1025
- MACRO {apr} {"April"}
1026
-
1027
- MACRO {may} {"May"}
1028
-
1029
- MACRO {jun} {"June"}
1030
-
1031
- MACRO {jul} {"July"}
1032
-
1033
- MACRO {aug} {"August"}
1034
-
1035
- MACRO {sep} {"September"}
1036
-
1037
- MACRO {oct} {"October"}
1038
-
1039
- MACRO {nov} {"November"}
1040
-
1041
- MACRO {dec} {"December"}
1042
-
1043
-
1044
-
1045
- MACRO {acmcs} {"ACM Computing Surveys"}
1046
-
1047
- MACRO {acta} {"Acta Informatica"}
1048
-
1049
- MACRO {cacm} {"Communications of the ACM"}
1050
-
1051
- MACRO {ibmjrd} {"IBM Journal of Research and Development"}
1052
-
1053
- MACRO {ibmsj} {"IBM Systems Journal"}
1054
-
1055
- MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
1056
-
1057
- MACRO {ieeetc} {"IEEE Transactions on Computers"}
1058
-
1059
- MACRO {ieeetcad}
1060
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
1061
-
1062
- MACRO {ipl} {"Information Processing Letters"}
1063
-
1064
- MACRO {jacm} {"Journal of the ACM"}
1065
-
1066
- MACRO {jcss} {"Journal of Computer and System Sciences"}
1067
-
1068
- MACRO {scp} {"Science of Computer Programming"}
1069
-
1070
- MACRO {sicomp} {"SIAM Journal on Computing"}
1071
-
1072
- MACRO {tocs} {"ACM Transactions on Computer Systems"}
1073
-
1074
- MACRO {tods} {"ACM Transactions on Database Systems"}
1075
-
1076
- MACRO {tog} {"ACM Transactions on Graphics"}
1077
-
1078
- MACRO {toms} {"ACM Transactions on Mathematical Software"}
1079
-
1080
- MACRO {toois} {"ACM Transactions on Office Information Systems"}
1081
-
1082
- MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
1083
-
1084
- MACRO {tcs} {"Theoretical Computer Science"}
1085
-
1086
-
1087
- READ
1088
-
1089
- FUNCTION {sortify}
1090
- { purify$
1091
- "l" change.case$
1092
- }
1093
-
1094
- INTEGERS { len }
1095
-
1096
- FUNCTION {chop.word}
1097
- { 's :=
1098
- 'len :=
1099
- s #1 len substring$ =
1100
- { s len #1 + global.max$ substring$ }
1101
- 's
1102
- if$
1103
- }
1104
-
1105
- FUNCTION {format.lab.names}
1106
- { 's :=
1107
- s #1 "{vv~}{ll}" format.name$
1108
- s num.names$ duplicate$
1109
- #2 >
1110
- { pop$ " et~al." * }
1111
- { #2 <
1112
- 'skip$
1113
- { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
1114
- { " et~al." * }
1115
- { " \& " * s #2 "{vv~}{ll}" format.name$ * }
1116
- if$
1117
- }
1118
- if$
1119
- }
1120
- if$
1121
- }
1122
-
1123
- FUNCTION {author.key.label}
1124
- { author empty$
1125
- { key empty$
1126
- { cite$ #1 #3 substring$ }
1127
- 'key
1128
- if$
1129
- }
1130
- { author format.lab.names }
1131
- if$
1132
- }
1133
-
1134
- FUNCTION {author.editor.key.label}
1135
- { author empty$
1136
- { editor empty$
1137
- { key empty$
1138
- { cite$ #1 #3 substring$ }
1139
- 'key
1140
- if$
1141
- }
1142
- { editor format.lab.names }
1143
- if$
1144
- }
1145
- { author format.lab.names }
1146
- if$
1147
- }
1148
-
1149
- FUNCTION {author.key.organization.label}
1150
- { author empty$
1151
- { key empty$
1152
- { organization empty$
1153
- { cite$ #1 #3 substring$ }
1154
- { "The " #4 organization chop.word #3 text.prefix$ }
1155
- if$
1156
- }
1157
- 'key
1158
- if$
1159
- }
1160
- { author format.lab.names }
1161
- if$
1162
- }
1163
-
1164
- FUNCTION {editor.key.organization.label}
1165
- { editor empty$
1166
- { key empty$
1167
- { organization empty$
1168
- { cite$ #1 #3 substring$ }
1169
- { "The " #4 organization chop.word #3 text.prefix$ }
1170
- if$
1171
- }
1172
- 'key
1173
- if$
1174
- }
1175
- { editor format.lab.names }
1176
- if$
1177
- }
1178
-
1179
- FUNCTION {calc.short.authors}
1180
- { type$ "book" =
1181
- type$ "inbook" =
1182
- or
1183
- 'author.editor.key.label
1184
- { type$ "proceedings" =
1185
- 'editor.key.organization.label
1186
- { type$ "manual" =
1187
- 'author.key.organization.label
1188
- 'author.key.label
1189
- if$
1190
- }
1191
- if$
1192
- }
1193
- if$
1194
- 'short.list :=
1195
- }
1196
-
1197
- FUNCTION {calc.label}
1198
- { calc.short.authors
1199
- short.list
1200
- "("
1201
- *
1202
- year duplicate$ empty$
1203
- short.list key field.or.null = or
1204
- { pop$ "" }
1205
- 'skip$
1206
- if$
1207
- *
1208
- 'label :=
1209
- }
1210
-
1211
- FUNCTION {sort.format.names}
1212
- { 's :=
1213
- #1 'nameptr :=
1214
- ""
1215
- s num.names$ 'numnames :=
1216
- numnames 'namesleft :=
1217
- { namesleft #0 > }
1218
- {
1219
- s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
1220
- nameptr #1 >
1221
- {
1222
- " " *
1223
- namesleft #1 = t "others" = and
1224
- { "zzzzz" * }
1225
- { numnames #2 > nameptr #2 = and
1226
- { "zz" * year field.or.null * " " * }
1227
- 'skip$
1228
- if$
1229
- t sortify *
1230
- }
1231
- if$
1232
- }
1233
- { t sortify * }
1234
- if$
1235
- nameptr #1 + 'nameptr :=
1236
- namesleft #1 - 'namesleft :=
1237
- }
1238
- while$
1239
- }
1240
-
1241
- FUNCTION {sort.format.title}
1242
- { 't :=
1243
- "A " #2
1244
- "An " #3
1245
- "The " #4 t chop.word
1246
- chop.word
1247
- chop.word
1248
- sortify
1249
- #1 global.max$ substring$
1250
- }
1251
-
1252
- FUNCTION {author.sort}
1253
- { author empty$
1254
- { key empty$
1255
- { "to sort, need author or key in " cite$ * warning$
1256
- ""
1257
- }
1258
- { key sortify }
1259
- if$
1260
- }
1261
- { author sort.format.names }
1262
- if$
1263
- }
1264
-
1265
- FUNCTION {author.editor.sort}
1266
- { author empty$
1267
- { editor empty$
1268
- { key empty$
1269
- { "to sort, need author, editor, or key in " cite$ * warning$
1270
- ""
1271
- }
1272
- { key sortify }
1273
- if$
1274
- }
1275
- { editor sort.format.names }
1276
- if$
1277
- }
1278
- { author sort.format.names }
1279
- if$
1280
- }
1281
-
1282
- FUNCTION {author.organization.sort}
1283
- { author empty$
1284
- { organization empty$
1285
- { key empty$
1286
- { "to sort, need author, organization, or key in " cite$ * warning$
1287
- ""
1288
- }
1289
- { key sortify }
1290
- if$
1291
- }
1292
- { "The " #4 organization chop.word sortify }
1293
- if$
1294
- }
1295
- { author sort.format.names }
1296
- if$
1297
- }
1298
-
1299
- FUNCTION {editor.organization.sort}
1300
- { editor empty$
1301
- { organization empty$
1302
- { key empty$
1303
- { "to sort, need editor, organization, or key in " cite$ * warning$
1304
- ""
1305
- }
1306
- { key sortify }
1307
- if$
1308
- }
1309
- { "The " #4 organization chop.word sortify }
1310
- if$
1311
- }
1312
- { editor sort.format.names }
1313
- if$
1314
- }
1315
-
1316
-
1317
- FUNCTION {presort}
1318
- { calc.label
1319
- label sortify
1320
- " "
1321
- *
1322
- type$ "book" =
1323
- type$ "inbook" =
1324
- or
1325
- 'author.editor.sort
1326
- { type$ "proceedings" =
1327
- 'editor.organization.sort
1328
- { type$ "manual" =
1329
- 'author.organization.sort
1330
- 'author.sort
1331
- if$
1332
- }
1333
- if$
1334
- }
1335
- if$
1336
- " "
1337
- *
1338
- year field.or.null sortify
1339
- *
1340
- " "
1341
- *
1342
- cite$
1343
- *
1344
- #1 entry.max$ substring$
1345
- 'sort.label :=
1346
- sort.label *
1347
- #1 entry.max$ substring$
1348
- 'sort.key$ :=
1349
- }
1350
-
1351
- ITERATE {presort}
1352
-
1353
- SORT
1354
-
1355
- STRINGS { longest.label last.label next.extra }
1356
-
1357
- INTEGERS { longest.label.width last.extra.num number.label }
1358
-
1359
- FUNCTION {initialize.longest.label}
1360
- { "" 'longest.label :=
1361
- #0 int.to.chr$ 'last.label :=
1362
- "" 'next.extra :=
1363
- #0 'longest.label.width :=
1364
- #0 'last.extra.num :=
1365
- #0 'number.label :=
1366
- }
1367
-
1368
- FUNCTION {forward.pass}
1369
- { last.label label =
1370
- { last.extra.num #1 + 'last.extra.num :=
1371
- last.extra.num int.to.chr$ 'extra.label :=
1372
- }
1373
- { "a" chr.to.int$ 'last.extra.num :=
1374
- "" 'extra.label :=
1375
- label 'last.label :=
1376
- }
1377
- if$
1378
- number.label #1 + 'number.label :=
1379
- }
1380
-
1381
- FUNCTION {reverse.pass}
1382
- { next.extra "b" =
1383
- { "a" 'extra.label := }
1384
- 'skip$
1385
- if$
1386
- extra.label 'next.extra :=
1387
- extra.label
1388
- duplicate$ empty$
1389
- 'skip$
1390
- { "{\natexlab{" swap$ * "}}" * }
1391
- if$
1392
- 'extra.label :=
1393
- label extra.label * 'label :=
1394
- }
1395
-
1396
- EXECUTE {initialize.longest.label}
1397
-
1398
- ITERATE {forward.pass}
1399
-
1400
- REVERSE {reverse.pass}
1401
-
1402
- FUNCTION {bib.sort.order}
1403
- { sort.label 'sort.key$ :=
1404
- }
1405
-
1406
- ITERATE {bib.sort.order}
1407
-
1408
- SORT
1409
-
1410
- FUNCTION {begin.bib}
1411
- { preamble$ empty$
1412
- 'skip$
1413
- { preamble$ write$ newline$ }
1414
- if$
1415
- "\begin{thebibliography}{" number.label int.to.str$ * "}" *
1416
- write$ newline$
1417
- "\providecommand{\natexlab}[1]{#1}"
1418
- write$ newline$
1419
- "\providecommand{\url}[1]{\texttt{#1}}"
1420
- write$ newline$
1421
- "\expandafter\ifx\csname urlstyle\endcsname\relax"
1422
- write$ newline$
1423
- " \providecommand{\doi}[1]{doi: #1}\else"
1424
- write$ newline$
1425
- " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
1426
- write$ newline$
1427
- }
1428
-
1429
- EXECUTE {begin.bib}
1430
-
1431
- EXECUTE {init.state.consts}
1432
-
1433
- ITERATE {call.type$}
1434
-
1435
- FUNCTION {end.bib}
1436
- { newline$
1437
- "\end{thebibliography}" write$ newline$
1438
- }
1439
-
1440
- EXECUTE {end.bib}