diff options
| author | Juan Marín Noguera <juan@mnpi.eu> | 2025-05-16 22:18:44 +0200 |
|---|---|---|
| committer | Juan Marín Noguera <juan@mnpi.eu> | 2025-05-16 22:18:44 +0200 |
| commit | 4f670b750af5c11e1eac16d9cd8556455f89f46a (patch) | |
| tree | e0f8d7b33df2727d89150f799ee8628821fda80a /2.2.4.lyx | |
| parent | 16ccda6c459c0fd7ca2081e9d541124c28b0c556 (diff) | |
Changed layout for more manageable volumes
Diffstat (limited to '2.2.4.lyx')
| -rw-r--r-- | 2.2.4.lyx | 644 |
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 |
