General Description of the pcc Program: This is a program designed for finding the peak crosscorrelation between a Rudin-Shapiro sequence and its companion. It does this by reporting all the shifts at which the crosscorrelation value achieves maximum magnitude, and it also records the crosscorrelation value for each such shift. It outputs this data in an easy-to-read table, and also in formats suitable for Python/Sage programming and for direct importation into a LaTeX document. From the data on crosscorrelation of the Rudin-Shapiro and companion sequence of length 2^k, it also deduces the list of positive shifts where the Rudin-Shapiro sequence of length 2^(k+1) achieves maximum magnitude autocorrelation, and lists the autocorrelation value for each such shift. It outputs this data in a format suitable for LaTeX documents. Usage Specifications for the pcc Program: usage: pcc max_log_length_for_table (at least 2) max_log_length_for_pcc * max_log_length_for_table: an integer m, which must be at least 2. * max_log_length_for_pcc: an integer M. The program computes the data on crosscorrelation mentioned above for the Rudin-Shapiro sequence of length 2^k and its companion sequence for all k with 0 <= k <= M. For those k with k <= m, this data is determined by computing the entire crosscorrelation spectrum: the spectrum for the sequences of length 2^k is determined from stored spectra for the pairs with sequences of length 2^(k-2) and 2^(k-1) by applying the fundamental crosscorrelation recursion (eq. (2) in Lemma 2.8 of the paper). If m < k <= M, then the same output data is obtained, but this time the crosscorrelation values of the spectrum are determined from the stored spectra for the pairs with sequences of length 2^(m-1) and 2^m by applying Corollary 3.2 of the paper. The autocorrelation data is computed from the crosscorrelation data using the first equation in Lemma 2.8 of the paper. The typical usage is to set max_log_length_for_table as high as possible given the amount of working memory available (since we need to store the crosscorrelation spectra for the pairs with sequences of length 2^(m-1) and 2^m), and then to set max_log_length_for_pcc as high as possible given the speed of the computer and the amount of time available. ---------------------------------------- Example of Usage and Data Presented: The output file pccs-to-50.txt included with the code is the output of the program when one invokes ./pcc 26 50 The output first has a table that lists every n from 0 to 50, the peak crosscorrelation value ("PCC") for the Rudin-Shapiro sequence of length 2^n and its companion, the list of values of shift s ("locs") such that the crosscorrelation at shift achieves maximum magnitude, and then the list of crosscorrelation values ("vals") for these shifts (in corresponding order). In most cases, the lists only have one entry. This data is then repeated again in a format suitable for Python: the peak crosscorrelations are given as a list of 51 numbers, and the locations (shifts) and crosscorrelation values each become a list of 51 lists of numbers. This is then followed by a table with the locations and crosscorrelation values formatted in a way that is suitable for LaTeX documents, and then a similar table for the maximum magnitude autocorrelations for the Rudin-Shapiro sequences of length 2^(n+1) for n from 0 to 50 (with only positive shifts included due to the symmetry of the autocorrelation function). ---------------------------------------- Description of verifications.ipynb This is a Jupyter notebook with Sage code (Sage Math version 9.2) that has many short calculations that verify claims in the paper, some of which would be tedious to compute by hand. Each calculation is commented to indicate which passage of the paper it pertains to.