passagemath-repl 10.5.1__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 (162) hide show
  1. passagemath_repl-10.5.1.data/scripts/sage-cachegrind +25 -0
  2. passagemath_repl-10.5.1.data/scripts/sage-callgrind +16 -0
  3. passagemath_repl-10.5.1.data/scripts/sage-cleaner +230 -0
  4. passagemath_repl-10.5.1.data/scripts/sage-coverage +327 -0
  5. passagemath_repl-10.5.1.data/scripts/sage-eval +14 -0
  6. passagemath_repl-10.5.1.data/scripts/sage-fixdoctests +710 -0
  7. passagemath_repl-10.5.1.data/scripts/sage-inline-fortran +12 -0
  8. passagemath_repl-10.5.1.data/scripts/sage-ipynb2rst +50 -0
  9. passagemath_repl-10.5.1.data/scripts/sage-ipython +16 -0
  10. passagemath_repl-10.5.1.data/scripts/sage-massif +25 -0
  11. passagemath_repl-10.5.1.data/scripts/sage-notebook +267 -0
  12. passagemath_repl-10.5.1.data/scripts/sage-omega +25 -0
  13. passagemath_repl-10.5.1.data/scripts/sage-preparse +302 -0
  14. passagemath_repl-10.5.1.data/scripts/sage-run +27 -0
  15. passagemath_repl-10.5.1.data/scripts/sage-run-cython +10 -0
  16. passagemath_repl-10.5.1.data/scripts/sage-runtests +9 -0
  17. passagemath_repl-10.5.1.data/scripts/sage-startuptime.py +163 -0
  18. passagemath_repl-10.5.1.data/scripts/sage-valgrind +34 -0
  19. passagemath_repl-10.5.1.dist-info/METADATA +77 -0
  20. passagemath_repl-10.5.1.dist-info/RECORD +162 -0
  21. passagemath_repl-10.5.1.dist-info/WHEEL +5 -0
  22. passagemath_repl-10.5.1.dist-info/top_level.txt +1 -0
  23. sage/all__sagemath_repl.py +119 -0
  24. sage/doctest/__init__.py +4 -0
  25. sage/doctest/__main__.py +236 -0
  26. sage/doctest/all.py +4 -0
  27. sage/doctest/check_tolerance.py +261 -0
  28. sage/doctest/control.py +1727 -0
  29. sage/doctest/external.py +534 -0
  30. sage/doctest/fixtures.py +383 -0
  31. sage/doctest/forker.py +2665 -0
  32. sage/doctest/marked_output.py +102 -0
  33. sage/doctest/parsing.py +1708 -0
  34. sage/doctest/parsing_test.py +79 -0
  35. sage/doctest/reporting.py +733 -0
  36. sage/doctest/rif_tol.py +124 -0
  37. sage/doctest/sources.py +1657 -0
  38. sage/doctest/test.py +584 -0
  39. sage/doctest/tests/1second.rst +4 -0
  40. sage/doctest/tests/99seconds.rst +4 -0
  41. sage/doctest/tests/abort.rst +5 -0
  42. sage/doctest/tests/atexit.rst +7 -0
  43. sage/doctest/tests/fail_and_die.rst +6 -0
  44. sage/doctest/tests/initial.rst +15 -0
  45. sage/doctest/tests/interrupt.rst +7 -0
  46. sage/doctest/tests/interrupt_diehard.rst +14 -0
  47. sage/doctest/tests/keyboardinterrupt.rst +11 -0
  48. sage/doctest/tests/longtime.rst +5 -0
  49. sage/doctest/tests/nodoctest +5 -0
  50. sage/doctest/tests/random_seed.rst +4 -0
  51. sage/doctest/tests/show_skipped.rst +18 -0
  52. sage/doctest/tests/sig_on.rst +9 -0
  53. sage/doctest/tests/simple_failure.rst +8 -0
  54. sage/doctest/tests/sleep_and_raise.rst +106 -0
  55. sage/doctest/tests/tolerance.rst +31 -0
  56. sage/doctest/util.py +750 -0
  57. sage/interfaces/cleaner.py +48 -0
  58. sage/interfaces/quit.py +163 -0
  59. sage/misc/all__sagemath_repl.py +51 -0
  60. sage/misc/banner.py +235 -0
  61. sage/misc/benchmark.py +221 -0
  62. sage/misc/classgraph.py +134 -0
  63. sage/misc/copying.py +22 -0
  64. sage/misc/cython.py +694 -0
  65. sage/misc/dev_tools.py +745 -0
  66. sage/misc/edit_module.py +304 -0
  67. sage/misc/explain_pickle.py +3079 -0
  68. sage/misc/gperftools.py +361 -0
  69. sage/misc/inline_fortran.py +212 -0
  70. sage/misc/messaging.py +86 -0
  71. sage/misc/pager.py +21 -0
  72. sage/misc/profiler.py +179 -0
  73. sage/misc/python.py +70 -0
  74. sage/misc/remote_file.py +53 -0
  75. sage/misc/sage_eval.py +249 -0
  76. sage/misc/sage_input.py +3621 -0
  77. sage/misc/sagedoc.py +1742 -0
  78. sage/misc/sh.py +38 -0
  79. sage/misc/trace.py +90 -0
  80. sage/repl/__init__.py +16 -0
  81. sage/repl/all.py +15 -0
  82. sage/repl/attach.py +625 -0
  83. sage/repl/configuration.py +186 -0
  84. sage/repl/display/__init__.py +1 -0
  85. sage/repl/display/fancy_repr.py +354 -0
  86. sage/repl/display/formatter.py +318 -0
  87. sage/repl/display/jsmol_iframe.py +290 -0
  88. sage/repl/display/pretty_print.py +153 -0
  89. sage/repl/display/util.py +163 -0
  90. sage/repl/image.py +302 -0
  91. sage/repl/inputhook.py +91 -0
  92. sage/repl/interface_magic.py +298 -0
  93. sage/repl/interpreter.py +854 -0
  94. sage/repl/ipython_extension.py +593 -0
  95. sage/repl/ipython_kernel/__init__.py +1 -0
  96. sage/repl/ipython_kernel/__main__.py +4 -0
  97. sage/repl/ipython_kernel/all_jupyter.py +10 -0
  98. sage/repl/ipython_kernel/install.py +301 -0
  99. sage/repl/ipython_kernel/interact.py +278 -0
  100. sage/repl/ipython_kernel/kernel.py +217 -0
  101. sage/repl/ipython_kernel/widgets.py +466 -0
  102. sage/repl/ipython_kernel/widgets_sagenb.py +587 -0
  103. sage/repl/ipython_tests.py +163 -0
  104. sage/repl/load.py +326 -0
  105. sage/repl/preparse.py +2218 -0
  106. sage/repl/prompts.py +90 -0
  107. sage/repl/rich_output/__init__.py +4 -0
  108. sage/repl/rich_output/backend_base.py +648 -0
  109. sage/repl/rich_output/backend_doctest.py +316 -0
  110. sage/repl/rich_output/backend_emacs.py +151 -0
  111. sage/repl/rich_output/backend_ipython.py +596 -0
  112. sage/repl/rich_output/buffer.py +311 -0
  113. sage/repl/rich_output/display_manager.py +829 -0
  114. sage/repl/rich_output/example.avi +0 -0
  115. sage/repl/rich_output/example.canvas3d +1 -0
  116. sage/repl/rich_output/example.dvi +0 -0
  117. sage/repl/rich_output/example.flv +0 -0
  118. sage/repl/rich_output/example.gif +0 -0
  119. sage/repl/rich_output/example.jpg +0 -0
  120. sage/repl/rich_output/example.mkv +0 -0
  121. sage/repl/rich_output/example.mov +0 -0
  122. sage/repl/rich_output/example.mp4 +0 -0
  123. sage/repl/rich_output/example.ogv +0 -0
  124. sage/repl/rich_output/example.pdf +0 -0
  125. sage/repl/rich_output/example.png +0 -0
  126. sage/repl/rich_output/example.svg +54 -0
  127. sage/repl/rich_output/example.webm +0 -0
  128. sage/repl/rich_output/example.wmv +0 -0
  129. sage/repl/rich_output/example_jmol.spt.zip +0 -0
  130. sage/repl/rich_output/example_wavefront_scene.mtl +7 -0
  131. sage/repl/rich_output/example_wavefront_scene.obj +17 -0
  132. sage/repl/rich_output/output_basic.py +391 -0
  133. sage/repl/rich_output/output_browser.py +103 -0
  134. sage/repl/rich_output/output_catalog.py +54 -0
  135. sage/repl/rich_output/output_graphics.py +320 -0
  136. sage/repl/rich_output/output_graphics3d.py +345 -0
  137. sage/repl/rich_output/output_video.py +231 -0
  138. sage/repl/rich_output/preferences.py +432 -0
  139. sage/repl/rich_output/pretty_print.py +339 -0
  140. sage/repl/rich_output/test_backend.py +201 -0
  141. sage/repl/user_globals.py +214 -0
  142. sage/tests/all.py +0 -0
  143. sage/tests/all__sagemath_repl.py +3 -0
  144. sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +630 -0
  145. sage/tests/arxiv_0812_2725.py +351 -0
  146. sage/tests/benchmark.py +1925 -0
  147. sage/tests/book_schilling_zabrocki_kschur_primer.py +795 -0
  148. sage/tests/book_stein_ent.py +651 -0
  149. sage/tests/book_stein_modform.py +558 -0
  150. sage/tests/cmdline.py +796 -0
  151. sage/tests/combinatorial_hopf_algebras.py +52 -0
  152. sage/tests/finite_poset.py +623 -0
  153. sage/tests/functools_partial_src.py +27 -0
  154. sage/tests/gosper-sum.py +218 -0
  155. sage/tests/lazy_imports.py +28 -0
  156. sage/tests/modular_group_cohomology.py +80 -0
  157. sage/tests/numpy.py +21 -0
  158. sage/tests/parigp.py +76 -0
  159. sage/tests/startup.py +27 -0
  160. sage/tests/symbolic-series.py +76 -0
  161. sage/tests/sympy.py +16 -0
  162. sage/tests/test_deprecation.py +31 -0
