\subsubsection{Simple Join} \begin{algorithm} \caption{SimpleJoin Algorithm} \begin{algorithmic}[1] \Procedure{SimpleJoin}{$R$, $S$} \For{each tuple $t_R \in R$} \For{each tuple $t_S \in S$} \If{$\texttt{pred}(t_R, t_S)$} \State $\texttt{add}\{ t_R, t_S \}$ to the join output \EndIf \EndFor \EndFor \EndProcedure \end{algorithmic} \end{algorithm} Here, the max output size is $T_R \cdot T_S$, where $T_X$ is the number of tuples for relation $X$. The cost is obviously \cost{$\texttt{cnt}(R) \cdot \texttt{cnt}(S)$}, with $\texttt{cnt}(X)$ the number of tuples in $X$.