aboutsummaryrefslogtreecommitdiff
path: root/2.2.4.lyx
diff options
context:
space:
mode:
authorJuan Marín Noguera <juan@mnpi.eu>2025-05-16 22:18:44 +0200
committerJuan Marín Noguera <juan@mnpi.eu>2025-05-16 22:18:44 +0200
commit4f670b750af5c11e1eac16d9cd8556455f89f46a (patch)
treee0f8d7b33df2727d89150f799ee8628821fda80a /2.2.4.lyx
parent16ccda6c459c0fd7ca2081e9d541124c28b0c556 (diff)
Changed layout for more manageable volumes
Diffstat (limited to '2.2.4.lyx')
-rw-r--r--2.2.4.lyx644
1 files changed, 0 insertions, 644 deletions
diff --git a/2.2.4.lyx b/2.2.4.lyx
deleted file mode 100644
index 5445975..0000000
--- a/2.2.4.lyx
+++ /dev/null
@@ -1,644 +0,0 @@
-#LyX 2.4 created this file. For more info see https://www.lyx.org/
-\lyxformat 620
-\begin_document
-\begin_header
-\save_transient_properties true
-\origin unavailable
-\textclass book
-\begin_preamble
-\input defs
-\end_preamble
-\use_default_options true
-\maintain_unincluded_children no
-\language english
-\language_package default
-\inputencoding utf8
-\fontencoding auto
-\font_roman "default" "default"
-\font_sans "default" "default"
-\font_typewriter "default" "default"
-\font_math "auto" "auto"
-\font_default_family default
-\use_non_tex_fonts false
-\font_sc false
-\font_roman_osf false
-\font_sans_osf false
-\font_typewriter_osf false
-\font_sf_scale 100 100
-\font_tt_scale 100 100
-\use_microtype false
-\use_dash_ligatures true
-\graphics default
-\default_output_format default
-\output_sync 0
-\bibtex_command default
-\index_command default
-\paperfontsize default
-\spacing single
-\use_hyperref false
-\papersize default
-\use_geometry false
-\use_package amsmath 1
-\use_package amssymb 1
-\use_package cancel 1
-\use_package esint 1
-\use_package mathdots 1
-\use_package mathtools 1
-\use_package mhchem 1
-\use_package stackrel 1
-\use_package stmaryrd 1
-\use_package undertilde 1
-\cite_engine basic
-\cite_engine_type default
-\biblio_style plain
-\use_bibtopic false
-\use_indices false
-\paperorientation portrait
-\suppress_date false
-\justification true
-\use_refstyle 1
-\use_formatted_ref 0
-\use_minted 0
-\use_lineno 0
-\index Index
-\shortcut idx
-\color #008000
-\end_index
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation indent
-\paragraph_indentation default
-\is_math_indent 0
-\math_numbering_side default
-\quotes_style english
-\dynamic_quotes 0
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-\tablestyle default
-\tracking_changes false
-\output_changes false
-\change_bars false
-\postpone_fragile_content false
-\html_math_output 0
-\html_css_as_file 0
-\html_be_strict false
-\docbook_table_output 0
-\docbook_mathml_prefix 1
-\end_header
-
-\begin_body
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc3[20]
-\end_layout
-
-\end_inset
-
-What does operation (3) do if
-\begin_inset Formula $\mathtt{PTR}_{1}$
-\end_inset
-
- and
-\begin_inset Formula $\mathtt{PTR}_{2}$
-\end_inset
-
- are both pointing to nodes in the
-\emph on
-same
-\emph default
- circular list?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-It splits the list into two parts;
- the one that goes from the right of
-\begin_inset Formula $\mathtt{PTR}_{1}$
-\end_inset
-
- to
-\begin_inset Formula $\mathtt{PTR}_{2}$
-\end_inset
-
- is preserved but the other one becomes a memory leak.
- If the two pointers are equal,
- nothing happens,
- just
-\begin_inset Formula $\mathtt{PTR}_{2}$
-\end_inset
-
- is set to
-\begin_inset Formula $\Lambda$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc5[21]
-\end_layout
-
-\end_inset
-
-Design an algorithm that takes a circular list such as (1) and reverses the direction of all the arrows.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-This is similar to exercise 2.2.3.7.
-\end_layout
-
-\begin_layout Enumerate
-Set
-\begin_inset Formula $\mathtt{P}\gets\Lambda$
-\end_inset
-
- and
-\begin_inset Formula $\mathtt{C}\gets\mathtt{PTR}$
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Enumerate
-If
-\begin_inset Formula $\mathtt{C}\neq\Lambda$
-\end_inset
-
-,
- set
-\begin_inset Formula $\mathtt{N}\gets\mathtt{LINK(C)}$
-\end_inset
-
-,
-
-\begin_inset Formula $\mathtt{LINK(C)}\gets\mathtt{P}$
-\end_inset
-
-,
-
-\begin_inset Formula $\mathtt{P}\gets\mathtt{C}$
-\end_inset
-
-,
-
-\begin_inset Formula $\mathtt{C}\gets\mathtt{N}$
-\end_inset
-
-,
- and repeat.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-exerc7[10]
-\end_layout
-
-\end_inset
-
-Why is it useful to assume that the
-\family typewriter
-ABC
-\family default
- fields of a polynomial list appear in decreasing order?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-Many operations on polynomials require us to match monomials with equal exponents of the variables.
- By having a total order on them it's easy to match these in linear time.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc8[10]
-\end_layout
-
-\end_inset
-
-Why is it useful to have
-\family typewriter
-Q1
-\family default
- trailing one step behind
-\family typewriter
-Q
-\family default
- in Algorithm A?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-We need
-\family typewriter
-Q
-\family default
- to advance in order to check if the next monomial has greater,
- lower,
- or equal coefficient than the one pointed to by
-\family typewriter
-P
-\family default
-,
- and if it's lower,
- we need
-\family typewriter
-Q1
-\family default
- to insert the one pointed to by
-\family typewriter
-P
-\family default
- right before the one pointed to by
-\family typewriter
-Q
-\family default
-.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc9[23]
-\end_layout
-
-\end_inset
-
-Would Algorithm A work properly if
-\begin_inset Formula $\mathtt{P}=\mathtt{Q}$
-\end_inset
-
- (i.e.,
- both pointer variables point at the same polynomial)?
- Would Algorithm M work properly if
-\begin_inset Formula $\mathtt{P}=\mathtt{M}$
-\end_inset
-
-,
- if
-\begin_inset Formula $\mathtt{P}=\mathtt{Q}$
-\end_inset
-
-,
- or if
-\begin_inset Formula $\mathtt{M}=\mathtt{Q}$
-\end_inset
-
-?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-Algorithm A would work properly,
- doubling the polynomial being pointed to (this is assuming no coefficient is 0).
- As for Algorithm M,
- it would work for
-\begin_inset Formula $\mathtt{P}=\mathtt{M}$
-\end_inset
-
- since they're not mutated.
- If
-\begin_inset Formula $\mathtt{P}=\mathtt{Q}$
-\end_inset
-
- it wouldn't work,
- because if
-\family typewriter
-M
-\family default
- has more than one monomial then the addition of
-\begin_inset Formula $\mathtt{P}$
-\end_inset
-
- times the second monomial or later (the second iteration of step M2) would add the wrong value to
-\family typewriter
-Q
-\family default
-.
- If
-\begin_inset Formula $\mathtt{M}=\mathtt{Q}$
-\end_inset
-
- it wouldn't work either as,
- for example,
- if initially
-\begin_inset Formula $\mathtt{M}=\mathtt{Q}=1$
-\end_inset
-
- and
-\begin_inset Formula $\mathtt{P}=-1$
-\end_inset
-
-,
- then addition in the first iteration of M2 would free the current monomial pointed to by
-\begin_inset Formula $\mathtt{M}$
-\end_inset
-
- and in the next iteration of M1,
-
-\begin_inset Formula $\mathtt{M}$
-\end_inset
-
- would point to free memory with unpredictable consequences.
- In cases where the constant coefficient of
-\family typewriter
-P
-\family default
- is not
-\begin_inset Formula $-1$
-\end_inset
-
-,
- it amazingly works,
- as writes to
-\family typewriter
-Q
-\family default
- are always behind where we read from
-\family typewriter
-M
-\family default
- when considering monomials of
-\family typewriter
-P
-\family default
- with positive degree and,
- for the constant coefficient,
- it writes to the same position where
-\family typewriter
-M
-\family default
- is but only to the
-\family typewriter
-COEF
-\family default
- field—
-unless
-\family typewriter
-P
-\family default
- is
-\begin_inset Formula $-1$
-\end_inset
-
- in which case the node pointed to by
-\family typewriter
-M
-\family default
- is freed.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc10[20]
-\end_layout
-
-\end_inset
-
-The algorithms in this section assume that we are using three variables
-\begin_inset Formula $x$
-\end_inset
-
-,
-
-\begin_inset Formula $y$
-\end_inset
-
-,
- and
-\begin_inset Formula $z$
-\end_inset
-
- in the polynomials,
- and that their exponents individually never exceed
-\begin_inset Formula $b-1$
-\end_inset
-
- (where
-\begin_inset Formula $b$
-\end_inset
-
- is the byte size in
-\family typewriter
-MIX
-\family default
-'s case).
- Suppose instead that we want to do addition and multiplication of polynomials in only one variable,
-
-\begin_inset Formula $x$
-\end_inset
-
-,
- and to let its exponent take on values up to
-\begin_inset Formula $b^{3}-1$
-\end_inset
-
-.
- What changes should be made to Algorithms A and M?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-None,
- as they work out of the box if we consider the
-\family typewriter
-ABC
-\family default
- field to hold a single coefficient.
- The sums and comparisons made on this field in the algorithms are equally valid independently of which of the two interpretations we want to give to this field,
- assuming no overflow.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc17[22]
-\end_layout
-
-\end_inset
-
-What advantage is there in representing polynomials with a circular list as in this section,
- instead of with a straight linear linked list terminated by
-\begin_inset Formula $\Lambda$
-\end_inset
-
- as in the previous section?
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-Steps A2 and A5 don't need special cases to handle the end of a list,
- only A3 does.
- Other than that there's not much of a difference.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-rexerc18[25]
-\end_layout
-
-\end_inset
-
-Devise a way to represent circular lists inside a computer in such a way that the list can be traversed efficiently in both directions,
- yet only one link field is used per node.
-\end_layout
-
-\begin_layout Standard
-\begin_inset ERT
-status open
-
-\begin_layout Plain Layout
-
-
-\backslash
-answer
-\end_layout
-
-\end_inset
-
-If the link field combines the location of the next and previous fields with some monoidal operation like XOR,
- and we have an item
-\begin_inset Formula $x_{i}$
-\end_inset
-
-,
- then knowing the location of
-\begin_inset Formula $x_{i+1}$
-\end_inset
-
- allows us to get the location of
-\begin_inset Formula $x_{i-1}$
-\end_inset
-
- and vice versa,
- so knowing the location of two consecutive items allows us to traverse the list in both directions.
-\end_layout
-
-\end_body
-\end_document