@@ -0,0 +1,630 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ # sage.doctest: needs sage.graphs sage.modules
3
+ r"""
4
+ This file contains doctests of the article ::
5
+
6
+ Automata and Transducers
7
+ in the Computer Algebra System Sage
8
+
9
+ by Clemens Heuberger, Daniel Krenn, and Sara Kropf, :arxiv:`1404.7458`.
10
+
11
+ IF IT BECOMES NECESSARY TO CHANGE ANY TESTS IN THIS FILE, THERE
12
+ NEEDS TO BE A ONE-YEAR DEPRECATION PERIOD. ALSO, PLEASE INFORM:
13
+
14
+ - Clemens Heuberger <clemens.heuberger@aau.at>,
15
+ - Daniel Krenn <devel@danielkrenn.at>, AND
16
+ - Sara Kropf <sara.kropf@aau.at>
17
+
18
+ IN THIS CASE REGARDING THE CHANGES!
19
+ """
20
+
21
+ r"""
22
+
23
+ Sage example in fsm-in-sage.tex, line 376::
24
+
25
+ sage: NAF_Abb = Transducer([(-1, 0, 0, None), (-1, 1, 1, None), (0, 0, 0, 0),
26
+ ....: (0, 1, 1, 0), (1, 0, 0, 1), (1, 2, 1, -1),
27
+ ....: (2, 1, 0, 0), (2, 2, 1, 0)],
28
+ ....: initial_states=[-1], final_states=[0],
29
+ ....: input_alphabet=[0, 1])
30
+ sage: NAF_Abb.state(-1).format_label=lambda: r'\mathcal{I}'
31
+ sage: NAF_Abb.latex_options(
32
+ ....: coordinates = {-1: (1.5, 3),
33
+ ....: 0: (0, 0),
34
+ ....: 1: (3, 0),
35
+ ....: 2: (6, 0)},
36
+ ....: initial_where = {-1: 'above'},
37
+ ....: format_letter=NAF_Abb.format_letter_negative,
38
+ ....: loop_where = lambda x: 'below')
39
+
40
+
41
+ Sage example in fsm-in-sage.tex, line 377::
42
+
43
+ sage: str(latex(NAF_Abb))
44
+ '\\begin{tikzpicture}[auto, initial text=, >=latex]\n\\node[state, initial, initial where=above] (v0) at (1.500000, 3.000000) {$\\mathcal{I}$};\n\\node[state, accepting] (v1) at (0.000000, 0.000000) {$0$};\n\\node[state] (v2) at (3.000000, 0.000000) {$1$};\n\\node[state] (v3) at (6.000000, 0.000000) {$2$};\n\\path[->] (v0) edge node[rotate=63.43, anchor=south] {$0\\mid \\varepsilon$} (v1);\n\\path[->] (v0) edge node[rotate=-63.43, anchor=south] {$1\\mid \\varepsilon$} (v2);\n\\path[->] (v1) edge[loop below] node {$0\\mid 0$} ();\n\\path[->] (v1.5.00) edge node[rotate=0.00, anchor=south] {$1\\mid 0$} (v2.175.00);\n\\path[->] (v2.185.00) edge node[rotate=360.00, anchor=north] {$0\\mid 1$} (v1.355.00);\n\\path[->] (v2.5.00) edge node[rotate=0.00, anchor=south] {$1\\mid \\overline{1}$} (v3.175.00);\n\\path[->] (v3.185.00) edge node[rotate=360.00, anchor=north] {$0\\mid 0$} (v2.355.00);\n\\path[->] (v3) edge[loop below] node {$1\\mid 0$} ();\n\\end{tikzpicture}'
45
+
46
+
47
+ Sage example in fsm-in-sage.tex, line 395::
48
+
49
+ sage: NAF1 = Transducer([('I', 0, 0, None), ('I', 1, 1, None),
50
+ ....: (0, 0, 0, 0), (0, 1, 1, 0),
51
+ ....: (1, 0, 0, 1), (1, 2, 1, -1),
52
+ ....: (2, 1, 0, 0), (2, 2, 1, 0)],
53
+ ....: initial_states=['I'], final_states=[0],
54
+ ....: input_alphabet=[0, 1])
55
+
56
+
57
+ Sage example in fsm-in-sage.tex, line 422::
58
+
59
+ sage: NAF = NAF1
60
+
61
+
62
+ Sage example in fsm-in-sage.tex, line 434::
63
+
64
+ sage: sage.combinat.finite_state_machine.FSMOldProcessOutput = False
65
+
66
+
67
+ Sage example in fsm-in-sage.tex, line 455::
68
+
69
+ sage: str(12.digits(base=2))
70
+ '[0, 0, 1, 1]'
71
+
72
+
73
+ Sage example in fsm-in-sage.tex, line 460::
74
+
75
+ sage: NAF.process(12.digits(base=2)),
76
+ ((False, 2, [0, 0, -1]),)
77
+
78
+
79
+ Sage example in fsm-in-sage.tex, line 461::
80
+
81
+ sage: str(NAF.process(12.digits(base=2)))
82
+ '(False, 2, [0, 0, -1])'
83
+
84
+
85
+ Sage example in fsm-in-sage.tex, line 471::
86
+
87
+ sage: NAF_of_12 = NAF(12.digits(base=2) + [0, 0, 0])
88
+
89
+
90
+ Sage example in fsm-in-sage.tex, line 472::
91
+
92
+ sage: str(NAF_of_12)
93
+ '[0, 0, -1, 0, 1, 0]'
94
+
95
+
96
+ Sage example in fsm-in-sage.tex, line 482::
97
+
98
+ sage: NAF = NAF.with_final_word_out(0)
99
+
100
+
101
+ Sage example in fsm-in-sage.tex, line 494::
102
+
103
+ sage: NAF_of_12 = NAF(12.digits(base=2))
104
+
105
+
106
+ Sage example in fsm-in-sage.tex, line 496::
107
+
108
+ sage: str(NAF_of_12)
109
+ '[0, 0, -1, 0, 1]'
110
+
111
+
112
+ Sage example in fsm-in-sage.tex, line 534::
113
+
114
+ sage: def NAF_transition(state_from, read):
115
+ ....: if state_from == 'I':
116
+ ....: write = None
117
+ ....: state_to = read
118
+ ....: return (state_to, write)
119
+ ....: current = 2*read + state_from
120
+ ....: if current % 2 == 0:
121
+ ....: write = 0
122
+ ....: elif current % 4 == 1:
123
+ ....: write = 1
124
+ ....: else:
125
+ ....: write = -1
126
+ ....: state_to = (current - write) / 2
127
+ ....: return (state_to, write)
128
+
129
+
130
+ Sage example in fsm-in-sage.tex, line 544::
131
+
132
+ sage: NAF2 = Transducer(NAF_transition,
133
+ ....: initial_states=['I'],
134
+ ....: final_states=[0],
135
+ ....: input_alphabet=[0, 1]).with_final_word_out(0)
136
+
137
+
138
+ Sage example in fsm-in-sage.tex, line 548::
139
+
140
+ sage: NAF == NAF2
141
+ True
142
+
143
+
144
+ Sage example in fsm-in-sage.tex, line 549::
145
+
146
+ sage: str(NAF==NAF2)
147
+ 'True'
148
+
149
+
150
+ Sage example in fsm-in-sage.tex, line 579::
151
+
152
+ sage: def f(state_from, read):
153
+ ....: current = 3*read + state_from
154
+ ....: write = current % 2
155
+ ....: state_to = (current - write) / 2
156
+ ....: return (state_to, write)
157
+
158
+
159
+ Sage example in fsm-in-sage.tex, line 588::
160
+
161
+ sage: Triple = Transducer(f, input_alphabet=[0, 1],
162
+ ....: initial_states=[0],
163
+ ....: final_states=[0]).with_final_word_out(0)
164
+
165
+
166
+ Sage example in fsm-in-sage.tex, line 592::
167
+
168
+ sage: three_times_four = Triple(4.digits(base=2))
169
+
170
+
171
+ Sage example in fsm-in-sage.tex, line 593::
172
+
173
+ sage: str(three_times_four)
174
+ '[0, 0, 1, 1]'
175
+
176
+
177
+ Sage example in fsm-in-sage.tex, line 602::
178
+
179
+ sage: Id = Transducer([(0, 0, 0, 0), (0, 0, 1, 1)],
180
+ ....: initial_states=[0], final_states=[0],
181
+ ....: input_alphabet=[0, 1])
182
+
183
+
184
+ Sage example in fsm-in-sage.tex, line 608::
185
+
186
+ sage: prebuiltId = transducers.Identity([0, 1])
187
+
188
+
189
+ Sage example in fsm-in-sage.tex, line 620::
190
+
191
+ sage: sage.combinat.finite_state_machine.\
192
+ ....: FSMOldCodeTransducerCartesianProduct = False
193
+ sage: Combined_3n_n = Triple.cartesian_product(Id).relabeled()
194
+
195
+
196
+ Sage example in fsm-in-sage.tex, line 630::
197
+
198
+ sage: twelve_and_four = Combined_3n_n(4.digits(base=2))
199
+
200
+
201
+ Sage example in fsm-in-sage.tex, line 631::
202
+
203
+ sage: str(twelve_and_four)
204
+ '[(0, 0), (0, 0), (1, 1), (1, None)]'
205
+
206
+
207
+ Sage example in fsm-in-sage.tex, line 639::
208
+
209
+ sage: def g(read0, read1):
210
+ ....: return ZZ(read0) - ZZ(read1)
211
+
212
+
213
+ Sage example in fsm-in-sage.tex, line 643::
214
+
215
+ sage: Minus = transducers.operator(g, input_alphabet=[None, -1, 0, 1])
216
+
217
+
218
+ Sage example in fsm-in-sage.tex, line 644::
219
+
220
+ sage: latex(ZZ(None))
221
+ 0
222
+
223
+
224
+ Sage example in fsm-in-sage.tex, line 650::
225
+
226
+ sage: prebuiltMinus = transducers.sub([-1, 0, 1])
227
+
228
+
229
+ Sage example in fsm-in-sage.tex, line 654::
230
+
231
+ sage: latex(Combined_3n_n.state(1))
232
+ 1
233
+
234
+
235
+ Sage example in fsm-in-sage.tex, line 657::
236
+
237
+ sage: final_word_out = Combined_3n_n.state(1).final_word_out
238
+
239
+
240
+ Sage example in fsm-in-sage.tex, line 658::
241
+
242
+ sage: str(final_word_out)
243
+ '[(1, None)]'
244
+
245
+
246
+ Sage example in fsm-in-sage.tex, line 663::
247
+
248
+ sage: NAF3 = Minus(Combined_3n_n).relabeled()
249
+
250
+
251
+ Sage example in fsm-in-sage.tex, line 672::
252
+
253
+ sage: NAF_of_12 = NAF3(12.digits(base=2))
254
+
255
+
256
+ Sage example in fsm-in-sage.tex, line 673::
257
+
258
+ sage: str(NAF_of_12)
259
+ '[0, 0, 0, -1, 0, 1]'
260
+
261
+
262
+ Sage example in fsm-in-sage.tex, line 736::
263
+
264
+ sage: NAF = NAF3
265
+
266
+
267
+ Sage example in fsm-in-sage.tex, line 741::
268
+
269
+ sage: NAF3n = NAF(Triple)
270
+
271
+
272
+ Sage example in fsm-in-sage.tex, line 749::
273
+
274
+ sage: Combined_NAF_3n_n = NAF3n.cartesian_product(NAF).relabeled()
275
+
276
+
277
+ Sage example in fsm-in-sage.tex, line 757::
278
+
279
+ sage: T = Minus(Combined_NAF_3n_n).relabeled()
280
+
281
+
282
+ Sage example in fsm-in-sage.tex, line 762::
283
+
284
+ sage: str(T)
285
+ 'Transducer with 9 states'
286
+
287
+
288
+ Sage example in fsm-in-sage.tex, line 769::
289
+
290
+ sage: expansion_of_12 = T(12.digits(base=2))
291
+
292
+
293
+ Sage example in fsm-in-sage.tex, line 772::
294
+
295
+ sage: str(expansion_of_12)
296
+ '[0, 0, 0, 2, 0, -1, 1]'
297
+
298
+
299
+ Sage example in fsm-in-sage.tex, line 806::
300
+
301
+ sage: def minus(trans1, trans2):
302
+ ....: if trans1.word_in == trans2.word_in:
303
+ ....: return (trans1.word_in,
304
+ ....: trans1.word_out[0] - trans2.word_out[0])
305
+ ....: else:
306
+ ....: raise LookupError
307
+
308
+
309
+ Sage example in fsm-in-sage.tex, line 815::
310
+
311
+ sage: from itertools import zip_longest
312
+ sage: def final_minus(state1, state2):
313
+ ....: return [x - y for x, y in
314
+ ....: zip_longest(state1.final_word_out,
315
+ ....: state2.final_word_out,
316
+ ....: fillvalue=0)]
317
+
318
+
319
+ Sage example in fsm-in-sage.tex, line 829::
320
+
321
+ sage: Talternative = NAF3n.product_FiniteStateMachine(
322
+ ....: NAF, minus,
323
+ ....: final_function=final_minus).relabeled()
324
+
325
+
326
+ Sage example in fsm-in-sage.tex, line 845::
327
+
328
+ sage: Talternative == T
329
+ True
330
+
331
+
332
+ Sage example in fsm-in-sage.tex, line 846::
333
+
334
+ sage: str(Talternative==T)
335
+ 'True'
336
+
337
+
338
+ Sage example in fsm-in-sage.tex, line 854::
339
+
340
+ sage: for t in T.iter_states():
341
+ ....: other = Talternative.state(t.label())
342
+ ....: assert t.is_final == other.is_final
343
+ ....: if t.is_final:
344
+ ....: assert t.final_word_out == other.final_word_out
345
+
346
+
347
+ Sage example in fsm-in-sage.tex, line 872::
348
+
349
+ sage: sage.combinat.finite_state_machine.setup_latex_preamble()
350
+
351
+
352
+ Sage example in fsm-in-sage.tex, line 888::
353
+
354
+ sage: T.set_coordinates({
355
+ ....: 0: (-2, 0.75),
356
+ ....: 1: (0, -1),
357
+ ....: 2: (-6, -1),
358
+ ....: 3: (6, -1),
359
+ ....: 4: (-4, 2.5),
360
+ ....: 5: (-6, 5),
361
+ ....: 6: (6, 5),
362
+ ....: 7: (4, 2.5),
363
+ ....: 8: (2, 0.75)})
364
+
365
+
366
+ Sage example in fsm-in-sage.tex, line 905::
367
+
368
+ sage: T.latex_options(format_letter=T.format_letter_negative,
369
+ ....: accepting_where={
370
+ ....: 0: 'right',
371
+ ....: 1: 'below',
372
+ ....: 2: 'below',
373
+ ....: 3: 'below',
374
+ ....: 4: 60,
375
+ ....: 5: 'above',
376
+ ....: 6: 'above',
377
+ ....: 7: 120,
378
+ ....: 8: 'left'},
379
+ ....: accepting_show_empty=True)
380
+
381
+
382
+ Sage example in fsm-in-sage.tex, line 919::
383
+
384
+ sage: str(latex(T))
385
+ '\\begin{tikzpicture}[auto, initial text=, >=latex, accepting text=, accepting/.style=accepting by arrow, accepting distance=7ex]\n\\node[state, initial] (v0) at (-2.000000, 0.750000) {$0$};\n\\path[->] (v0.0.00) edge node[rotate=0.00, anchor=south] {$\\$ \\mid \\varepsilon$} ++(0.00:7ex);\n\\node[state] (v1) at (0.000000, -1.000000) {$1$};\n\\path[->] (v1.270.00) edge node[rotate=450.00, anchor=south] {$\\$ \\mid \\overline{2} 0 1$} ++(270.00:7ex);\n\\node[state] (v2) at (-6.000000, -1.000000) {$2$};\n\\path[->] (v2.270.00) edge node[rotate=450.00, anchor=south] {$\\$ \\mid 0 1$} ++(270.00:7ex);\n\\node[state] (v3) at (6.000000, -1.000000) {$3$};\n\\path[->] (v3.270.00) edge node[rotate=450.00, anchor=south] {$\\$ \\mid 0 \\overline{1} 1$} ++(270.00:7ex);\n\\node[state] (v4) at (-4.000000, 2.500000) {$4$};\n\\path[->] (v4.60.00) edge node[rotate=60.00, anchor=south] {$\\$ \\mid 1$} ++(60.00:7ex);\n\\node[state] (v5) at (-6.000000, 5.000000) {$5$};\n\\path[->] (v5.90.00) edge node[rotate=90.00, anchor=south] {$\\$ \\mid \\overline{1} 0 1$} ++(90.00:7ex);\n\\node[state] (v6) at (6.000000, 5.000000) {$6$};\n\\path[->] (v6.90.00) edge node[rotate=90.00, anchor=south] {$\\$ \\mid \\overline{1} 1$} ++(90.00:7ex);\n\\node[state] (v7) at (4.000000, 2.500000) {$7$};\n\\path[->] (v7.120.00) edge node[rotate=300.00, anchor=south] {$\\$ \\mid 1 \\overline{1} 1$} ++(120.00:7ex);\n\\node[state] (v8) at (2.000000, 0.750000) {$8$};\n\\path[->] (v8.180.00) edge node[rotate=360.00, anchor=south] {$\\$ \\mid 0 \\overline{2} 0 1$} ++(180.00:7ex);\n\\path[->] (v0) edge[loop above] node {$0\\mid 0$} ();\n\\path[->] (v0) edge node[rotate=-41.19, anchor=south] {$1\\mid 0$} (v1);\n\\path[->] (v1) edge node[rotate=360.00, anchor=south] {$0\\mid \\overline{2}$} (v2);\n\\path[->] (v1) edge node[rotate=0.00, anchor=south] {$1\\mid 2$} (v3);\n\\path[->] (v2) edge node[rotate=60.26, anchor=south] {$0\\mid 0$} (v4);\n\\path[->] (v2.95.00) edge node[rotate=90.00, anchor=south] {$1\\mid 0$} (v5.265.00);\n\\path[->] (v3.95.00) edge node[rotate=90.00, anchor=south] {$0\\mid 0$} (v6.265.00);\n\\path[->] (v3) edge node[rotate=299.74, anchor=south] {$1\\mid 0$} (v7);\n\\path[->] (v4) edge node[rotate=-41.19, anchor=south] {$0\\mid 1$} (v0);\n\\path[->] (v4) edge node[rotate=308.66, anchor=south] {$1\\mid \\overline{1}$} (v5);\n\\path[->] (v5.-85.00) edge node[rotate=90.00, anchor=north] {$0\\mid \\overline{1}$} (v2.85.00);\n\\path[->] (v5) edge node[rotate=-14.04, anchor=south] {$1\\mid 1$} (v7);\n\\path[->] (v6.-85.00) edge node[rotate=90.00, anchor=north] {$1\\mid 1$} (v3.85.00);\n\\path[->] (v6) edge node[rotate=14.04, anchor=south] {$0\\mid \\overline{1}$} (v4);\n\\path[->] (v7) edge node[rotate=51.34, anchor=south] {$0\\mid 1$} (v6);\n\\path[->] (v7) edge node[rotate=41.19, anchor=south] {$1\\mid \\overline{1}$} (v8);\n\\path[->] (v8) edge node[rotate=41.19, anchor=south] {$0\\mid 0$} (v1);\n\\path[->] (v8) edge[loop above] node {$1\\mid 0$} ();\n\\end{tikzpicture}'
386
+
387
+
388
+ Sage example in fsm-in-sage.tex, line 946::
389
+
390
+ sage: R = T.output_projection()
391
+
392
+
393
+ Sage example in fsm-in-sage.tex, line 951::
394
+
395
+ sage: latex(len(R.states()))
396
+ 10
397
+
398
+
399
+ Sage example in fsm-in-sage.tex, line 955::
400
+
401
+ sage: R = R.split_transitions()
402
+
403
+
404
+ Sage example in fsm-in-sage.tex, line 956::
405
+
406
+ sage: latex(len(R.states()))
407
+ 23
408
+
409
+
410
+ Sage example in fsm-in-sage.tex, line 959::
411
+
412
+ sage: str(R.is_deterministic())
413
+ 'False'
414
+
415
+
416
+ Sage example in fsm-in-sage.tex, line 964::
417
+
418
+ sage: Rdet = R.determinisation()
419
+
420
+
421
+ Sage example in fsm-in-sage.tex, line 967::
422
+
423
+ sage: latex(len(Rdet.states()))
424
+ 22
425
+
426
+
427
+ Sage example in fsm-in-sage.tex, line 974::
428
+
429
+ sage: Rdet12 = Rdet(expansion_of_12)
430
+
431
+
432
+ Sage example in fsm-in-sage.tex, line 977::
433
+
434
+ sage: str(Rdet12)
435
+ 'True'
436
+
437
+
438
+ Sage example in fsm-in-sage.tex, line 984::
439
+
440
+ sage: Rdet1 = Rdet.minimization()
441
+
442
+
443
+ Sage example in fsm-in-sage.tex, line 986::
444
+
445
+ sage: latex(len(Rdet1.states()))
446
+ 17
447
+
448
+
449
+ Sage example in fsm-in-sage.tex, line 999::
450
+
451
+ sage: Rdet2 = R.minimization(algorithm='Brzozowski')
452
+
453
+
454
+ Sage example in fsm-in-sage.tex, line 1001::
455
+
456
+ sage: latex(len(Rdet2.states()))
457
+ 17
458
+
459
+
460
+ Sage example in fsm-in-sage.tex, line 1034::
461
+
462
+ sage: def weight(state_from, read):
463
+ ....: write = ZZ(read != 0)
464
+ ....: return (0, write)
465
+ sage: Weight = Transducer(weight, input_alphabet=srange(-2, 2+1),
466
+ ....: initial_states=[0], final_states=[0])
467
+
468
+
469
+ Sage example in fsm-in-sage.tex, line 1044::
470
+
471
+ sage: prebuiltWeight = transducers.weight(srange(-2, 2+1))
472
+
473
+
474
+ Sage example in fsm-in-sage.tex, line 1050::
475
+
476
+ sage: W = Weight(T)
477
+
478
+
479
+ Sage example in fsm-in-sage.tex, line 1051::
480
+
481
+ sage: latex(len(W.states()))
482
+ 9
483
+
484
+
485
+ Sage example in fsm-in-sage.tex, line 1056::
486
+
487
+ sage: W(12.digits(base=2))
488
+ [0, 0, 0, 1, 0, 1, 1]
489
+
490
+
491
+ Sage example in fsm-in-sage.tex, line 1057::
492
+
493
+ sage: str(W(12.digits(base=2)))
494
+ '[0, 0, 0, 1, 0, 1, 1]'
495
+
496
+
497
+ Sage example in fsm-in-sage.tex, line 1058::
498
+
499
+ sage: latex(add(W(12.digits(base=2))))
500
+ 3
501
+
502
+
503
+ Sage example in fsm-in-sage.tex, line 1064::
504
+
505
+ sage: W.prepone_output()
506
+
507
+
508
+ Sage example in fsm-in-sage.tex, line 1091::
509
+
510
+ sage: var('y') # needs sage.symbolic
511
+ y
512
+ sage: def am_entry(trans):
513
+ ....: return y^add(trans.word_out) / 2
514
+ sage: A = W.adjacency_matrix(entry=am_entry) # needs sage.symbolic
515
+
516
+
517
+ Sage example in fsm-in-sage.tex, line 1097::
518
+
519
+ sage: latex.matrix_column_alignment('c')
520
+
521
+
522
+ Sage example in fsm-in-sage.tex, line 1099::
523
+
524
+ sage: latex(A) # needs sage.symbolic
525
+ \left(\begin{array}{ccccccccc}
526
+ \frac{1}{2} & \frac{1}{2} \, y^{2} & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
527
+ 0 & 0 & \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 & 0 & 0 \\
528
+ 0 & 0 & 0 & 0 & \frac{1}{2} & \frac{1}{2} & 0 & 0 & 0 \\
529
+ 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} & \frac{1}{2} & 0 \\
530
+ \frac{1}{2} & 0 & 0 & 0 & 0 & \frac{1}{2} \, y & 0 & 0 & 0 \\
531
+ 0 & 0 & \frac{1}{2} \, y & 0 & 0 & 0 & 0 & \frac{1}{2} \, y & 0 \\
532
+ 0 & 0 & 0 & \frac{1}{2} \, y & \frac{1}{2} \, y & 0 & 0 & 0 & 0 \\
533
+ 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2} \, y & 0 & \frac{1}{2} \\
534
+ 0 & \frac{1}{2} \, y^{2} & 0 & 0 & 0 & 0 & 0 & 0 & \frac{1}{2}
535
+ \end{array}\right)
536
+
537
+
538
+ Sage example in fsm-in-sage.tex, line 1109::
539
+
540
+ sage: A1mI = (A.subs(y=1) - A.parent().identity_matrix()) # needs sage.symbolic
541
+ sage: (pi_not_normalized,) = A1mI.left_kernel().basis() # needs sage.symbolic
542
+ sage: pi = pi_not_normalized / pi_not_normalized.norm(p=1) # needs sage.symbolic
543
+
544
+
545
+ Sage example in fsm-in-sage.tex, line 1110::
546
+
547
+ sage: str(pi) # needs sage.symbolic
548
+ '(1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9)'
549
+
550
+
551
+ Sage example in fsm-in-sage.tex, line 1117::
552
+
553
+ sage: expected_output = derivative(A, y).subs(y=1) * vector(len(W.states())*[1]) # needs sage.symbolic
554
+
555
+
556
+ Sage example in fsm-in-sage.tex, line 1118::
557
+
558
+ sage: latex(expected_output) # needs sage.symbolic
559
+ \left(1,\,0,\,0,\,0,\,\frac{1}{2},\,1,\,1,\,\frac{1}{2},\,1\right)
560
+
561
+
562
+ Sage example in fsm-in-sage.tex, line 1126::
563
+
564
+ sage: pi * expected_output # needs sage.symbolic
565
+ 5/9
566
+
567
+
568
+ Sage example in fsm-in-sage.tex, line 1127::
569
+
570
+ sage: latex(pi * expected_output) # needs sage.symbolic
571
+ \frac{5}{9}
572
+
573
+
574
+ Sage example in fsm-in-sage.tex, line 1129::
575
+
576
+ sage: latex(pi * expected_output) # needs sage.symbolic
577
+ \frac{5}{9}
578
+
579
+
580
+ Sage example in fsm-in-sage.tex, line 1145::
581
+
582
+ sage: var('k') # needs sage.symbolic
583
+ k
584
+ sage: moments = W.asymptotic_moments(k) # needs sage.symbolic
585
+
586
+
587
+ Sage example in fsm-in-sage.tex, line 1155::
588
+
589
+ sage: latex(moments['expectation']) # needs sage.symbolic
590
+ \frac{5}{9} \, k + \mathcal{O}\left(1\right)
591
+
592
+
593
+ Sage example in fsm-in-sage.tex, line 1162::
594
+
595
+ sage: latex(moments['variance']) # needs sage.symbolic
596
+ \frac{44}{243} \, k + \mathcal{O}\left(1\right)
597
+
598
+
599
+ Sage example in fsm-in-sage.tex, line 1192::
600
+
601
+ sage: expectation_binary = Id.asymptotic_moments(k)['expectation'] # needs sage.symbolic
602
+
603
+
604
+ Sage example in fsm-in-sage.tex, line 1195::
605
+
606
+ sage: latex(expectation_binary) # needs sage.symbolic
607
+ \frac{1}{2} \, k + \mathcal{O}\left(1\right)
608
+
609
+
610
+ Sage example in fsm-in-sage.tex, line 1202::
611
+
612
+ sage: expectation_NAF = Weight(NAF).asymptotic_moments(k)['expectation'] # needs sage.symbolic
613
+
614
+
615
+ Sage example in fsm-in-sage.tex, line 1205::
616
+
617
+ sage: latex(expectation_NAF) # needs sage.symbolic
618
+ \frac{1}{3} \, k + \mathcal{O}\left(1\right)
619
+
620
+
621
+ Sage example in fsm-in-sage.tex, line 1211::
622
+
623
+ sage: Abs = transducers.abs([-1, 0, 1]) # needs sage.symbolic
624
+
625
+
626
+ Sage example in fsm-in-sage.tex, line 1216::
627
+
628
+ sage: latex(moments['expectation']) # needs sage.symbolic
629
+ \frac{5}{9} \, k + \mathcal{O}\left(1\right)
630
+ """