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