From 32cc2188d02725dd461b5ab139938bb89af67469 Mon Sep 17 00:00:00 2001 From: couturie Date: Mon, 17 Dec 2012 21:44:08 +0100 Subject: [PATCH 1/1] modif --- BookGPU/Chapters/chapter3/biblio3.bib | 12 + BookGPU/Chapters/chapter3/ch3.tex | 140 +- .../Chapters/chapter3/img/median3_overlap.png | Bin 25589 -> 24787 bytes .../Chapters/chapter3/img/median5_overlap.png | Bin 42790 -> 53469 bytes BookGPU/Chapters/chapter3/img/median_1.svg | 3036 ++++++++++------- 5 files changed, 1879 insertions(+), 1309 deletions(-) diff --git a/BookGPU/Chapters/chapter3/biblio3.bib b/BookGPU/Chapters/chapter3/biblio3.bib index 6b91912..e57324d 100644 --- a/BookGPU/Chapters/chapter3/biblio3.bib +++ b/BookGPU/Chapters/chapter3/biblio3.bib @@ -448,3 +448,15 @@ pages={1549 -1552}, keywords={adaptive rate compressive sensing;background subtraction;classical CS theory;cross validation;current measurement rate;sensor measurements;signal reconstruction;signal sparsity;time-varying signal;visual surveillance applications;compressed sensing;image reconstruction;video surveillance;}, doi={10.1109/ICASSP.2012.6288187}, ISSN={1520-6149},} + +@ARTICLE{4287006, +author={Perreault, S. and Hebert, P.}, +journal={Image Processing, IEEE Transactions on}, title={Median Filtering in Constant Time}, +year={2007}, +month={sept. }, +volume={16}, +number={9}, +pages={2389 -2394}, +keywords={algorithmic runtime complexity;filter kernel radius;image processing;median filtering algorithm;computational complexity;filtering theory;image processing;median filters;Algorithms;Computer Graphics;Image Enhancement;Image Interpretation, Computer-Assisted;Numerical Analysis, Computer-Assisted;Reproducibility of Results;Sensitivity and Specificity;Time Factors;User-Computer Interface;}, +doi={10.1109/TIP.2007.902329}, +ISSN={1057-7149},} \ No newline at end of file diff --git a/BookGPU/Chapters/chapter3/ch3.tex b/BookGPU/Chapters/chapter3/ch3.tex index 2afb337..8b7b55e 100755 --- a/BookGPU/Chapters/chapter3/ch3.tex +++ b/BookGPU/Chapters/chapter3/ch3.tex @@ -1,4 +1,4 @@ -\chapterauthor{Zulu pero}{Zulumachine Institute} +\chapterauthor{Gilles Perrot}{FEMTO-ST Institute} %\graphicspath{{img/}} @@ -112,6 +112,21 @@ Obviously, our code originally accepts various image dimensions and can process However, so as to propose concise and more readable code, we will assume the following limitations: 8 or 16~bit-coded gray-level input images whose dimensions $H\times W$ are multiples of 512 pixels. +\begin{algorithm} + \SetNlSty{textbf}{}{:} + allocate and populate CPU memory \textbf{h\_in}\;\\ + allocate CPU pinned-memory \textbf{h\_out}\;\\ + allocate GPU global memory \textbf{d\_out}\;\\ + declare GPU texture reference \textbf{tex\_img\_in}\;\\ + allocate GPU array in global memory \textbf{array\_img\_in}\;\\ + bind GPU array \textbf{array\_img\_in} to texture \textbf{tex\_img\_in}\;\\ + copy data from \textbf{h\_in} to \textbf{array\_img\_in}\label{algo:memcopy:H2D}\; \\ + kernel\kl gridDim,blockDim\kr()\tcc*[f]{outputs to d\_out}\label{algo:memcopy:kernel}\;\\ + copy data from \textbf{d\_out} to \textbf{h\_out} \label{algo:memcopy:D2H}\;\\ +\caption{Global memory management on CPU and GPU sides.} +\label{algo:memcopy} + \end{algorithm} + \section{Data transfers, memory management.} This section deals with the following issues: \begin{enumerate} @@ -132,21 +147,6 @@ Listing \ref{lst:fkern1} gives a minimal kernel skeleton that will serve as the The instruction in line 8 combines writing the output gray-level value into global memory and fetching the input gray-level value from 2-D texture memory. The Makefile given in Listing \ref{lst:mkfile} shows how to adapt examples given in SDK. -\begin{algorithm} - \SetNlSty{textbf}{}{:} - allocate and populate CPU memory \textbf{h\_in}\; - allocate CPU pinned-memory \textbf{h\_out}\; - allocate GPU global memory \textbf{d\_out}\; - declare GPU texture reference \textbf{tex\_img\_in}\; - allocate GPU array in global memory \textbf{array\_img\_in}\; - bind GPU array \textbf{array\_img\_in} to texture \textbf{tex\_img\_in}\; - copy data from \textbf{h\_in} to \textbf{array\_img\_in}\label{algo:memcopy:H2D}\; - kernel\kl gridDim,blockDim\kr()\tcc*[f]{outputs to d\_out}\label{algo:memcopy:kernel}\; - copy data from \textbf{d\_out} to \textbf{h\_out} \label{algo:memcopy:D2H}\; -\caption{Global memory management on CPU and GPU sides.} -\label{algo:memcopy} -\end{algorithm} - \lstinputlisting[label={lst:main1},caption=Generic main.cu file used to launch CUDA kernels]{Chapters/chapter3/code/mainSkel.cu} \lstinputlisting[label={lst:fkern1},caption=fast\_kernels.cu file featuring one kernel skeleton]{Chapters/chapter3/code/kernSkel.cu} @@ -313,36 +313,57 @@ The diagram of Figure \ref{fig:compMedians1} summarizes these first results. Onl \end{figure} \subsection{Further optimization} -Running the above register-only 3$\times$3 median filter through the NVidia CUDA profiler teaches us that the memory throughput achieved by the kernel remains quite low. To improve this, two methods can be used: one is to increase the number of concurrent threads by reducing the number of registers used, the other to have each thread process more data which can be achieved by outputting the gray-level value of two pixels or more. +Running the above register-only 3$\times$3 median filter through the NVidia CUDA profiler teaches us that the memory throughput achieved by the kernel remains quite low. To improve this, two methods can be used: +\begin{itemize} +\item increasing the number of concurrent threads, which can be achieved by reducing the number of registers used by each thread. +\item having each thread process more data which can be achieved at thread level by processing and outputting the gray-level value of two pixels or more. +\end{itemize} + + \subsubsection{Reducing register count} Our current kernel (\texttt{kernelMedian3RegTri9}) uses one register per gray-level value, which amounts to 9 registers for the entire 3$\times$3 window. -This count can be reduced by use of an iterative sorting process called \textit{forgetful selection}, where both \textit{extrema} are eliminated at each sorting stage, until only 3 elements remain. The question is to find out the minimal register count $k_n$ that allows the selection of the median amoung $n^2$ values. The answer can be evaluated considering that, when eliminating the maximum and the minimum values, one has to make sure not to eliminate the global median value, e.g. $k_n=\lceil n^2/2\rceil+1$. -%To ensure this, the number of values that are not part of the process must remain lower than the number of values that would have had an index higher (or lower) than the middle one in the fully sorted $n^2$ value vector. +This count can be reduced by use of an iterative sorting process called \textit{forgetful selection}, where both \textit{extrema} are eliminated at each sorting stage, until only 3 elements remain. The question is to find out the minimal register count $k_n$ that allows the selection of the median amoung $n^2$ values. The answer can be evaluated considering that, when eliminating the maximum and the minimum values, one has to make sure not to eliminate the global median value. Such a situation is illustrated in Figure \ref{fig:forgetful_selection} for a 3$\times$3 median filter. For better comprehension, the 9 elements of the 3$\times$3 pixel window have been represented in a row. +\begin{figure} + \centering + \includegraphics[width=6cm]{Chapters/chapter3/img/forgetful_selection.png} + \caption{Forgetful selection with the minimal element register count. Illustration for 3$\times$3 pixel window represented in a row and supposed sorted.} + \label{fig:forgetful_selection} +\end{figure} +We must remember that, in the fully sorted vector, the median value will have the middle index e.g. $\lfloor n^2/2\rfloor$. +Moreover, assuming that both \textit{extrema} are eliminated from the first $k$ elements and that the global median is one of them would mean that: +\begin{itemize} +\item if the global median was the minimum among the $k$ elements, then at least $k-1$ elements would have a higher index. Considering the above median definition, at least $k-1$ elements should also have a lower index in the entire vector. +\item if the global median was the maximum among the $k$ elements, then at least $k-1$ elements would have a lower index. Considering the above median definition, at least $k-1$ elements should also have a higher index in the entire vector. +\end{itemize} +Therefore, the number $k$ of elements that are part of the first selection stage can be defined by the condition +$$n^2-k \leq \lfloor \frac{n^2}{2} \rfloor -1$$ +which leads to: +$$k_n=\lceil \frac{n^2}{2}\rceil+1 $$ This rule can be applied to the first eliminating stage and remains true with the next ones as each stage suppresses exactly two values. In our 3$\times$3 pixel window example, the minimum register count becomes $k_9=\lceil 9/2\rceil+1 = 6$. The \textit{forgetful selection} method, used in \cite{mcguire2008median} does not imply full sorting of values, but only selecting minimum and maximum values, which, at the price of a few iteration steps ($n^2-k$), reduces arithmetic complexity. Listing \ref{lst:medianForget1pix3} details this process where forgetful selection is achieved by use of simple 2-value sorting function ($s()$, lines 1 to 5) that swaps input values if necessary. Moreover, whenever possible, in order to increase the Instruction-Level Parallelism, successive calls to $s()$ are done with independant elements as arguments. This is illustrated by the macro definitions of lines 7 to 14. -\lstinputlisting[label={lst:medianForget1pix3},caption= 3$\times$3 median filter kernel using the minimum register count of 6 and finding the median value by forgetful selection method]{Chapters/chapter3/code/kernMedianForget1pix3.cu} +\lstinputlisting[label={lst:medianForget1pix3},caption= 3$\times$3 median filter kernel using the minimum register count of 6 to find the median value by forgetful selection method]{Chapters/chapter3/code/kernMedianForget1pix3.cu} Our such modified kernel provides significantly improved runtimes: a speedup of around 16\% is obtained, and pixel throughput reaches around 1000~MPixel/s on C2070. \subsubsection{More data output per thread} -In the case of a kernel achieving an effective memory throughput much lower than the peak value, and if enough threads are run, another technique may help hiding memory latency and thus leverage performance: one thread produces multiple pixel outputs. -Attentive readers should notice that it would increase the register count per thread. That's true, but dividing thread block size by the same quantity allow, at least, to keep the same register count per block, which is the parallelism limiting factor. -Moreover, it is now possible to take advantage of the window overlapping, first illustrated In Figure \ref{fig:median_overlap}, and more detailed in Figure \ref{fig:median3_overlap}. As the selection is first processed on the first 6 gray-level values and as it is exactly the number of pixels that overlap between two neighbor window of adjacent pixels, it allows to save 6 texture fetches and one \texttt{minmax6} selection per thread. Again, speedup is expected through the modified kernel source code and the associated grid dimensions presented in Listing \ref{lst:medianForget2pix3}. Important differences to be noticed are pixel coordinates computation given thread index. As each thread has to process two pixels, the number of threads in each block is divided by 2, while the grid size remains the same. Consequently, in kernel code, each thread of block coordinates $(tx, ty)$ will be in charge of processing pixels of block coordinates $(2tx, ty)$ and $(2tx+1, ty)$; lines 5 and 6 implement this. +In the case of a kernel achieving an effective memory throughput value far from the GPU peak value, and if enough threads are run, another technique may help hiding memory latency and thus leverage performance: make sure that each thread generates multiple pixel outputs.\\ +Attentive readers could remark that it would increase the register count per thread, which can be compensated by dividing thread block size accordingly, thus allowing to keep the same register count per block. +Moreover, it is now possible to take advantage of window overlapping, first illustrated In Figure \ref{fig:median_overlap}, and further detailed in Figure \ref{fig:median3_overlap}. As the selection is first processed on the first 6 gray-level values, e.g. exactly the number of pixels that overlap between the neighborhoods of two adjacent center pixels, 6 texture fetches and one \texttt{minmax6} selection per thread can be saved. There again, some speedup can be expected through our modified kernel source code presented in Listing \ref{lst:medianForget2pix3}. One important difference lies in the way pixel coordinates are computed from thread indexes. As each thread has to process two pixels, the number of threads in each block is divided by 2, while the grid size remains unchanged. Consequently, in our kernel code, each thread whose block-related coordinates are $(tx, ty)$ will be in charge of processing pixels of block-related coordinates $(2tx, ty)$ and $(2tx+1, ty)$; lines 5 and 6 implement this. \begin{figure} \centering \includegraphics[width=4cm]{Chapters/chapter3/img/median3_overlap.png} - \caption{Illustration of how window overlapping is used to combine 2 pixel selections in 3$\times$3 median kernel.} + \caption{Illustration of how window overlapping is used to combine 2 pixel selections in a 3$\times$3 median kernel.} \label{fig:median3_overlap} \end{figure} -\lstinputlisting[label={lst:medianForget2pix3},caption=kernel 3$\times$3 median filter processing 2 output pixel values per thread by a combined forgetfull selection.]{Chapters/chapter3/code/kernMedian2pix3.cu} +\lstinputlisting[label={lst:medianForget2pix3},caption=3$\times$3 median filter kernel processing 2 output pixel values per thread using combined forgetful selection.]{Chapters/chapter3/code/kernMedian2pix3.cu} -Running this ultimate kernel saves another 10\% of runtime, as shown in Figure \ref{fig:compMedians2} and provides the best peak pixel throughput known so far on C2070 of 1155~Mpixel/s which is 86\% of the maximum effective throughput. +Running this $3\times 3$ kernel saves another 10\% runtime, as shown in Figure \ref{fig:compMedians2} and provides the best peak pixel throughput value known so far on C2070: 1155~Mpixel/s which is 86\% the maximum effective throughput. \begin{figure} \centering @@ -351,24 +372,22 @@ Running this ultimate kernel saves another 10\% of runtime, as shown in Figure \ \label{fig:compMedians2} \end{figure} -\section{Median filter 5$\times$5 and more} -Considering the maximum register count allowed dper thread (63) and trying to push this technique to its limit would let us design median filters up to 9$\times$9 pixel window. This maximum would actually use $k_{81}=\lceil 81/2\rceil+1 = 42$ registers per thread plus a few ones used by the compiler to complete arithmetic operations (9) leading to a total register count of 51. -This would oviously forbids us to compute more than one pixel per thread, but also would limit the number of concurrent threads per block. Our measurements show that this technique is still worth using for the 5$\times$5 median but that larger window sizes could take advantage of using shared memory. -The next two sections will first detail the particular case of the 5$\times$5 median through register-only method and then a generic kernel for larger window sizes. +\section{A 5$\times$5 and more median filter } +Considering the maximum register count allowed per thread (63) and trying to push this technique to its limit potentially allows designing up to 9$\times$9 median filters. Such maximum would actually use $k_{81}=\lceil 81/2\rceil+1 = 42$ registers per thread plus 9, used by the compiler to complete arithmetic operations. This leads to a total register count of 51, which would forbid to compute more than one pixel per thread, but also would limit the number of concurrent threads per block. Our measurements show that this technique is still worth using for the 5$\times$5 median. As for larger window sizes, one option could be using shared memory. +The next two sections will first detail the particular case of the 5$\times$5 median through register-only method and eventually a generic kernel for larger window sizes. -\subsection{Median filter 5$\times$5: register only } -The minimum register count allowing to apply the forgetfull selection method to 5$\times$5 median filter is $k_{25}=\lceil 25/2\rceil+1 = 14$. Moreover, two adjacent overlapping windows share 20 pixels ($n^2-one\_column$) so that, when processing 2 pixels at once, from the first selection stage with 14 common values to the passing of the last common value, a count of 6 common selection stages can be carried out. That allows to limit the register count to 14+8=22 per thread. Figure \ref{fig:median5overlap} +\subsection{A register-only 5$\times$5 median filter \label{sec:median5}} +The minimum register count required to apply the forgetful selection method to a 5$\times$5 median filter is $k_{25}=\lceil 25/2\rceil+1 = 14$. Moreover, two adjacent overlapping windows share 20 pixels ($n^2-one\_column$) so that, when processing 2 pixels simultaneously, a count of 6 common selection stages can be carried out from the first selection stage with 14 common values to the processing of the last common value. That allows to limit register count to 14+8=22 per thread. Figure \ref{fig:median5overlap} describes the distribution of overlapping pixels, implemented in Listing \ref{lst:medianForget2pix5}: common selection stages take place from line 25 to line 37, while the remaining separate selection stages occur between lines 45 and 62 after the separation of line 40. \begin{figure} \centering - \includegraphics[width=8cm]{Chapters/chapter3/img/median5_overlap.png} - \caption{Reduction of register count in 5$\times$5 register only median kernel, outputting 2 pixel at once. The first 6 forgetful selection stages are common to both processed center pixels. Only the last 5 selections have to be done separately.} + \includegraphics[width=6cm]{Chapters/chapter3/img/median5_overlap.png} + \caption{Reducing register count in a 5$\times$5 register-only median kernel outputting 2 pixels simultaneously. The first 6 forgetful selection stages are common to both processed center pixels. Only the last 5 selections have to be done separately.} \label{fig:median5overlap} \end{figure} -Listing \ref{lst:medianForget2pix5} reproduces the kernel \texttt{kernel\_medianForget2pix5} code where the common selection stages take place from line XX to line YY. The remaining separate selection stages occur between lines XX and YY after the separation of line GG. \lstinputlisting[label={lst:medianForget2pix5},caption=kernel 5$\times$5 median filter processing 2 output pixel values per thread by a combined forgetfull selection.]{Chapters/chapter3/code/kernMedian2pix5.cu} -Timing results follow the same variations with image size than previous ones. That is why Table \ref{tab:median5comp} shows only throughput values obtained for C2070 card and 4096$\times$4096 pixel image. +Timing results follow the same variations with image size as in previously presented kernels. That is why Table \ref{tab:median5comp} shows only throughput values obtained for C2070 card and 4096$\times$4096 pixel image. \begin{table}[h] %\newlength\savedwidth @@ -385,44 +404,20 @@ Timing results follow the same variations with image size than previous ones. Th \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}&551&738&152&540\\\hline \end{tabular} } -\caption{Performance of various 5$\times$5 median kernel implementations, applied on 4096$\times$4096 pixel image with C2070 GPU card..} +\caption{Performance of various 5$\times$5 median kernel implementations, applied on 4096$\times$4096 pixel image with C2070 GPU card.} \label{tab:median5comp} \end{table} -\subsection{True median filter n$\times$n} -Shared memory can represent an efficient way to reduce global or texture loads, but it is also a limiting factor for performance. -On Fermi GPUs (as C2070), a maximum of 48~kB of per block shared memory is avalaible. With 16-bit coded gray levels, that allows to store up to 24576 values, which can be organised as a square of 156$\times$156 pixels maximum. -A point is that it is not efficient to use the shared memory at its maximum, as it would reduce the number of blocks beeing run in parallel on each SM. -Another point is that it is not possible to avoid bank conflicts when designing a generic median kernel. -Thus, the most efficient way to code a generic, large window, median filter, is to do without shared memory but use texture direct fetching. -Listing \ref{lst:medianForgetGeneric} reproduce such a code, where the most interesting part is between lines XX and YY, where the forgetfull selection has been generalized to an arbitrary window size. -Performance results summarized in table \ref{tab:medianForgetGeneric} demonstrate that such a method is far from beeing as efficient as small fixed-size implementations. - -\begin{table}[h] -%\newlength\savedwidth -\newcommand\whline{\noalign{\global\savedwidth - \arrayrulewidth\global\arrayrulewidth 1.5pt} - \hline \noalign{\global\arrayrulewidth - \savedwidth} -} -\centering -{\scriptsize -\begin{tabular}{|l||c|c|c|c|} -\hline -\shortstack{\textbf{Window size}\\(in pixels)}&\textbf{121}&\textbf{169}&\textbf{225}&\textbf{441}\\\whline - \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}& & & & \\\hline -\end{tabular} -} -\caption{Performance of generic median kernel applied to various window sizes on 4096$\times$4096 pixel image.} -\label{tab:medianForgetGeneric} -\end{table} - -\lstinputlisting[label={lst:medianForgetGeneric},caption= generic median kernel by forgetfull selection.]{Chapters/chapter3/code/kernMedianForgetGeneric.cu} +\subsection{Fast approximated n$\times$n median filter } +Large window median filters are less widespread and used in more specific fields, such as digital microscopy: for example in \cite{paper_bio_background}, an estimation of the background gray-level intensity is achieved through a $111\times 111$ median filtering (processed in around 2s for a 4MPixel image). In such cases, a possible technique is to split median selection into two separate 1-D stages: one in the vertical direction and the other in the horizontal direction. Image processing specialists may object that this method does not select the actual median value. This is true but, in the case of large window sizes and \textit{real-life} images, the so selected value is statistically near the actual median value and often represents an acceptable approximation. Such a filter is sometimes called \textit{smoother}. -\subsection{Fast approximated median filter n$\times$n} -If faster process is required, a possible technique is to split median selection in two separate 1-D stages: one in the vertical direction and the other in the horizontal direction. Image processing specialists would say that this method does not selects the actual median value. They would be right, but for large window sizes and \textit{real-life} images, the so selected value is statically near the true median value and often represents an acceptable approximation. -In this particular case, we use a Torben Morgensen sorting algorithm, as it only needs a few and fixed register count. +As explained earlier in this section, the use of large window median filters rules out register-only implementation, +which suggests to privilege the use of shared memory. The 1-D operation almost completely avoids bank conflicts in shared memory accesses. +Furthermore, the above-described forgetful selection method cannot be used anymore, as too many registers would be required.\\Instead, the Torben Morgensen sorting algorithm is used, as its required register count is both low and constant, and avoids the use of a local vector, unlike histogram-based methods. +Listing \ref{lst:medianSeparable} presents a kernel code that implements the above considerations and achieves a 1-D vertical $n \times 1$ median filter. The shared memory vector is declared as \texttt{extern} (Line 16) as its size is determined at runtime and passed to the kernel call as an argument. Lines 20 to 29 perform data prefetching, including the $2n$-row halo ($n$ at the bottom and $n$ at the top of each block). Then one synchronization barrier is mandatory (line 31) to ensure that all needed data is ready prior to its use by the different threads. +Torben Morgensen sorting takes place between lines 37 and 71 and eventually, the transposed output value is stored in global memory at line 73. Outputting the transposed image in global memory saves time and allows to re-use the same kernel to achieve the second step, e.g 1-D horizontal $n \times 1$ median filtering. The final transpose is done at transfer time, when copying data from GPU to CPU memory, which once more saves time while actually generating the expected image. +It has to be noticed that this smoother, unlike the technique we proposed for fixed-size median filters, can not be considered as a state-of-the-art technique, as for example the one presented in \cite{4287006}. However, it may be considered as a good, easy to use and efficient alternative as confirmed by the results presented in Table \ref{tab:medianSeparable}. Pixel throughput values achieved by our kernel, though not constant with window size, remain very competitive if window size is kept under $120\times 120$ pixels (in \cite{4287006}, pixel throughput is around 7MP/s). \begin{table}[h] %\newlength\savedwidth \newcommand\whline{\noalign{\global\savedwidth @@ -434,17 +429,16 @@ In this particular case, we use a Torben Morgensen sorting algorithm, as it only {\scriptsize \begin{tabular}{|l||c|c|c|c|} \hline -\shortstack{\textbf{Window size}\\(in pixels)}&\textbf{121}&\textbf{169}&\textbf{225}&\textbf{441}\\\whline - \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}& & & & \\\hline +\shortstack{\textbf{Window edge size}\\(in pixels)}&\textbf{41}&\textbf{81}&\textbf{111}&\textbf{121}\\\whline + \shortstack{\textbf{Throughput}\\\textbf{(MP/s)}}&54 &27 & 20& 18\\\hline \end{tabular} } -\caption{Performance of generic pseudo separable median kernel applied to various window sizes on 4096$\times$4096 pixel image.} +\caption{Measured performance of one generic pseudo-separable median kernel applied to 4096$\times$4096 pixel image with various window sizes.} \label{tab:medianSeparable} \end{table} \lstinputlisting[label={lst:medianSeparable},caption= generic pseudo median kernel.]{Chapters/chapter3/code/kernMedianSeparable.cu} - \section{Glossary} \begin{Glossary} \item[CUDA] Compute Unified Device Architecture. diff --git a/BookGPU/Chapters/chapter3/img/median3_overlap.png b/BookGPU/Chapters/chapter3/img/median3_overlap.png index 0957bd3f5b1e67f99dcf64f54baafe52ef00b950..20228c22d4c30bda2af856be3967aa62c07f0f43 100644 GIT binary patch literal 24787 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 F_%Bh^wIcuk literal 25589 zcmdSBbySt>*DkzhQE8=1Bt)dUK|vZ+L^@;%h)7E}A|WLpT@uEY5Ttu4un;K$1*99K zOG4_*$Nf8JocE0PpYQwQ8|QNj#@@nu?&rSeJ?AyAdCiFtx3pDA&eESnp-?1hs!DfI zC|qLr(l|p1-?85!$cF#myIxnjdj|gao_P=se+q`E>oL=+V}G}%<*MV=0mrIJzwdJIj~zx#N7gDM?d%54 z26l}raw#s>JH_2mn9Fq`A-_a<{S3}^+!{asfQ(du5aCNy@xI+^<2`L?W&xY-&Uzcx z)V+*t$!v6CML4@>KA_^gcA4S!QGF!%;RNBB!8; zv$&%M|DiCyO3cQ_Hm$*-sHCLiYde{1(rr5_9G#?Bdj`J0+ObHk3ZL4{8zcGOKK2iL zIQ-#H#7BPgI*%b=4V%I^DbK(wcfZIFqs&Y}VJk0HtC;p6>K6f{WBGn~h5M^W8F;yW zdEMXl{MQBISz+zQyOgklmSpu{SbG1z+uZ+O9;(R@8N`93kR;;QWE7Yp))v1@IqOpV z+wflR8n=>C{@6e4s@Jh8IT-na(ej3dvhZ-#Lk%}3h2UmdS6L^r7r5tfs8OkM1rBy? z25>py>cK4xI7iJ^1Kb4u{iKGlw&1G6iwECvvMUFe-I>5{!&&OVB7=`6#q3s>i=QIv zeOn`p@F4fRxJb%K5TnFjP*kyAd!7@nw8y~C)CTbYRNorm-wXV2?SJMHS~E*29r{gOH#-{}Q!HuFd2Y0(xrO*Q-r9#`8zLKacB?Ag z!4cuAVL9>Sme`agBLD9XO9{q5^PCST8CWXshSk`v5?`{8YDYZ}tj907i`z4EF;sM5 z_|NWF*x}S$LHJ>jESb!YmaC?LJyTj0zC*OzJ=hfDRZ49orRzGzl-Ijyg>i?@rLeE< z@{JEXJFOf@DpwPrpdgk_3?aqPZc_`?5qK04n0?|o&y#1&2^K=FIxJo>^8Pb_*Ftc^ z=hYBx*=Jf;^l~dDMV!F7)+Btirnp7eG9ykB@s4e4n>69k`TfL-T?HPw;_&bg)k%$D zK~94Gs~hi@uVsEGtRJIjsv5|0VY&&X*P&Iv&UtH2D$I%0AVQzktYTn5s{1kZoD^FSQ;e%g5+qLlND zIHWbv@#UqSR4?s6OXFU-R*S0}nCB^oMqdnOyTo74g%j*NqHZH7imEQJ-X zBOLA`!ThT})X0vEqgJqj>8UE0fbYK3d{1`I%1_?Z${hRIg@x^%ex2x_2}>3=*@X+Kli z#*E%w`8gVJdR#oiKKEAsnA>i!xM9WnDzQuJpPgULM+e)6)lQdggr0Y1TA-Bm*~Ne5 zv$uAhS!T#NZB~hG{4VEHLJ~Gv*)iv|`HqflZLYo|~h;JKLSa@x|GqpLG;9QEB zy-{;mYIyh)#;e5f<&J*K#-lDBybr9bYGMG6>{ZQAXFrCLGJVA(lTom?=0u&NzIIEI zoZ=ULIftUJ+xmE>*Y3bmPx?z?_%`+ z`}glHXRy(lSu&|Q0e||7wo)bz$M=dCPpG)GA549I2F4e^n^&U@ZUry>mim2Q;G_TX zpZxW~59adJ*9 z);(EWpP!vemGi58qe4v)cP}rV{JKqd#(gk}@A0zv!ho?O$&b_}B_(#5yOh_jNK2=y zu=ssC@?)t);+7&l9H`Ij-7hWVK%}Z!)GfBIj58T??0@tso zs6a8wc)s8>t(DO3_hkt<5=6b#$tE51G1Jw>!{poulknQgpAqSzncq9w`PE zW#rdyVi~><4hnm$nGD{J{}^!UPs$|KQgXkUR_t-gvV>Yh!$Q@VI|G(>&^c}OTh5J@ ziKc7_X92kULFf1_xXRnc#vQy>qt_oj^7L0`mUIajtMlk@3JAc)Fd_IdP;9E9r9~n> z;Vb;>*RSFk5o2d(!S$w7IlseQtE2r*1UH_N$xSZy=Aja`iUu!LvCEw7&md7^|8nuG z%v;Fa^;nHtK< z1j_?O=YH__B=YEQE#}3#tT*g!VerVRVFl$#YUk+|;(H&=w6wKjmL<9>t-I)%{rB%D z@fu@qkjc)%B1wFvUrW(#UwV4TR%m48kx=I`KR6pn%{$F7u^$SiIq3Fiyy5RJhq-09 znxnJ~?CSqHx6ywu$eFFN;9&NsNOqm=1uTGn8g#X`Drq{SS zPPT^coL?wI2E=9mVdT@aOb+NqDKk9wzmu-*c#9}CyY+>_q9XhCw-+FonHD&3_R9t5 zm$4~3yPh9;jVm{X(6JS5x)G2Ljou5+pHr~To6|9}8(Ci7jZ_dU8KvF!7#RLxzsb(Q z!EvEhE_Xn1n}N z_5bXz*Kd>d$nG&hig;aFnN(gb;?Q)w%j0JNbcK}vhg;yg)6YD_s6m`2eE)}02cjG9 zAIU0hdYIkUM%&Xw?XFzAR=-%8?ob<%k&(d@#RJyaBzVnUkIP8p-NxI2#~fuAzg3of zd~M4991Wl5?i5%>>b1g4d^`Ih!TGB4SLEz@kbFj+nn~;rF7%NOd@%3%)&DlV;UtX3 z{|sil!Kb~a$Fab`KKBha{piV$_j>tn2&daB4Bc0Ta1<0370V{J4a=;1AwyM0aj>bK z?Q_h0YdaI~bhug-wnS63?=v02HB{wj-nVC5<-i2)XZKXep1)9K_Aw;XXa;dHyRo;~ z{ze>%>=waJXV_5#!yZ9o!&{Q&1wfng4{&uUbF&-@h?s>QoI$t6*cXJ+fMuP6D_4)j zG3atduikqhF+9Ay(NR%RAytFlzdM~AdG+=8tLZoj}k<}Y(-XQ z$5GeZT*u1l_0tDz@lgtiV2L=vdAC=3TteYWY@^O?OhpGTC|R>lj}~gy8xJYRPdbHr zHuh&?%X|;EI0w(=*0?U*xqbW7d%c3|dQSI>P1^Hf<-S6ew`KO64AOAmzjkd_H~Y`a zzstW`bwD|Ghujmj9~LRDU3x#@|My;b!#SqBUge6i+^VC83yG(x2LC9+Klx@9o1B=~ z3dqrCM8*YoX^UUXu2eC6o78o_^AZnFK?O6g!TkO+kJLQR?Y|Rce)uVvplDM7{5w;d zRU^1!0Jo{JudQb3eF2i}dDtnzSiZQ1l)1&8$<0h2ql)a5v&mN=8cc$Y@hb+_aKy~p z(TneZ6vriO(_d2xB~U# z8_Xf0S51t+7nY6$N+A`*M|@k2Wlq3hRHD{neViINyOLD2LgplQkngLr4|k(fx97X; z>O?-L3fpAJ1(=$SDG&B!%TGLb16e;*-qc3t9;5@*#fum7U%!?FkYDJ|#N#`zqKtDA zRN#Iw_|U7eVz=mXMh7tXqsO}0 zAcavUE!EH|mDc8)^Owqh_V@LDX>YHYt*ot;`r6UKZ+i?e)ITP23+OU)OzU+_uV;Mbu^X3&r~a{wSN(-aH~%?;X`@e=jddcp)UI zFvX{Y6)G+FbPWtt0ss5oXd%!Hud1{kxd|A&&fl}N^yuu_vwTKkPZnsgz#NzuRflCLr zcoZ@^YJ%j{F^`G4%{G>WH|Y-3k>*FakXXDB94WbvhbetCa86k*{LjUWu{ZZHV;OuB3OGK zYQH}3>$>3oVL{?lV-8WbkrKpKIftA0Ht}2AEFmlP#hb~`Azc{`sedk0cs)U)$Px)r zLn)SXm3UzI>|_nLLs(e2=J$Xx)8EjnW*Znb8!+l$q)d^d^fmd|fpFm`zxrC0sS)_+ zxob?BYew{Zn&u$}@~GekxFdmS>#6DNRj2aJ2`S>L`5swZPOrG=FfdL zp?m~EVuF;)ze?b5$U-FlH*m=RR}u+AJoQ=cn49W~>|>tx$>;6cpsW zc@vta61%k^e|iu<(g7f1Sn0Z;EeG6eH+(Sv_;3&JmWhcbJ7w1T?b6ec#Kgp$!?8QY z#^)5&)QI7g;CbdNvLD{RKMTZFPw(QPUBYR5bVcQAe>o0Xlj8+c)FDp=v2G#M=QevD zCRB<0n=1YhKfCP1*N0nHSiwL!Mmx_-Y@>VU&d1`qHK{?#c$bYy#TX`O>?_5mi-RAs zAy9sn+fpI%y`-D%l6F~MJ{w|7%p_aHmNJ1;OTGF8z-51bep3pTgvVELUzDOt`*cWTu`n){t!;QI#Lx| zHQ}Gmt^4LhT-+2C$QNm7To=DxLJC}<#HMX(Ux7HjD=0t@m)ioO*8pm?#j?BwFa?+v z{Ff>t)LLCb1E*WG!YoDO`fY1#>v7<%%o!h8x;DP+>XZUhQ1hF0Zq0Qd3j+2=fCEFJ zY#Xz)vlCgoFh4Jr`fFpV*`Dd2E-M?Gx|nZlW3_H*D0q{v@$>OD=CdQUWDp)vrG9zH z*>mS`Jol%v%v82zH(xOLIGGv$+b<0c8h z?=#nZ!;X%81N#7pdPv2g>ax}UFPh^2ry=vi62SQT_wUs)m)LM#$FufD{P_O;)~#C# zrly(8SJ)^OU~8Evf}wD&yQ?E%6$5UJ6vVWN_;K3TDhYDlzkePajN4|b#QqS}NU2gV zYiLupq-!Wh31R>9yMpLWfXQ%%`$5p+te7Aa&PM5jIMZzppV@ zLjfbr&&|!v>N()gsr(Ary2q|c0AzJ52~?&yJ{${O7^~=U}TdV)s{m+ zDc^koh+kJg{?ZjKNsl!~0s?}ZvDa*Dyva*afvQ8V-rmF(&Ls$lN>BdMxFcWG`OStOHRp64xnF=pf%u# zMBNa;zKD;%Zf!lUY^ACs1vPmb&&&9Dm-dek6|P77&P2BHR6N9x?JYV}1Wnw2=z;&^ zI6-lh+^fWn0y`Ti&g5DY%|V(YIm%bU(t>6~C*$eV{JXwh2KDvpR}oUh`~+P!a$5rb z!=>e=rJ-6kyH{KsLRf*vLnV>!(k<%OO--4AMHJ^osG`8i<+x3zq?1h7t3jJk&{6*` z;p6QsB`GNx=q?%l#2w6B1g1o-lYj0?7Y}=MCl^8x=N6Dy;IfQwDJb-jJ$;%ZC6V#j zy=Gkbn7AunsivleL`C?aU9jrHYjm2DQP2b^hUf7J&$IILlcCQ8n!QX;7GK#W6GEQ{ zP{_~E5Bc~}2vWbt&!2S4`7>~Jwgg}{P%@rBKU-L_1I6t9wV;w;kh!2<0_orq#X8eO3+`w8-@l*JVW7```SR11mB$Koj7m~GVCj2c`p;kD zE;EpFF#?34-fCw~fB#1}roY0Za0U2E==MU7wDx7T)vl1uok|oo<#L>A{wYu#Qx!FJ zU|C$+8LxoXku(K1PeY0A#FWz-B}kH7X;IWLTZ(>qAzF}EZb9*}(B#)2yrqbb7j!Lu8PZuAF?s!7njVuGC{0>)1<;%y62IR z{8AYL;^N7pqoX0qP#N4dG*nw3Zy0g&Re+Y$Xm$T{2=(z64}@J|VN?Vam((Fj z)@Ak#fGwA(Xd*Ecr%1t-?>~NQej;Ldk(t@0r*G=kz6#fuyz(59z%5p}mpz%%ZEz0L zHga43f78rjV`bH7TxVxz-02qo>9mx}9W&1<0yDqgdWZx75sMrTkqN=g_Qria^fT(n z9k92>Fxgeh+4iwJG#<={EISUB1OXEiMpW6()P80P97n2SL_56=1z5J6Uy7WccVF!0 z=X3m^{$OFzOus;8dH)QqEYINKVWUtomhKcmG@nm4_z&=+W=PO~1=_=u(?1_hy?Z~t z)<`CtX4v5QQ2!aWf3RECqy^S7ZL_V^N*CJ%>DRSiOZ=d5L2ku|a|kv5^)}lYSU5^6>j5X+h7ja^?Mx}ryKPqX6KnQAAaBUS zB5nXQQuurjU6N7sqR+uKw%6*`E8nr>E5h564=F1v!}3Lj9G5snMSply8QI&fa&$md z#2jwwRLUzy#i@Db2j?t=3+8a|?8tf&U=X~h6;!bs&f!j)k8?}w>+3=GIyg8eZ4#3l zQpKZD9=^3g(+1ZIjQYihfIjQ46e*(w`BG2{TRbDgg_sDG2;h6f80q!;840b9XeQ|- z5FQIFU@KjK`L?b>%e!G86?GKfZIHTVyQ&P6f zr?7}L6rc2nK4%TDis>&OeaWqh0ug`(1W)ITn@YoJ$cKQhm^W8#2#{GY%KIZFiGdvh z>B7ah80gI9XSNUuFw1yu#B)b9gA|^*In#zWHSWg7)|Ce-P8%D`q61qXUn?Rm#fd@! z3ph*+q#R>tquFx7VwxEe6oH^1?srSk5&|)Elwi4$5<5U1*MZ=w3Oogc6tJES=d`3q z5{uC~4}P1TEH`9#&yn3hg^1pm{G?FrA*q=nkaK@63>K@7xy)v-glw<1lJmmFi?>Zo zR>0H`tgVIIR}2(fIm4ek04uLP2C#czV}rK=jv=Mp?^0??YGq}0ftp$hkjY*VSwNXB zF7z@!lGM7h9k(=#f<&DrF`@l`9-;D7+w$XCr!inO0qiYZ-RAC0Y4GXNp#eli)Ya3Q zlZXy47Xu}jsMc*63y2crL}rm8;migFF$DUv+LiEddHAu4B_6GYhQZNA^mGB{ATMbCc5-&l)sCJ$~bdQoOJ?FlBH6=ERM|O5z zr^kDyZ6JN;!s!eiqh>&7`uW$XcoP7Z-rdeat-6r^Qbk^|3{m9wX9wrAY@lFe#}vRf zqqKXcGd+bZ3D_5hoB`uGiNS$8VuFK#h7S6Z_}`~l;b~lp&mqK6s9F?}tR64|x*Jmg ze9RzLBZNpnsp{z1Ku-Ymc%m^As_nK2BkQf%c9MRru-~HLUkH#FP>jsoGBj*2HmyS} z2Z(_XRunu;ssKtAtM}eo7obs4j9_4|Q9*)SL`VksOkfLXm<%8}OtKtykBT;n1Z>I3XI`L=$pUE)o30x3t&KasoM(VJz!ks&JQoy<>X^*x1#>R2y z+@y%a5JVAh7+XU2{}R@~Xl6=X{F{JtGKF(MRfCq%hhzX+B<=A61Edsy+zn+OV;~?* zo2?Na2M0kQgn%n#Ct!N{9Egpshy`wr*0{zbl$)?qUJ@0(_-z0`t^_Wg_!W}U($klv zuostqmT{q=5tIF{s0ay-cw}`2Y)WW*A|~B}J8Eld3nd}RI^FRAVbWzN*^xyc1;slU)yaQ(x$!f7&aMub<`ZRsv_;+|LBGp16y4g{1PQwxRi#$HKQ59~gX!J!%_ z5ah(A79F-r;9!)LhkNS_AhHyr%fD!ekKtpW`WtHWt3x2ntKSR}gj$S4uxh#F>c5!uOAjA!A{q&RwbWZ3n03}CNgZ}rWyW2gZ&=xo% z#A94?avS(7&btpE7J&4;0^R}%Mnn5DaMXt%KaTF50JzC>6ESXWT4 zyniqK*vJZNg$fg?Bg`GylBJvTS{R5$T3rGjAM)?g~_KVNi^S*$>Z(v^DIFcQpDP(icy7O!$q$ z7x7@ge5#G-(PkTeof&x-bXy_&4-^@<0o%X;5~f1mM*i?;kBN$1-`7MQFED-$Fc7cF zAR_vtfYZZ?g`YOruYnq6$arn#9?Bf=^h1_@-;if!*_*2jC>i{tKtCZNVFpUpBDgh> zxl^nG2kDAx0<^L@Hat4NPL=5y}l;d7hgUp8V zgjR}#=f*4W)v_nQ?gVO_4GzaofN)hEbsw<@&c_r8AM1u}Lnr#^0!Z0zOgEI$)WDJ1 zArBkWdkUh!&2rzr|B3`XU~SwaBr4)K*xUW6oZQ^tK{KB&w+!l3aYyFV)YM{hxT-J^ z{}5H^s-+5|2~j&NdVoIr|KR-Ui z8_B2Irpo_WyexOnu7gV+p|sx{>)+xwXgWAusDIVpXdbET9eno2JZer)4srH3V*@%N zj!l(z5+54PV=Emex|17sI55)D<>B~|mF(dyfU>4b;AK&oTPSHA|e5EN)QEB{m zBpynMx+CB+z6TxVq@xjumUWCEkQi1uWWwE2jm$ZL!~!N*gJjSG*Duody**5Be-f_| zD6XhxG9x~~gY{^&vw|m)fOfiA(S2`Q@Fi$eKA*M`vj zg_Z8#9BCGC?8ZdOO-T;hkKRuVQDy%eEk6F`cyFQyzI4pYn8C%fo<2E&29-N74?@g# zkNi5&pKC_t;oraC?ar3(0V+N%6%!6^I+uujL1JXKp-`s>U|{N~*t<9Ka+B1)BV zdtVTqjHF=*NfeA}xI)vWEh2sp#CwO@Uz`X<3BC?2DQ+k!M8|JQSLSe~EQ(Q*@^1)P z6?W7fuGI-*k*eZbCZ+T|XkoY(5C=h-E$aEgNa2Z8jdkmd>HGl)9WdYE4BmuS0$>j% z71LXd$CH>K6Q9+JzedWI%PjcNNFRvk` z38QS>9k$Dnd5Pr4&J0PaZ>XCTgW!>A_xCrZOkBG}6*ii3CLnsC{)X1q!MCh)m+n1r zUmb3RDwXLi49FlK=B^Z-0;EMG&X|7ofdYMgsL-rg_n&dbF*w%8A!-0U=E`(DoL#sJ z;F($08}%u>+W~fm(VFX6 zT2KlJF%ZSvyu5B1SG=GLJ_q9?c;y|6Ef>Ks>^rL?$w-Djb0WUe8c72Mw<4rv9{u7c zOmCHe<$A1*(k(i(vN0vX3F0je4*|70pgRuUX$fW8sQ=+=;GS0fUq&@M1_(wnqwqu` zU-b~~ORbMYd{hA{_Ml1N!57ow<0+vD3Qum`(bYBl4=$hGQM$**6o;(N7N^=A5e`?` z4D5uFOC9={&cNyj&-mx4J%HgBTC{}U9}&m;O=yR+Wg@l2xod_WLjWS)7Zi9wOT?tj z_ReFw&+}dBk}k91U|9wUCsy4znmBOW{01;lxdO2A6k!|E$*xoj;9XZr0W{(g5}sCw zZEQ=kQ;xVG1?N_;3Jc&O#Gvpn_B%Q8Ww0rA?R=UY%rnrE9~~c;UUvm90cV23aSPHB{c~;T;lt1ca?PZ0 z%}{Pm)j?AT8e@!a)gD7(q?s;8f*hG$%;qz&*nbh~Z~6D-qCtrTj-jC;5;OkyFa|jY z^S|L`-3ntGLeA4l3c>=<%V}T_Jl~)(yH-6ziW$*2)7M{+xNTWx)8imfW@%8x2?e0T z&yUYyEmK_I232kwl?M@CnbG!Uo~p8rGyCzE3h}J{?AfDhOEzkbMEXIq*|!E z&_zE`H{;w96nb_uhVf?!-4T!iw~RNo5Xm5!Ad?au{7oxT+I`SeOO+3hn`HWjVwP8& zjVXwDYjaFX5bFzqo{)fhQgsRFnX@2Wou?NG2l)@-2%w=s3%Lgv&bpNP9a0uK&D*yr zKp3;Y1mf6lF~UR`41}-*f>ja{6MtNdW$@{-=}ZX{e51$g3Mm+fNjwZ?aq47^UXA@Z z1kDL<&~D6|{7K#xI`BdfY6YE76wu|`sZr7*$p5^+RGr7%2IJ!6``*WnCBY>CD@H+m zbRX1A5H75stqyvc5Hy+L^1#0;frXa9fEZGzfI1Fhjk=;D4pbaODG!RqQXe)5B!{TK za`UG`I=9;YNXvulue06uYu>K=S~ILz(BMB}|VXb1NsCET?g4Y4pqi zN6w(dZVlUg*o4Rz4mk0J>8o$nJ!LL)>c~9Z$B!TP5jn=&`_D!Bc~I9|4z?E#K9Tt= zJbJWzRBdE;u;$UEVQb3`N!AL~m!hreO@!pR_Q?w5BBPNd5JOD2m z54s%t8hrNd`K){hI9`SePikZKDg04+rXmb3WP4=dBnc?~R=bXWACOGn?evLRpbaux zUoMj*SU>v&)bZe;C!iakvTZ?bPZAOG(j#j7 z&;hc8-@WOpuk@+^*<0@cObVPNvoHY!1Em|>BXsLZ5cnOEy-{Yqo2{Yd18jY@kRFU~ zuQ+`{WUQ$$7Afrn0|y5_WV~roOY;Jj?B`GhacgVq5!lW><7Pe@(N~nk$DU9j<$19D z{o94#F3`}FL2hlcjR(Rk0Rcz6c%hHYUKtYjMMUOstS-?10J&N?hKfTB;{RqeJpq2x zH+D+t>}DX2lFrj1P?a&o0#x!Ce|$g;=FX50$buFNobkd)T8VA{n_JqhGT>!GLPAi8 z%)CxEb74}+Z$?tR6-;q;X2~*aH0BU_@x_Cm^#iJar0;cdumGNK1cq!LdJYp$gnt^S z|6-pQ`C;e@z-Ou3@;v~Oj;~)IrASY=(wOJJd4mNQX?0%*afjf4eOv$ni;#@@Jbpkx zK;bu#y|-b&Q9?VRUM+!B@WB^y1w2}1qjcClLk&_2IPQMx>*M4Sb$tX4Yt2+4f`4%` z(0O&Z0v?7kz0Vl|?YRH&NJwP?M>8y-@gR8tnl#*3t~h0IdcnXBJ508urKR1<8oR^( z4z6lgRa=`B<|y#$yCxO0N*0rh9c(4iEx*}B?m)@@zqlkK;Mm?MbzFpyw}FNjB>kkM zBrGIkl;>QcKJ;H)AkBgX24x%~4hlk164EqEYFp>O?i;x!H=wx^Q z&^IT6_Q#h*#F$)QEEeAl9H@st|1AY&-*vgD3U@s0@sM`fg$N~j(gl+;YZ9;)q|6ZL zSF1{=irP^(c>l(oBn#MoIwPV5D&w`QS1mzchU-}WOA`NPqQ5LCM)e_*`4d2U2qg|c zhVYb?pUo&mXhHiDN`Jg5M$Ay1$9ib9q^M1>Y6tS!Jg8OUp$`T4Gs$)BxxLm-WOv!bo8#}=#Bz`b61e_Q|c$Tj?fx?sFm!x5v zGBC7(aDBK{w_knFz)evl0PIjV0+rBar?gGUo(Aj8{mTPGkieC$1D*=F$V#4t69rml zJbG?!!k<$wrUi`orq00Lj9wyo?U|D`3VCD%5}L?? z^P1$g#E8fV)wdF~8Gwxxn$!TcbNWqFWuqn$KKobnW#<>en*p+?qo^1JI5LIEiwac^ zW7WsIBRJ~}4t{o?g2o9goxv~ z3^WBx2MAA^k)i|Y^BfrhR|q(t^#&E_j3EaFelvXwTIS6m%KVM{Y*1q$01K01p}GQL z&ZrsSd@#jCaOQ}DgH18#ujrb51E!BYG@aDK)dDm}YTt7EvttXTR|3ET%qQa@qn%GK zQ4ya7%eRG|r|T$_(t3382seIyZnS$c!HfIS246NpNQqa7i3wn#*-2S{(P& zX=tOxCtP4Kpq7!%H69P~g@Gt1_IPL#PU?i5RCR^H8~D^nl_RWJy0WqoN_DpZB!-+r zF*%o6Rctf^(PF+1n--)e;umzn*55#vW8F8V`d5#?;U#e&Oa-I567DN0aFL%t?x$o0 zRh2jrxKp$Oi>1V)?^mG3K?YfJ9|Rw>WLOP&i$fHi= zC)vME7#Yt=+___E%n>ASWS3mieVLM-J^|G0f#GOO%;JyJUqTwfg_x1Ay?FcOGuL=G zvwP)f7|?&DwAd&Gz#%^UE?dk#7cKZSlhZc1!kwjr(_3`$8Mfy`&{fup`#f!iO1MC9 z*sJ|XGCmzj9>>pIOQzxx8H8UFlGKW4w_D|&-0Lj}Kz|l-(aw)XoaSXkCGNi7&e8-e zy3cgJCMr>3<+0jc-TA)j&>d0=Q zLOLG{D;)7yZhkl^>bSsv) z*>E82DSbLZ^2b<=0o zQG(V0glZoLvQU=W8WRgbk*c?lNX)3Hq~G`2S!%$h6!UGHU>QtO;)J1@p~8T6a8LVp zxZ(4Cg7FKV#sYgJyW?N{e&ZBvuT{+xl0en)Oq@v=L&G#rPK*!dBoEIDoJ(B%@oL>= zpPx@t`@;LK-QIYrku;}R!8c(YGHk_QwGb63Y(=pt3>nBR?6PlY?kv$n3v%;qmtz8O zL_N9wsU38trg#f<Tf6c-tu75T%jujWf znM}Z@$RvBESr(1qK8`jc*+yZB6~`Z4?i)asnOjg0eWAFaa}$`SQ=Oo7bw7K%F$v@I z6H{Xuv#THXACt?&e`+XY0!~8*m!tdP_e}(_N8;n$spkUY#9qm_U{m-! z7hD%fk1$4uu`!o9T4}chHke*fF4`5zu1ds9P|E(&_uE-|V7D6cX29{;0uRAfppJoE zwtdHf`o@tso}HpG?B>cYiJyc(&tGTY*(AilJxUbh?6=CI_B{KpIooIr%0#?x>8wJm)AGkxf~isfh2&>W>~T`Mn((b{p;Ce zQU>6*5pTbUPpKGVpAN{WNdWMolLz8jErMF0X2vD z^k_~x^qL@6Q`Nnj1g+`5b1*MnrOALMgzpMrP5OsjeU*st$E~919HVUadd$(9H0Vw( zY)UIO#lNdIq2eBm=@a59f^{d=bBqLiCJVM~Hdi;CMV8MFdKtYqjeEG;ub>bAJN0{% zw4T9FYcn|kGZ?5Ed^mP?#oCYL zCQLRG^d631Y{;VX%kII^;i&GBsZZ7B30$Th6QecgUpx*!UfVD1L641=#4Mkd)Gp>~ zbnszBo#j^orlfkTK4Rq_@&q~*Z?mWR35=s|o;#{omeJogav*v%b271l9a%S}sam;| zeJIOV)lFw1TO#c6)7B!Z=U9$nPceXbpK3fQb;wl@PnTirt@#d~V5PR;I9~zUxx*dz zm|@J(XQ$F9kStGf5XG;YE$u!*EO>X^ehkm_Avh7BgyMpgG&^!7%1dWQJ4T8(%^)6s~{8l8)Ko2}>fr>62e) zk{8M92*#Z<=Y%AQT8@K#Fm74YvjH4wehJIh^!KH9mCf6B_sI-j>F+$9m|n#`Zy9qp z9Sv)bjX0zxJ0E>0?@6l~U00+s8rI*Tp#8)PznWlur%E_s*@8SLso#f62(}9T|VLll25AE4)KMZVmeB$Z=@u zUC*`ne`%}kc1y zTs^0wlAJhQmUzx_u&u4Up50*5JA33ZCUmF=-(uQ9<1S@iO-bTh`{GBh-eo;Z_08o| z-JMFdron;5iM{q}D-sSxmNmjO*##; zH|@5ID#r4Xk0(jW@f;$Hx9lf~erqpYls-GV?JVwh>Cb{rQALHEhade1iN@zuuZb;) z$4^dYF#MGDG3GZNb)t(WhBO9-{p2LYr|o~DR3qzb4R?C74YG+rH`2rCP(HAYaT^%c zl8ZI&dA9dNMqty0>_JfxcEs;C-chvRJQXIPH~loWVz>FGN5rwuQNe^=p3X#}bHV_UB+j|NJ z;T|#5()wkvw0)qF6}r5eGLpVu70G0sinC*XONYLCTpg0c=T+c|^d(z1P9ROYLt zwMG6#0WZpRzcs}#oT1OR4eQD3&yBzDAb!W;R@oQ`AVQB^*{u$w0u*hY|HKrm}`5;!nt|S}k z5%T;KL*C}I#UA~7MUx@RE&7Pl)oG0%DEgWQ{lVcOkrkEj3&HdPEb9z^dYDumebx1x z2o?%z`gCYTb9P|(7@HzLwK`&UKkA@%S<|`O*pAEGfx~WQxG)?9A2e^ZH0T0Wyj~J-~9^E9}_=OLq zWNPl&Q2#7~?sOZF)^nXSu!C&kA6sSqTLYVN%5W@pk-BFxG31&B5Vg&;ZJckAQsp+3 z(VY`G{XqntXx=}#r%_csr^%iwtf-8#fo|Ki83r_ItLbX2IPFJC(kYTO2H(`*mQ^ed z9p2ziH_efKk{0^h^Mc1SrejRp-ACxdocu;iy+n}s+<{KCpj}Z#+spuW_~GGk@7M)3 z5F>ukntf)VkVQHEnPJVo`NzhS7H`4`)PM4An*D6>Gz&bgu!4h_+2_o7*qEB#s(bxul|<%?3WJ@Ooj=&qp@7n==EVpPwI z2ysmFJPrhcZE_rv@v3jRqRrKe6>|U zZpSVTH}M*c{0*y*VG8%~@F)wnBNwH(!qdAFTEY}aCqIu;1u&Vq^U{zq94qDh4rsHQ z--DHUoI9SJ$yX)XVISv@yvE1qPkpzv`O+r}Cv~-Lg1c+*=QwsuxGz^4Xs>Hnlu+Y+=Y_;hXq$Xc5!( zzyNV*mH&0`a zNcXLGdis0k{1><$_9lfaZkc1}e#UxS=#JfZ6Hw_HX0n!RWlTxh((pkCM?R{NrgULM zBhNK>Ql5AF^f{lj)@Wx$?}$*1lSBA~cNKOG-N&r_Fu1V1_2pC!1LEGIz6DZAfO_|Wu@`eqFC zJ{O;yxzfrV(xV=H$u_6W1BPk-byS|;nkxs#r%AtM2Vcsok>b{Q#^qPa^VzTAHfB#& z6tX*b&s86q-KE?hY{xRMM-peP-{i}%%iVMcJKTslV|#Su=1K66O5Se<_239T@;K7Z zv}NbklUG~^hJE;|8UfljJ^OoceY=egN8Su151^xJs8fQ(RRswgH9yr24F689nNY3& zo?2|NJPGZyD!0cx8!^8*s~)*w zQ||X>^lvmCIEKqjSP_N(k-5h)Ufcu)sU9{ZqPHz8aF5qtcc*k@?uLXEfBX6R!KBDN z|KhUb?mo}WV<6K~)acHqm>JKBaYAD|d3Q$cOXyCcdPiP{!iqAJ1qxf>PsL+5oyr(F77|q%C&Q5 zA+r#%qtd4A46Q6vtzt+b*!@Q$$wAqO?@xxwQB?li`>3`~N-kpS8wN@;xSH*)?x&%0 zK_Uzjx%n5*bro774>nHwpBku*72BIv$W*Lb)p#nI{qF9(I?Mj)@nRk2l{eN7d*dON zbd#ciOz+RPbY`%pka&4Hr)AGi`^VqZqtm%e;ml*}W%lqi1pD}lYrMq(T{j2sIcZ8- zedlXk7phd;zZMXs87jkbZh_&RY31&+<)<0MG%ZR*gJ!UX;Qe0a zclne5g9FPO^V0+`cgJO`pL1z0ixBY}59Ace_wTYV?N4UcSIy!Xm<@ z1Dj?o>jG}bGo%nj;qDelP?yEbz=OgU8;GS_b>BGZ+VH{mc$EfJbF15i^HnsSk z1mvsoHFx5^J-%xD7%tU~7A}VA3Y!@bUuSENx>5O8&$Mc4PqtIvCy7BRZuIce%;lA% zTE>mkt9Z8TZ1Zs-Pz)LOebmFE2hD+x^Tm{PH=Od*eu2V z;bE}|P}8{g*PQ1zEcm=pc|TF`Q|kp>*C38SJf4`>sk!3!Y1DZ1=_3q@kmsh@rimwO zO&;$VlhWXPz-ta{z8cf|*BPw8{U-6dtj1C#5>LoBeX&pJ7Aj1Q{vO!!MrH!OFkTA& zk?iT{S_852^)kv5J2*Fq8*D!+{LEyA$*6AMSv_pOs?rfb^<^5_z}`X@xVo~>_>=Y) z6q7HWqiyFqkNya%E#IY&_(?v`{;3lc9!?X~;j(!~ZS`nxN*|+1*oLcTuhRE1zB^&3 zJpbKDR-shm3EQv!c(bIPTh9bdUZD50-&-z5xSw3Mu*UmPJ<&v8f_~;Ka)H7TXJKLb zQ#^HnP?q9DHi0aWVzh&vqUx|_-&(vFl$AGT9+Sm0OB1el*CRB4LH@FuuOEE>E}%?E5w1Ww;j4HL_l8O)1S-d}cb z(7gN~SEKTB!czz}yOqf-9*;fG9}z)OU7lVIua;$NWTcS3sZ^))?uQ+Pvz}5R zHHGnArVfiKIQWw3`A)WDKM9DZG;WwB;Il1Lzf33dh^Ec^?Z+#RZ*3^CTkrBwY^LQ$ zs#P(NChl~FKOBr~|AEoPT+R1v(`V2={EBz`l#150?9f2X@g<|bi~luhHFQuc&Yn_B zzKs7Q`6LzQ62<1*w7sDy5vuuG3~gUP`eBgnc4tIIOZuK*x=ll z2~W}26{j3x8KNAz;7MA|kitkIF8=4*)9Xr}&<7l;6PrBFKRm`+F?N&DvOM;V*>7Q96=gpL0VE^Fu7|uA|?n<=XarS3aoG ztR>gkF5_A#jn(+f*4jMUjV8?MI&9M4^5==q$|s(zuC0v@B&zi~^}^_D3?I4`pQ`<6 zqAGgaIA&qJ9TDDy8}Oyoodx5`EI>rtjv)zTh?>Ve#BKYrB7JRrghryY{h$L^KaNn! zj4Xrjh(w|9_LJyyHSs$JOS>4g{Gi}STq<_ngxDH^rUm;NUpGFMiKjhfmz?mp4-Opr zEIK#yKP97PR3on6px7j<9l$w=&+l3$l}r|qa6h||XZbe&hgt(Q!wYZCn9ILa8I_FA zDPz>)(~j#ZtKOGga2&6%SRhoIYQqO{ZEJiFb1ch&)h zI@eJ>D2A8iUK+(sMfnbcY1OPtuRqXu5~&FcV*&A z%^Cw9AJ6QEdzL&ntv&dSjjy!}?1}Rx&RU)E?2ZnXw)0S`r3|3(%z7zsq!MY*L?olQ zl(V0ffAQCnqy#71$-z*5eubKv2qunV(?!i^g0m=0C{1y+c`hi@`rcKx@i-BjeIch; z`BZGv74K)RQc>u#YjKzsYR5e>`yoj3%8+7n8^<%7bxi$=Fq0>lQ+fVKkQ#*`4Qn53 zQ}&Lo=If`7m#4dqq&M^|67JDI57*~l!aX9Dz}c7hCD!~w{lrgR$@|a3&+zJK%7fGF z_I$38%3M49mx`@w!KtDyq`%UK?&MR9t{#Q0J?>-K)B3e!xQHK%hZn~#LuLD>Lui7q zm?PS_n$T0dPcJ_rl~cK;&_CRU&r4HD{P{o0`i>Q!!v9A}R~`t}`u=B(B?+Bdk)2^k zj3q?bqQM-6TarDZ)R2AO&97}xWJt{r_tq)5>>=*hPDQ#|<~9|=Fv)U}EMpzp?@Zr+ z-#PO<@B2RQ`8=P`bKduyhBGV~SRb;=Vg7ERex-Z!xE+fmP9HkdS}_o~XZ9W9Ct3^p z>=d1lF!tlnfF;d(tE;36vdmcQ`#Im;A5~{ zbGin0!tgKM5J_!K5{(k~ygi1A#fhSf32j|e|BN<&7f!#_fY;OZ)euuY`p{~K;G1_; z3wa>5?D!u?);)iELX+I`Ih(g1D0XT7i&wWXX|rkN;OdwYD(gXQBH?u4zo(t<GralW~C@SH~tf! zD;OjREbN}LPP_$ugGxc7@%3>Cd~)TKBVk-y1E?_&X%X2P%kMJCy(}NU`v* zM5z{gfx28rbGpxij6d}*p2egvUU$iUz%Vn=euUZ08_HBh}w@UpX4Brs<6j?5L?_3gR8fpR4dxUuv=IglqC7E#fvf<bA$T4D~-XhL{rCTp+8=$TW6ZB5_AJ6=(h% zLy+Ws+qNEgW1WZ&-Tf4Hbd{>8+)a$#KR=jp^5rm1G)Zg6%kS?oj4H#!bU-{Q;1j!WGOX zB7!`3)?I(!I-nWfkZW~9 zN+R*oM{9c6yRKV@B)tr46gv&xA7DPNR01SjWwN6sz&Ta?&ZY<9bj9(aKYI|2Sbhir zkY+ANGY*nLY4A)K$2Gdfg^yCXRTU-yn8-IHqj0-^8R>y6Z_QEB75@*s5K@Ru-E z^-z)azy1NieE;~rimCaX-gjy*Rnf!&#L+b}p{)iEjaVRpFODc0%=|(a-Tjz@edt%E zNA~`&;TqYdZNG2eFMhd~&tZ7>2m>mG?jsz%i+2OLPiD0Ck&V+X!WR#8_yr`xeD~>; zIGF}RX~|r}vJY`x*Ix5ytmWKLgqvu89WsUgYp~b{#G+%zAB*VG#UuFRu6#uEsn4x- ze zJ+{9haS{gjCMvPm|L9(%SkRv@@jNCGBf@XiVNW>BH>th)p?hW?HOZi68%M&1?VVSv zN+5KVn?P9_Q~Tfmm<~sAdMOQmv;HV6=Q~5IkiCin1d`j_Om*uoF4^!8sps zd3nG<DSjKSj2$fq&+=nGOhiDfHQ56)(IU}c(xIXPx%F1-Ys{ z(k0ytvG~3V9J#-w;d?%Wdj@R1R~z!rg4VcO3av8;>uwVJJ|P_0uP-dhknqDF%4+9 zKYtb$OBbUXa66mXjK~sn0cLe#u@kZj%jDIQ#is}G(=lBgBJc$J$~_Q6oLkK?1P?T9`&uCrXQ&a26$nw&-(ce1I_) z@W=WI`D*Lo`V@q{gf~Uq@YrEYlTrh=FI05%RQHwrVVd)3PIuDwL0`~Uj#CMb!a~%e zhte+-vc}_mn<;KO#i=HmR&Ii8j>g4LLeD+=n!ueX=N|P9WweL~dqtZ)s>;!M*KXXO zjVf9E8Cq{62|K0bm|uzW5taIa{$D zbx^Fn|EKig%owGi8QMO=v0@pIlrOfFgY}P4EdUT{-?Je@+Iu@p|j>s z)~)ORd24++UC6Mv**4FbFf`B|A4wh=8y&#iK8^n>LNc>@!h68@ zIuhJ?EIq!wktaMWRm@G5YZ|${?gA;^NQjM%9PVWQm~-ZX_u} zuA*=Erl@9(onz>%bbKVVOt#qS^jbQ8eLuavT&><=UgXm`@%bTpY$#y4*}U>;40kQ_ ze#FAU&#X*}>lB0YAh}1wGro13pWO}vfD_6lwkq`4Qmb@eO3R_ui9Ah4bqCSo6(^X9&iwm>lrj4FYwm@Nm<55Ua2w)xD_PPYa|-FgizQFi z^mWegjg_c`hWE0O4Q?1Ws3Bfmqm&D%>z>7=GnW~PkkRp=8N9Co^TzSjWwc;z#5 z<5j$x?96(|Fp&~)MCYrEH<&fIyA3!j7>|eDg|T z4Gl{3pba9I<0A){x+*Y#*C2Vax^8>s3iq%bropx7rNuYOQ@OAPF;fd~ODBaNnab&8 z9p!3Y7eN)|Y;RZ!4GDRC!-JW#!zjkl=~OcbnuIzGl&Z1-CkYMw{EBxi>aEtj*w9=P|#8 z24IlFEUoUQnN8RNWmu)Ib9aHe5h66)O*I32z0mzN2p#)%MGj?6i=<{2Cv02uA)fP? zR(Am0_!K>OG19~5WrK4!g~Bwl>?)h&|J5_6_7Ew4Xq;U9&HZ3Oycza<>G551bTb;2 zR(GEg=gAUe8NQ1AkKWDv(0w(9;y%YuO9NTZI5D+232j(<4*@F!1Fdm{{RZ^rL3QMI z@RJJD7{7pO+R^iU;+6DQ%3=Q*r4&I{SC>aPFfYyWb98Z2Y287d?w;R&vV+gy0s@{U zHNNKmj-S_??|Xr%CiD4M7d?ZL`y%VLa8ao7Lt3;6_(bjbn^hkoi7QG9+0@Bq;C&5$pJTjC>evtM6=a7GnQI!wPO-5Qevxbcuk6n=gT_^lwN=tL0 zCpZW61>pGYADG81dC!T``Qy(lTQKe?U#NKx9|E#Z~=R{)Aj)Jec zT+p9a)RH7k^sy6P3KI>g#KWu!g@voZn4vu8RvaP_5?jTPgZqhT)quX~oRauy!I&4v zk|ezA;Ssb%CPgf0z(X|dxO87S#V%;N2lKA4)=1i|;aL)9{-1fF%8ntVpwk<#e($#% z&g5l~tCW;ialph0wGz}zBn$~`9+FNyOiF+3$m)Rvzu`G)SgZFvD!5&hm=2VGS`I7) zLH>a6W5}VPU6~}w`0Ykbgj^=N06jUrRgAJQ*!kLf2MJeAPmS69Bg&dJ!Au?qwQW;M z%f{4C`a9-*{$Mn!1)t+2!>cOn08|ftT6L5>>I)WN+VOY2kqROu&H@`?*Y*frf%Cj} zZb}WOZfx=n&974$4CiS+?7+yaLy3hIRJz^gNfWgzkaRC?;qbUt}mC%pA7a4MJWj!{j;>= zZ315|xKGmd1C@C$V`8hhe>a3^-5oDB*ZLQQ!Z`B35ulis3;OTVQDq0j2_1AjBH_EW z$!ipL7XarYfD_0`RrL#5E%8+S z-)J)(rZa^K-_;KI5}H(}=Av+-mAy);Bu$nwm}ca0jd78BFEloZz&a0C!zGKyM8<*{ zkP>R&Vs$TuU*+tLrze~GXtr8>3A|2~K&>d7JBo(ID8g$_z`|kgf8II*e@eYldbPL> zgnJTxILMw@cW0^Q*ASakELHHoU;d?O%D7Rcy~>s!t73F42H4@zlVt*%Ceo5Zidb;l6b7O3>k#3hVptmFJ>#f3@FPZ17~D9u8w@3SynG!l1}2@K9 z7bX9@h*U$&iD61kdDO;~Kt|-bu~DQN-FWj=mP)tF{BL1uCkUH46&G&s1|>!`%wL$C zXH_rX1wF_W9S17YDemm%@D#5I;rSwYI~s;NbB*&_$|C#AJZyt3U+&Q=gRmMX9rlMO z;7Rg0u^HtP)JuV)!E6fwc{zajfnXx+a>U-%DTdgEKH?02tR+NSOD z5m?El49XfQlMYU$?D)ZTz(NI?3@qG&7T~+kphRmHr8Ht$ABx}KLSQskJ9%@Nxz8d} z{<_Ir^yjETmwX4CzBDRcU21q5{Z`D3MvJD*Itut1fkwN}FApNf%g0Ze jyC%Y80s_uY@1SM%jt35gJ+4PS(SZVO90?WHzW?|CVCrw| diff --git a/BookGPU/Chapters/chapter3/img/median5_overlap.png b/BookGPU/Chapters/chapter3/img/median5_overlap.png index f616641329b93663cd386beb9a0972222d289803..fb82bfe50552d528b14cf4871088251329b1f77b 100644 GIT binary patch literal 53469 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 z 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�dQ! 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 NL&pzhs+wH;zW@u0(AEF| diff --git a/BookGPU/Chapters/chapter3/img/median_1.svg b/BookGPU/Chapters/chapter3/img/median_1.svg index 3c17e21..80b1318 100644 --- a/BookGPU/Chapters/chapter3/img/median_1.svg +++ b/BookGPU/Chapters/chapter3/img/median_1.svg @@ -328,6 +328,62 @@ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" transform="scale(-0.6,-0.6)" /> + + + + + + + + + + + + 6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - i - j - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:export-xdpi="300.0546" + inkscape:export-ydpi="300.0546" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="path13697-4-2" + d="m 45.778168,475.57224 0,28.51374" + style="fill:none;stroke:#000000;stroke-width:3.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Send)" /> - first pixel - second pixel + id="path13697-7-8-1" + d="m 44.213935,476.98862 27.464791,0" + style="fill:none;stroke:#000000;stroke-width:3.70000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Send)" /> 6 common + y="506.85364" + x="30.437874" + id="tspan13913-5-6" + sodipodi:role="line">i pixels + y="466.91113" + x="71.151222" + id="tspan13913-0-3-5" + sodipodi:role="line">j + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first + second + 6 common + pixels + 14 first 14 first 6 last + 5 specific pixels for both center pixels pixels + x="255.88235" + y="768.37531">pixels common + + + first + second + { + pixels + center + { + pixels + center + + + + + + + + + + median + min + max + 4 elements + 4 elements + with lower index + with higher index + + { + { + { + + + + minimal element count + required to avoid + median elimination -- 2.39.5