text:
\section{Introduction}
\label{sec:introduction}

\noindent
The success of deep convolutional neural networks in a variety of machine learning tasks, such as image classification \cite{He2017,krizhevsky2012imagenet}, object detection \cite{YOLOv1,Faster-rcnn}, text recognition \cite{jaderberg_2014_eccv}, and image generation \cite{wassersteingan,goodfellow2014generative}, has led to the design of deeper, larger, and more sophisticated neural networks.
However, the large size and high number of operations of these accurate models severely limit the applicability on resource-constrained platforms, such as those associated with mobile or embedded devices.
There are many existing works aiming to solve this problem by reducing memory requirements and accelerating inference.
These approaches can be roughly divided into a few research directions:
knowledge distillation \cite{crowley2018moonshine,polino2018model,tung2019similarity},
network pruning techniques \cite{Han2015,han2015learning},
compact network designs \cite{Howard_2019_ICCV,Howard2017,Iandola2016,Sandler_2018_CVPR,Zhang2017},
and low-bit quantization \cite{courbariaux2015binaryconnect,Rastegari2016,Zhou2016}, wherein the full-precision 32-bit floating point weights (and in some cases also the activations) are replaced with lower-bit representations, e.g. 8 bits or 4 bits.
The extreme case, Binary Neural Networks (BNNs), was introduced by \cite{Courbariaux2016,Rastegari2016} and uses only 1 bit for weights and activations.

It was shown in previous work that the BNN approach is especially promising, since a binary convolution can be sped up by a factor higher than 50$\times$ while using only less than 1\% of the energy compared to a 32-bit convolution on FPGAs and ASICs \cite{Mishra2017}.
This speed-up can be achieved by replacing the multiplications (and additions) in matrix multiplications with bit-wise \texttt{xnor} and \texttt{bitcount} operations \cite{Mishra2017,Rastegari2016}, processing up to 64 values in one operation.
However, BNNs still suffer from accuracy degradation compared to their full-precision counterparts \cite{Gu_2019_ICCV,Rastegari2016}.
To alleviate this issue, there has been work to approximate full-precision accuracy by using multiple weight bases \cite{Lin2017,Zhuang_2019_CVPR} or increasing the channel number in feature maps \cite{Mishra2017,Shen2019a}.
We briefly review the related work in more detail in \autoref{sec:related-work}.

Furthermore, alternative approaches to BNNs, such as the compact network structure \mobilenet{1} \cite{Howard2017} have achieved higher accuracy in the past.
More recent work on compact network structures, such as \mobilenet{2} or \mobilenetsuffix{3} \cite{Howard_2019_ICCV,Sandler_2018_CVPR} further widened the gap in accuracy between BNNs and compact networks.
Since this has reduced the practical applicability of BNNs, our goal in this work is to show that it is possible to achieve the milestone of \mobilenet{1}-level accuracy.

Prior work has been using full-precision architectures, e.g\onedot} \def\Eg{E.g\onedot, AlexNet \cite{krizhevsky2012imagenet} and ResNet \cite{He2017}, without specific adaptations for BNNs.
To the best of our knowledge, only two works are exceptions:
Liu \emph{et al}\onedot added additional residual shortcuts to the ResNet architecture \cite{Liu_2018_ECCV} (the resulting model was reused in more recent work \cite{Gu_2019_ICCV,Martinez2020Training,Zhuang_2019_CVPR}) and Bethge \emph{et al}\onedot adapted a DenseNet architecture with dense shortcuts for BNNs \cite{Bethge_2019_ICCV_Workshops}.
In our work, we use another architectural approach \emph{MeliusNet} with designated building blocks to increase \emph{quality} and \emph{capacity} of features throughout the whole network (see \autoref{sec:melius-net}).
Further, a large share of operations in previous BNNs stems from a few layers which use 32-bit instead of 1-bit.
To solve this issue, we propose a redesign of these layers which saves operations and improves the accuracy at the same time (see \autoref{sec:deepstem-grouped}).

We evaluate MeliusNet on the ImageNet \cite{imagenet_cvpr09} dataset and compare it with the state-of-the-art (see \autoref{sec:results}).
To confirm the effectiveness of our methods, we also provided extensive ablation experiments.
During this study, we found that our training process with Adam \cite{kingma2014adam} achieves much better results than reported in previous work.
To allow for a fair comparison, we also trained the original (unchanged) networks and clearly separated the accuracy gains between the different factors in our ablation study (also within \autoref{sec:results}).
Finally, we conclude our work in \autoref{sec:conclusion}.

Summarized our main contributions in this work are:
\begin{itemize}
\itemsep0cm
    \item A novel BNN architecture which counters the lower quality and lower capacity of binary feature maps efficiently.
    \item A more accurate and efficient initial set of grouped convolution layers for all binary networks.
    \item The first BNN that matches the accuracy of \mobilenet{1} 0.5, 0.75, and 1.0.
\end{itemize}

\section{Related Work}
\label{sec:related-work}

\noindent
Alternatives to binarization, such as
compact network structures \cite{Howard_2019_ICCV,Howard2017,Iandola2016,Sandler_2018_CVPR,Zhang2017},
knowledge distillation \cite{crowley2018moonshine,polino2018model,tung2019similarity}, and
quantized approaches \cite{courbariaux2015binaryconnect,Jung_2019_CVPR,Rastegari2016,Wang_2019_CVPR,Zhou2016,zhang2018lq} have been introduced in the past.
In this section, we take a more detailed look at approaches that use BNNs with 1-bit weights and 1-bit activations.
These networks were originally introduced by Courbariaux \emph{et al}\onedot \cite{Courbariaux2016} with \emph{Binarized Neural Networks} and improved by Rastegari \emph{et al}\onedot who used channel-wise scaling factors to reduce the quantization error in their \emph{XNOR-Net} \cite{Rastegari2016}.
The following works tried to further improve the network accuracy, which was much lower than the accuracy of common 32-bit networks, with different techniques:

For instance, they modified the loss function (or added new loss functions) instead of using a simple cross-entropy loss to train more accurate BNNs \cite{Gu_2019_ICCV,Martinez2020Training,Wang_2019_CVPR}.

\emph{WRPN} \cite{Mishra2017} and Shen \emph{et al}\onedot \cite{Shen2019a} increased the number of channels for a better performance.
Their work only increases the number of channels in the convolutions and the feature maps, but does not change the architecture.

Another way to increase the accuracy of BNNs was presented by \emph{ABC\nobreakdash-Net} \cite{Lin2017} and \emph{GroupNet} \cite{Zhuang_2019_CVPR}.
Instead of using a single binary convolution, they use a set of $k$ binary convolutions to approximate a 32-bit convolution (this number $k$ is sometimes called the number of binary bases).
This achieves higher accuracy but increases the required memory and number of operations of each convolution by the factor $k$.
These approaches optimize the network \emph{within} each building block.

The two approaches most similar to our work are Bi\nobreakdash-RealNet \cite{Liu_2018_ECCV} and BinaryDenseNet \cite{Bethge_2019_ICCV_Workshops}.
They use only a single binary convolution, but adapt the network architecture compared to full-precision networks to improve the accuracy of a BNN.
However, they did not test whether their proposed architecture changes are specific for BNNs or whether they would improve a 32-bit network as well.

\section{MeliusNet}
\label{sec:melius-net}

\noindent
The motivation for MeliusNet comes from the two main disadvantages of using binary values instead of 32-bit values for weights and inputs.

On the one hand, the number of possible \emph{weight} values is reduced from up to $2^{32}$ to only $2$.
This leads to a certain quantization error, which is the difference between the result of a regular 32-bit convolution and a 1-bit convolution.
This error reduces the \emph{quality} of the features computed by binary convolutions compared to 32-bit convolutions.

On the other hand, the value range of the \emph{inputs} (for the following layer) is reduced by the same factor.
This leads to a huge reduction in the available \emph{capacity} of features as well, since fine-granular differences between values, as in 32-bit floating point values, can no longer exist.

In the following section, we describe how MeliusNet increases the quality and capacity of features efficiently.
Afterwards, we describe how the number of operations in the remaining 32-bit layers of a binary network can be reduced.
Finally, we show the implementation details of our BNN layers.

\begin{figure}[t]
\captionsetup[subfigure]{justification=centering}
\begin{subfigure}[t]{0.59\linewidth}
    \vskip 0pt
    \centering
    \includegraphics[width=0.9\linewidth]{structure-comparison/meliusnet-blocked}
    \caption{
      Building blocks of MeliusNet (c denotes the number of channels in the feature map).
      We first increase the feature \emph{capacity} by concatenating 64 newly computed channels to the feature map (yellow area) in the Dense Block.
      Then, we improve the \emph{quality} of \emph{those newly added channels} with a residual connection (green area) in the Improvement Block.
      The result is a balanced increase of \emph{capacity} and \emph{quality}.
    }
    \label{fig:meliusnet-structure}
\end{subfigure}
\begin{subfigure}[t]{0.40\linewidth}
    \vskip 0pt
    \centering
    \includegraphics[width=0.98\linewidth]{net-overview/meliusnet_cropped_long}
    \caption{
    A depiction of our MeliusNet 22 with a configuration of 4-5-4-4 blocks between transitions.
    }
    \label{fig:melius-net-22}
\end{subfigure}
\caption{The building blocks and an exemplary network structure of MeliusNet.}
\label{fig:melius-net}
\end{figure}

\subsection{Increasing Capacity and Improving Quality}
\label{sec:main-melius-net}

\noindent
The core building block of MeliusNet consists of a \emph{Dense Block} followed by an \emph{Improvement Block} (see \autoref{fig:meliusnet-structure}).
The \emph{DenseBlock} increases feature \emph{capacity}, whereas the \emph{Improvement Block} increases feature \emph{quality}.

The \emph{Dense Block} was inspired by the BinaryDenseNet architecture \cite{Bethge_2019_ICCV_Workshops}, which is a binary variant of the DenseNet architecture \cite{Huang2016}.
It consists of a binary convolution which derives 64 channels of new features based on the input feature map, with, for example, 256 channels.
These features are concatenated to the feature map itself, resulting in 320 channels afterwards, thus increasing feature \emph{capacity}.

The novel \emph{Improvement Block} increases the quality of these newly concatenated channels.
It uses a binary convolution to compute 64 channels again based on the input feature map of 320 channels.
These 64 output channels are added to the previously computed 64 channels through a residual connection, without changing the first 256 channels of the feature map (see \autoref{fig:meliusnet-structure}).
Thus, this addition improves the last 64 channels, leading to the name of our network (\emph{melius} is latin for \emph{improvement}).
With this approach each section of the feature map is improved exactly once.

Note that we could also use a residual connection to improve the \emph{whole} feature map instead of using the proposed \emph{Improvement Block}.
However, with this naive approach, the number of times each section of the feature map is improved would be highly skewed towards the initially computed features.
It would further incur a much higher number of operations, since the number of output channels needs to match the number of channels in the feature map.
With the proposed \emph{Improvement Block}, we can instead save computations and get a feature map with balanced quality improvements.
Our experiments showed that using a regular residual connection instead of our \emph{Improvement Block} leads to $\sim$3\% \emph{lower} accuracy on ImageNet for equally sized networks (see the supplementary material for details).

As stated earlier, alternating between a \emph{Dense Block} and an \emph{Improvement Block} forms the core part of the network.
Depending on how often the combination of both blocks is repeated, we can create models of different size and with a different number of operations.
Our network progresses through four stages, with transition layers in between, which halve the height and width of the feature map with a MaxPool layer.
Furthermore, the number of channels is also roughly halved in the $1\times1$ downsampling convolution during the transition (see \autoref{tab:melius-details} on page \pageref{tab:melius-details} for the exact factors).
We show an example in \autoref{fig:melius-net-22}, where we repeat the blocks 4, 5, 4, and 4 times between transition layers and achieve a model which is similar to Bi\nobreakdash-RealNet18 \cite{Liu_2018_ECCV} in terms of model size.

\subsection{Creating an Efficient Stem Architecture}
\label{sec:deepstem-grouped}

\noindent
We follow previous work and do not binarize the first convolution, the final fully connected layer, and the $1\times1$ (``downsampling'') convolutions in the network to preserve accuracy \cite{Bethge_2019_ICCV_Workshops,Liu_2018_ECCV,Zhuang_2019_CVPR}.
However, since these layers contribute a large share of operations, we propose a redesign of the first layers.
We hypothesize that improving the first set of layers in an efficient way should generalize well to all BNN architectures.
Note that we refer to the ImageNet classification task \cite{imagenet_cvpr09} in the following examples.

We compared previous BNNs to the compact network architecture \mobilenet{1} 0.5 \cite{Howard2017}, which only needs $1.49\cdot10^8$ operations in total and can achieve $63.7\%$ accuracy on ImageNet.
We found, that the closest BNN result (regarding model size and operations) is Bi\nobreakdash-RealNet34, which achieves lower accuracy ($62.2\%$) with a similar model size, but it also needs more operations ($1.93\cdot10^8$).
We presume, that because of this difference, compact model architectures are more popular for practical applications than BNNs, especially with more recent (and improved) compact networks appearing \cite{Howard_2019_ICCV,Sandler_2018_CVPR}.
To find a way to close this gap, we analyze the required number of operations in the following.

The first $7\times7$ convolution layer in a Bi\nobreakdash-RealNet18 \emph{alone} needs $65\%$ ($1.18\cdot10^8$) of the total operations of the whole network.
The three $1\times1$ downsampling convolutions account for another $10\%$ ($0.18\cdot10^8$) of operations.
Since in total about $75\%$ of all $1.81\cdot10^8$ operations are needed for these 32-bit convolutions, we focused on them to reduce the number of operations.

\begin{figure}[t]
\captionsetup[subfigure]{justification=centering}
\begin{center}
\begin{subfigure}[t]{0.49\linewidth}
   \centering
   \includegraphics[width=0.4\linewidth]{initial-layers/7x7}
   \caption{The $7\times7$ convolution with $1.18\cdot10^8$ operations.}
   \label{fig:7x7}
\end{subfigure}
\begin{subfigure}[t]{0.49\linewidth}
   \centering
   \includegraphics[width=0.4\linewidth]{initial-layers/groupedstem}
   \caption{Our proposed \emph{grouped stem} with $0.69\cdot10^8$ operations.}
   \label{fig:grouped-stem}
\end{subfigure}
\end{center}
\caption{
A depiction of the two different versions of initial layers of a network (s is the stride, g the number of groups, we use 1 group and stride 1 otherwise).
Our \emph{grouped stem} in (\subref{fig:grouped-stem}) can be applied to all common BNN architectures, e.g\onedot} \def\Eg{E.g\onedot, Bi-RealNet \cite{Liu_2018_ECCV} and BinaryDenseNet \cite{Bethge_2019_ICCV_Workshops}, as well as our proposed MeliusNet to save operations by replacing the expensive $7\times7$ convolution in the original layer configuration (\subref{fig:7x7}) without an increase in model size.
}
\label{fig:initial-layers}
\end{figure}

In previous work the $7\times7$ 32-bit convolution uses 64 channels.
We propose to replace the $7\times7$ convolution with three $3\times3$ convolutions, similar to the stem network used by Szegedy \emph{et al}\onedot \cite{szegedy2017inception}.
However, their stem network uses four times as many operations compared to the regular $7\times7$ convolution.
We use grouped convolutions \cite{krizhevsky2012imagenet} instead of regular convolutions for a reduction in operations (resulting in the name \emph{grouped stem}) and a lower number of channels.
The first convolution has 32 output channels (with a stride of 2), the second convolution uses 4 groups and 32 output channels, and the third convolution has 8 groups and 64 output channels (see \autoref{fig:initial-layers}).
This layer combination needs the same number of parameters (and thus model size) as the $7\times 7$ convolution, but only $0.69\cdot10^8$ instead of the original $1.18\cdot10^8$ operations, which is a reduction of more than $40\%$.

Similarly to adapting the stem structure, the $1\times1$ downsampling convolution can also use a certain number of groups, e.g\onedot} \def\Eg{E.g\onedot, 2 or 4.
Since the features in the feature map are created consecutively with Dense Blocks, we add a channel shuffle operation before the downsampling convolution \cite{Zhang2017} (only if we use groups in our downsampling convolution).
This allows the downsampling convolution to combine features from earlier layers and later layers together.

Even though there are certainly other ways to change the 32-bit layers to reach an even lower number of operations, e.g\onedot} \def\Eg{E.g\onedot, using quantization, a different set of layers, etc., our main goal is to highlight the high influence of these 32-bit layers on the number of operations in BNNs.
The 75\% share of operations in these layers was not clear to us in previous cost analyses of BNNs.
We hope this insight can direct future work into considering them for further improvement and investigate alternatives.
However, our proposed redesign already enables previous BNN works to reach a similar number of operations as \mobilenet{1} and we can test whether their accuracy can also achieve a similar level (see \autoref{sec:sota} for the results).

\subsection{Implementation Details}
\label{sec:general-binary}

\noindent
We follow the general principles to train binary networks as presented in previous work \cite{Bethge_2019_ICCV_Workshops,Liu_2018_ECCV,Rastegari2016}.
The weights and activations are binarized by using the \emph{sign} function:
\begin{equation}
    \mathrm{sign}(x) = \begin{cases}
    +1 ~\text{if}~ x \geq 0, \\
    -1 ~\text{otherwise}.
    \end{cases}
\end{equation}
The non-differentiability of the sign function is solved with a Straight-Through Estimator (STE) \cite{BengioLC13_STE} coupled with gradient clipping as introduced by Hubara \emph{et al}\onedot \cite{Courbariaux2016}.
Therefore, the forward and backward passes can be described as:
\begin{align}
\label{eq:STE-forward}
    \text{Forward:}& ~r_o=\mathrm{sign}(r_i)~. \\
\label{eq:STE-backward}
    \text{Backward:}& ~\frac{\partial l}{\partial r_i}=\frac{\partial l}{\partial r_o}1_{|r_i|\leq t_\mathrm{clip}}~.
\end{align}
In this case $l$ is the loss, $r_i$ a real number input, and $r_o\in\{-1,+1\}$ a binary output.
We use a clipping threshold of $t_\mathrm{clip}=1.3$ as used by \cite{Bethge_2019_ICCV_Workshops}.
Furthermore, the computational cost of binary neural networks at runtime can be highly reduced by using the \texttt{xnor} and \texttt{popcount} CPU instructions, as presented by Rastegari \emph{et al}\onedot \cite{Rastegari2016}.

Previous work \cite{Liu_2018_ECCV} has suggested a different backward function to approximate the \emph{sign} function more closely, however, we found no performance gain during our experiments, similar to the results of \cite{bethge2018training}.
Channel-wise scaling factors have been proposed to reduce the difference between a regular and a binary convolution \cite{Rastegari2016}.
However, it was also argued, that they are mostly needed to scale the gradients \cite{Liu_2018_ECCV}, that a single scaling factor is sufficient \cite{Zhou2016}, or that neither of them is actually needed \cite{bethge2018training}.
Recent work suggests, that the effect of scaling factors might be neutralized by BatchNorm layers \cite{Bethge_2019_ICCV_Workshops}.
For this reason, and since we have not observed a performance gain by using scaling factors, we did not apply them in our convolutions.
We use the typical layer order (BatchNorm $\rightarrow$ sign $\rightarrow$ BinaryConv) of previous BNNs \cite{Bethge_2019_ICCV_Workshops,Liu_2018_ECCV}.
Finally, we replaced the bottleneck structures, consisting of a $1\times1$ and a $3\times3$ convolution, which are often used in full-precision networks, as it was done in previous work \cite{bethge2018training,Zhuang_2019_CVPR} and used a single $3\times3$ (1-bit) convolution instead.

\section{Results and Discussion}
\label{sec:results}

\noindent
We selected the challenging task of image classification on the ImageNet dataset \cite{imagenet_cvpr09} to test our new model architecture and perform ablation studies with our proposed changes.
Our implementation is based on BMXNet 2\footnote{\url{https://github.com/hpi-xnor/BMXNet-v2}} \cite{HPI_xnor} and the model implementations of Bethge \emph{et al}\onedot \cite{Bethge_2019_ICCV_Workshops}.
Note that experiment logs, accuracy curves, and plots of model structures for all trainings are in the supplementary material.

\begin{table}[t]
\caption{
Details of our different MeliusNet configurations, including the number of floating point and binary operations (FLOPs/BOPs), and their accuracy on the ImageNet classification task \cite{imagenet_cvpr09}.
The combined number of operations (OPs) is based on the speed-up factor of previous work \cite{Bethge_2019_ICCV_Workshops,Liu_2018_ECCV}: OPs = $\left(\frac{1}{64}\cdot\mathrm{BOPs}+\mathrm{FLOPs}\right)$.
The channel reduction factors are chosen at such specific fractions to keep the number of channels as multiples of 32.
The suffixes /2 and /4 denote, that the $1\times1$ downsampling convolutions use 2 and 4 groups, respectively.
}
\begin{small}
\begin{center}
\begin{tabular}{|l|c|c|r|c|c|c|c|}
\hline
\thead{Name\\(block numbers)} & \thead{Channel\\reduction factor\\in transitions} & \thead{BOPs\\$(\cdot10^9)$} & \thead{FLOPs\\$(\cdot10^8)$} &
\thead{OPs\\$(\cdot10^8)$} & \thead{Size\\(MB)} & \thead{OPs and Size\\similar to} & \thead{Top-1\\(Top-5)\\accuracy} \\ \hline
\mrc{2}{MeliusNet22\\(4,5,4,4)}      & \mrc{2}{$\frac{160}{320},\frac{224}{480},\frac{256}{480}$}  & \mrc{2}{4.62} & \mrc{2}{1.35} & \mrc{2}{2.08} & \mrc{2}{   3.9} & \mrc{2}{BDenseNet28\\\cite{Bethge_2019_ICCV_Workshops}} & \mrc{2}{63.6\%\\(84.7\%)} \\ & & & & & & & \\
\mrc{2}{MeliusNet29\\(4,6,8,6)}      & \mrc{2}{$\frac{128}{320},\frac{192}{512},\frac{256}{704}$}  & \mrc{2}{5.47} & \mrc{2}{1.29} & \mrc{2}{2.14} & \mrc{2}{   5.1} & \mrc{2}{BDenseNet37\\\cite{Bethge_2019_ICCV_Workshops}} & \mrc{2}{65.8\%\\(86.2\%)} \\ & & & & & & & \\
\mrc{2}{MeliusNet42\\(5,8,14,10)}    & \mrc{2}{$\frac{160}{384},\frac{256}{672},\frac{416}{1152}$} & \mrc{2}{9.69} & \mrc{2}{1.74} & \mrc{2}{3.25} & \mrc{2}{  10.1} & \mrc{2}{\mobilenet{1}\\0.75\cite{Howard2017}} & \mrc{2}{69.2\%\\(88.3\%)} \\ & & & & & & & \\
\mrc{2}{MeliusNet59\\(6,12,24,12)}   & \mrc{2}{$\frac{192}{448},\frac{320}{960},\frac{544}{1856}$} & \mrc{2}{18.3} & \mrc{2}{2.45} & \mrc{2}{5.25} & \mrc{2}{  17.4} & \mrc{2}{\mobilenet{1}\\1.0\cite{Howard2017}} & \mrc{2}{71.0\%\\(89.7\%)} \\ & & & & & & & \\ \hline
\mrc{2}{MeliusNetA\\(4,5,5,6)/4}     & \mrc{2}{$\frac{160}{320},\frac{256}{480},\frac{288}{576}$}  & \mrc{2}{4.85} & \mrc{2}{0.86} & \mrc{2}{1.62} & \mrc{2}{   4.0} & \mrc{2}{Bi-RealNet18\\\cite{Liu_2018_ECCV}} & \mrc{2}{63.4\%\\(84.2\%)} \\ & & & & & & & \\
\mrc{2}{MeliusNetB\\(4,6,8,6)/2}     & \mrc{2}{$\frac{160}{320},\frac{224}{544},\frac{320}{736}$}  & \mrc{2}{5.72} & \mrc{2}{1.06} & \mrc{2}{1.96} & \mrc{2}{   5.0} & \mrc{2}{Bi-RealNet34\\\cite{Liu_2018_ECCV}} & \mrc{2}{65.7\%\\(85.9\%)} \\ & & & & & & & \\
\mrc{2}{MeliusNetC\\(3,5,10,6)/4}    & \mrc{2}{$\frac{128}{256},\frac{192}{448},\frac{224}{704}$}  & \mrc{2}{4.35} & \mrc{2}{0.82} & \mrc{2}{1.50} & \mrc{2}{   4.5} & \mrc{2}{\mobilenet{1}\\0.5\cite{Howard2017}} & \mrc{2}{64.1\%\\(85.0\%)} \\ & & & & & & & \\
\hline
\end{tabular}\\
\end{center}
\end{small}
\label{tab:melius-details}
\end{table}

To compare to other state-of-the-art networks we created different configurations of MeliusNet with different model sizes and number of operations (see \autoref{tab:melius-details}).
Our main goal was to reach fair comparisons to previous architectures by using a similar model size and number of operations.
For example, we chose the configurations of MeliusNet22 and MeliusNet29 to be similar to BinaryDenseNet28 and BinaryDenseNet38, respectively.
Note that we calculated the number of operations in the same way as in previous work, factoring in a $64\times$ speed-up factor for binary convolutions \cite{Bethge_2019_ICCV_Workshops,Liu_2018_ECCV}.
For a comparison to Bi\nobreakdash-RealNet we further reduced the amount of operations, by using 2 or 4 groups in the downsampling convolutions for MeliusNetA and MeliusNetB, respectively and added a channel shuffle operation beforehand as described in \autoref{sec:deepstem-grouped}.
Finally, we created the networks MeliusNetC, MeliusNet42 and MeliusNet59 to be able to fairly compare to \mobilenet{1} 0.5, 0.75 and 1.0, respectively.
This also shows, that the basic network structure of MeliusNet can be adapted easily to create networks with different sizes and number of operations by tuning the number of blocks.

\subsection{Grouped Stem Ablation Study and Training Details}
\label{sec:training-details-grouped-stem}

\begin{table*}[t]
\caption{
Ablation study on ImageNet \cite{imagenet_cvpr09} separating the gains between the training process and \emph{grouped stem}.
It shows the generic applicability of both.
}
\begin{small}
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\thead{Model\\size}  & \thead{Network\\Architecture} & \thead{Training\\procedure} & \thead{Grouped\\stem} &
\thead{OPs\\$(\cdot10^8)$} & \thead{Top-1\\acc.} & \thead{$\Delta$} & \thead{$\Delta$ of \\ method} \\ \hline
\mrc{8}{$\sim$4.0MB} & \mrc{3}{ResNetE18\cite{Bethge_2019_ICCV_Workshops}}        & Original & \ding{55} & $1.63$  & 58.1\%   & (base)   & $-1.9$    \\
                     &                                                            & Ours     & \ding{55} & $1.63$  & 60.0\%   & $+1.9$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $1.14$  & 60.6\%   & $+2.5$   & $+0.6$    \\ \cline{2-8}
                     & \mrc{3}{BinaryDenseNet28\cite{Bethge_2019_ICCV_Workshops}} & Original & \ding{55} & $2.58$  & 60.7\%   & $+2.6$   & $-1.0$    \\
                     &                                                            & Ours     & \ding{55} & $2.58$  & 61.7\%   & $+3.6$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $2.09$  & 62.6\%   & $+4.5$   & $+0.9$    \\ \cline{2-8}
                     & \mrc{2}{MeliusNet22 (ours)}                                & Ours     & \ding{55} & $2.57$  & 62.8\%   & $+4.7$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $2.08$  & 63.6\%   & $+5.5$   & $+1.1$    \\ \hline \hline
\mrc{8}{$\sim$5.1MB} & \mrc{3}{Bi-RealNet34\cite{Liu_2018_ECCV}}                  & Original & \ding{55} & $1.93$  & 62.2\%   & (base)   & $-1.1$    \\
                     &                                                            & Ours     & \ding{55} & $1.93$  & 63.3\%   & $+1.1$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $1.43$  & 63.7\%   & $+1.5$   & $+0.4$    \\ \cline{2-8}
                     & \mrc{3}{BinaryDenseNet37\cite{Bethge_2019_ICCV_Workshops}} & Original & \ding{55} & $2.71$  & 62.5\%   & $+0.3$   & $-0.8$    \\
                     &                                                            & Ours     & \ding{55} & $2.71$  & 63.3\%   & $+1.1$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $2.20$  & 64.2\%   & $+2.0$   & $+0.9$    \\ \cline{2-8}
                     & \mrc{2}{MeliusNet29 (ours)}                                & Ours     & \ding{55} & $2.63$  & 64.9\%   & $+2.7$   & (base)    \\
                     &                                                            & Ours     & \ding{51} & $2.14$  & 65.8\%   & $+3.6$   & $+0.9$    \\ \hline
\end{tabular}
\end{center}
\end{small}
\label{tab:ablation}
\end{table*}

\noindent
When training models with our proposed \emph{grouped stem} structure based on previous architectures, we discovered a large performance gain compared to previously reported results.
To verify the source of these gains we ran an ablation study on ResNetE18 \cite{bethge2018training} (which is similar to Bi\nobreakdash-RealNet18 \cite{Liu_2018_ECCV}, except for the addition of a single ReLu layer and a single BatchNorm), Bi\nobreakdash-RealNet34 \cite{Liu_2018_ECCV}, Binary\-Dense\-Net28/37\cite{Bethge_2019_ICCV_Workshops}, and our MeliusNet22/29 with and without our proposed grouped stem structure (see \autoref{tab:ablation}).

On the one hand, the results show, that using grouped stem instead of a regular $7\times7$ convolution increases the model accuracy for all tested model architectures.
The actual increase by using the grouped stem structure is between $0.4\%$ and $1.1\%$ for each model in addition to saving a constant amount ($0.49\cdot10^8$) of operations.
We conclude, that not only is using our grouped stem structure highly efficient, but it also generalizes well to different BNN architectures.

On the other hand, we also recognized that our training process performs significantly better than previous training strategies.
Therefore, we give a brief overview about our training configuration in the following:

For data preprocessing we use channel-wise mean subtraction, normalize the data based on the standard deviation, randomly flip the image with a probability of $\frac{1}{2}$ and finally select a random resized crop, which is the same augmentation scheme that was used in XNOR-Net \cite{Rastegari2016}.
We initialize the weights with the method of \cite{glorot2010understanding} and train our models from scratch (without pre-training a 32-bit model) for 120 epochs with a base learning rate of $0.002$.
We use the RAdam optimizer proposed by Liu \emph{et al}\onedot \cite{Liu2019b} and the default (``cosine'') learning rate scheduling of the GluonCV toolkit \cite{gluoncvnlp2019}.
This learning rate scheduling steadily decreases the learning rate based on the following formula ($t$ is the current step in training, with $0\leq t\leq 1$): $\mathrm{lr}(t)=\mathrm{lr}_\mathrm{base}\cdot\big(\frac{1 + \mathrm{cos}(\pi \cdot t)}{2}\big)$.
However, we achieved similar (only slightly worse) results with the same learning rate scheduling and the Adam \cite{kingma2014adam} optimizer, if we use a warm-up phase of 5 epochs in which the learning rate is linearly increased to the base learning rate.
Using SGD led to the worst results overall and even though we did some initial investigation into the differences between optimizers (included in supplementary material) we could not find a clear reason for the performance difference (a similar observation was made by Alizadeh \emph{et al}\onedot \cite{alizadeh2018empirical}).

\subsection{Ablation Study on 32-bit Networks}
\label{sec:ablation-32-bit}

\noindent
We performed another ablation study to find out whether our proposed MeliusNet is indeed specifically better for a BNN or whether it would also increase the performance of a 32-bit network.
Since our proposed MeliusNet without the Improvement Blocks is similar to a DenseNet, we compared these two architectures and trained two 32-bit models based on a DenseNet and a MeliusNet.
We used the off-the-shelf Gluon-CV training script for ImageNet and their DenseNet implementation as a basis for our experiment \cite{gluoncvnlp2019}.
To achieve a fair comparison, we constructed two models of similar size and operations.
We used 4-4-4-3 blocks (Dense Block and Improvement Block) between the transition stages for MeliusNet and 6-6-6-5 blocks (Dense Blocks only) for a DenseNet.
The models need 4.5 billion FLOPs with 20.87 MB model size and 4.0 billion FLOPs with 19.58 MB model size, respectively.
Therefore, we expect MeliusNet to definitely achieve a slightly better result, since it uses slightly more FLOPs and has a higher model size, unless our designed architecture is only specifically useful for BNNs.
Both models were trained with SGD with momentum ($\mathrm{lr} = 0.1$) and equal hyperparameters for 90 epochs (with a warm-up phase of 5 epochs and ``cosine'' learning rate scheduling).
Note that additional augmentation techniques (HSV jitter and PCA-based lightning noise) were used (in this study only), since we did not change the original Gluon-CV training script for the 32-bit models.

The result shows basically identical training curves between both models for the whole training (see \autoref{fig:fp-melius}).
At the end of training, the training accuracy is even between both architectures at $62.4\%$.
Even though the validation accuracy does not match for the whole training, this is probably caused by randomized augmentation and shuffling of the dataset.
The accuracy gain of 1\% to 1.6\% that could be observed between a binary DenseNet and a binary MeliusNet (see \autoref{tab:ablation}) does not occur for the 32-bit version of networks.
Therefore, we conclude, that using our MeliusNet architecture for 32-bit models does not lead to an improvement, and our architecture is indeed only an improvement for BNNs.

\begin{figure}[t]
\begin{center}
   \includegraphics[width=0.6\linewidth]{fp-meliusnet/graph}
\end{center}
   \caption{
   A comparison between the 32-bit versions of MeliusNet and DenseNet (best viewed in color).
   We tuned the number of building blocks to achieve models of similar complexity: MeliusNet uses 4,4,4,3 (4.5$\times10^{9}$ FLOPs, 20.87 MB) and DenseNet uses 6,6,6,5 (4.0$\times10^{9}$ FLOPs, 19.58 MB).
   We used the off-the-shelf Gluon-CV training script for ImageNet \cite{gluoncvnlp2019} with identical hyperparameters to train both models.
   The accuracy curves are almost indistinguishable for the whole training process and our 32-bit MeliusNet is not able to improve the result compared to a 32-bit DenseNet, even though it uses slightly more FLOPs and memory.
   }
\label{fig:fp-melius}
\end{figure}

\subsection{Comparison to State-of-the-art}
\label{sec:sota}

\begin{table*}[t]
\caption{
Comparison to state-of-the-art on ImageNet \cite{imagenet_cvpr09}.
All models were trained with cross-entropy loss.
Methods include low-bit quantization (first section) and approaches with multiple binary bases (second section).
The comparison is in parallel for two size categories (with differing number of layers).
The best result in each section is bold.
}
\begin{small}
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\mrc{3}{Method} & \mrc{3}{Bitwidth\\(W/A)} & \mcth{7}{ImageNet\vspace{-0.1cm}} \\ \cline{3-9}
& & \thead{Top-1\\Acc.} & \thead{Model\\Size} & \thead{OPs\\$(\cdot10^8)$} & & \thead{Top-1\\Acc.} & \thead{Model\\Size} & \thead{OPs\\$(\cdot10^8)$} \\ \hline
BWN\cite{Rastegari2016}                         & 1/32           & 60.8          &          4MB         & 18.1        && -             &           -           &  -         \\
TTQ\cite{zhu2016trained}                        & 2/32           & \textbf{66.6} &         5.3MB        & 18.1        && -             &           -           &  -         \\
HWGQ\cite{cai2017deep}                          & 1/2            & 59.6          &          4MB         & $\sim$2.4   && 64.3          &          5.1MB        & $\sim$3.4  \\
LQ-Net\cite{zhang2018lq}                        & 1/2            & 62.6          &          4MB         & $\sim$2.4   && \textbf{66.6} &          5.1MB        & $\sim$3.4  \\
SYQ\cite{faraone2018syq}                        & 1/2            & 55.4          &          4MB         & $\sim$2.4   && -             &           -           &  -         \\
DoReFa\cite{Zhou2016}                           & 2/2            & 62.6          &         5.3MB        & $\sim$2.4   && -             &           -           &  -         \\ \hline \hline
Ensemble\cite{Zhu_2019_CVPR}                    & (1/1)$\times$6 & 61.0          &           -          &  -          && -             &           -           &  -         \\
Circulant-CNN\cite{Cvpr2019}                    & (1/1)$\times$4 & 61.4          &           -          &  -          && -             &           -           &  -         \\
ABC-Net\cite{Lin2017}                           & (1/1)$\times$5 & 65.0          &        8.7MB         & 7.8         && -             &           -           &  -         \\
GroupNet\cite{Lin2017}                          & (1/1)$\times$5 & \textbf{67.0} &        9.2MB         & 2.68        && \textbf{70.5} &         15.3MB        & 4.13       \\ \hline \hline
BNN\cite{Courbariaux2016}                       & 1/1            & 42.2          & \mrc{09}{$\sim$4MB}  & 1.57        && -             & \mrc{09}{$\sim$5.1MB} &  -         \\
XNOR-Net\cite{Rastegari2016}                    & 1/1            & 51.2          &                      & 1.59        && -             &                       &  -         \\
Bi-RealNet\cite{Liu_2018_ECCV}                  & 1/1            & 56.4          &                      & 1.63        && 62.2          &                       & 1.93       \\
XNOR-Net++\cite{bulat2019xnor}                  & 1/1            & 57.1          &                      & 1.59        && -             &                       &  -         \\
Bi-RealNet\,(our baseline)                      & 1/1            & 60.6          &                      & 1.14        && 63.7          &                       & 1.43       \\
BDenseNet\cite{Bethge_2019_ICCV_Workshops}      & 1/1            & 60.7          &                      & 2.58        && 62.5          &                       & 2.71       \\
Strong Baseline\cite{Martinez2020Training}      & 1/1            & 60.9          &                      & 1.82        && -             &                       &  -         \\
BDenseNet\,(our baseline)                       & 1/1            & 62.6          &                      & 2.09        && 64.2          &                       & 2.20       \\
MeliusNetA,B\,(ours)                            & 1/1            & \textbf{63.4} &                      & 1.62        && \textbf{65.7} &                       & 1.96       \\ \hline \hline
32-bit baseline                                 & 32/32          & 69.3          &            46.8MB    & 18.1        && 73.3          &            87.2MB     & 36.6       \\ \hline
\end{tabular}\\
\end{center}
\end{small}
\label{tab:imagenet-sota}
\end{table*}

\noindent
The results of MeliusNetA and MeliusNetB compared to the state-of-the-art can be seen in \autoref{tab:imagenet-sota}.
Previous work has often compared two different size categories, BiRealNet18 and BiRealNet34 \cite{Liu_2018_ECCV}, without taking into account the cost in operations and model size.
For a proper cross-domain comparison to quantized approaches and approaches with multiple binary bases we included these numbers.
In those cases where the authors did not reveal the exact numbers, we calculated them to the best of our knowledge.
Since we trained the binary network architectures Bi-RealNet \cite{Liu_2018_ECCV} and BinaryDenseNet (BDenseNet) \cite{Bethge_2019_ICCV_Workshops} for our \emph{grouped stem} ablation study with our training strategy, we also report our results in addition to the accuracy reported by the original authors.

\subsubsection*{Comparison to other binary networks (one base):}

Overall, MeliusNetA and B achieve the best accuracy compared to other approaches with 1-bit activations and 1-bit weights without additional cost.
However, we recognize that by applying \emph{grouped stem} to the Bi-RealNet architecture it can also achieve a much lower cost than our MeliusNet, which could be useful for certain applications despite its lower accuracy.

We limited the comparison to other works that use cross-entropy loss as a training objective.
We note that Martinez \emph{et al}\onedot \cite{Martinez2020Training} showed that their approach with multi-stage knowledge distillation training can further enhance the accuracy and achieve 64.4\% over their 60.9\% accuracy of the ``Strong Baseline''.
However, their approach is orthogonal to ours, since we focus on the architectural improvement and purposely use only cross-entropy loss for training.
Similarly we have not included other work in \autoref{tab:imagenet-sota}, which uses more sophisticated training techniques, such as CI-Net \cite{Wang_2019_CVPR} and BONN \cite{Gu_2019_ICCV}.
These works achieved 59.9\% and 59.3\% accuracy on ImageNet (for a 4 MB model) with their improved training strategy, respectively.

\subsubsection*{Comparison to quantized networks:}

MeliusNet compares favorably to most quantized approaches (first section in \autoref{tab:imagenet-sota}), achieving a higher accuracy and lower resource cost than DoReFa \cite{Zhou2016} and HWGQ \cite{cai2017deep}.
Some quantized approaches can achieve a higher accuracy than MeliusNet, but they also require a significantly higher model size or higher number of operations.
TTQ \cite{zhu2016trained} with 2-bit weights and 32-bit activations achieves 66.6\% accuracy, but does not save any operations and has a higher model size.
LQ-Net \cite{zhang2018lq} achieves 0.9\% higher accuracy, but also needs about 75\% more operations.

\subsubsection*{Comparison to other binary networks (multiple bases):}

Comparing MeliusNetA and B to approaches with multiple bases (second section in \autoref{tab:imagenet-sota}) reveals that both ABC-Net \cite{Lin2017} and GroupNet \cite{Zhuang_2019_CVPR} achieve better results.
However, they come at a significant increase in model size and operations and represent a different approach of using multiple binary convolutions instead of a single binary convolution in each layer.
Still, the exceptionally high accuracy of GroupNet partly achieves the level of \mobilenet{1}, hence we examined it further in the next section with a comparison to the larger MeliusNet models.

\subsubsection*{Cross-domain comparison between BNNs and compact networks:}

For another challenging comparison, we compared our results based on Bi\nobreakdash-RealNet34, MeliusNetC, MeliusNet42, and MeliusNet59 to the compact network architecture \mobilenet{1} \cite{Howard2017} in \autoref{tab:comparison-mobile-net}.
Furthermore, we included the GroupNet approach \cite{Zhuang_2019_CVPR} as an alternative approach that uses 5 binary bases.

First of all, the comparison between \mobilenet{1} and MeliusNet shows small accuracy improvements between $0.4\%$ and $0.8\%$ across three different model sizes.
For a model size of $\leq$5.1 MB, a Bi-RealNet34 trained with \emph{grouped stem} also shows the potential to reach the same accuracy with a lower amount of operations.
This shows that our proposed \emph{grouped stem} structure can effectively reduce the gap between \mobilenet{1} and previous BNN work.

We note that the GroupNet approach can also achieve an accuracy similar to \mobilenet{1} 1.0, although they have not shown the same level of accuracy for smaller model sizes, e.g\onedot} \def\Eg{E.g\onedot, \mobilenet{1} 0.5 and 0.75.
In addition, GroupNet and MeliusNet differ in their approach.
GroupNet replaced a single binary convolution with multiple ones while reusing a regular Bi-RealNet architecture, whereas MeliusNet uses a novel architecture but with a single binary convolution per layer.
This also means both approaches could be combined in future work to achieve even more accurate BNNs.

\begin{table}[t]
\caption{
Comparison of \mobilenet{1} \cite{Howard2017}, the GroupNet approach \cite{Zhuang_2019_CVPR}, which uses multiple binary bases, and our results, based on Bi-RealNet34 \cite{Liu_2018_ECCV} and our binary MeliusNet on the ImageNet dataset \cite{imagenet_cvpr09}.
We can achieve a similar or better accuracy than MobileNet 0.5, 0.75 and 1.0 with different networks.
}
\begin{small}
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline
\thead{Model\\size} & \thead{Architecture} & \thead{Bitwidth\\(W/A)} & \thead{OPs\\$(\cdot10^8)$} & \thead{Top-1\\acc.} & \thead{$\Delta$} \\ \hline
9.2MB          & GroupNet18 \cite{Zhuang_2019_CVPR}            & (1/1)$\times$5   & $2.68$  & 67.0\%          & -        \\
15.3MB         & GroupNet34 \cite{Zhuang_2019_CVPR}            & (1/1)$\times$5   & $4.13$  & 70.5\%          & -        \\ \hline
5.1MB          & Bi-RealNet34 \cite{Liu_2018_ECCV}             & 1/1              & $1.93$  & 62.2\%          & $-1.5$   \\
5.1MB          & \emph{\mobilenet{1} 0.5} \cite{Howard2017}    & 32/32            & $1.49$  & 63.7\%          & (base)   \\
5.1MB          & Bi-RealNet34$^*$ \cite{Liu_2018_ECCV}         & 1/1              & $1.43$  & 63.7\%          & $\pm0.0$ \\
4.5MB          & \textbf{MeliusNetC}                           & 1/1              & $1.50$  & \textbf{64.1\%} & $+0.4$   \\ \hline
\mrc{2}{10MB}  & \emph{\mobilenet{1} 0.75} \cite{Howard2017}   & 32/32            & $3.25$  & 68.4\%          & (base)   \\
               & \textbf{MeliusNet42}                          & 1/1              & $3.25$  & \textbf{69.2\%} & $+0.8$   \\ \hline
\mrc{2}{17MB}  & \emph{\mobilenet{1} 1.0} \cite{Howard2017}    & 32/32            & $5.69$  & 70.6\%          & (base)   \\
               & \textbf{MeliusNet59}                          & 1/1              & $5.32$  & \textbf{71.0\%} & $+0.4$   \\ \hline
\end{tabular}\\
{\small $^*$ This result is based on our training using grouped stem.}\\
\end{center}
\end{small}
\label{tab:comparison-mobile-net}
\end{table}

We conclude that MeliusNet is a valid alternative to the decomposition strategy described in GroupNet, since it is more flexible for creating models with different size and number of operations.
MeliusNet also shows very promising results to be comparable to \mobilenet{1} since it surpasses their accuracy for three different model sizes.

\section{Conclusion}
\label{sec:conclusion}

\noindent
Previous work has shown different techniques to increase the accuracy of BNNs by increasing the channel numbers or replacing the binary convolutions with convolutions with multiple binary bases.
The Bi\nobreakdash-RealNet and the BinaryDenseNet approaches were the first to change the architecture of a BNN compared to a 32-bit network.
In our work, we showed a novel architecture \emph{MeliusNet}, which is specifically designed to amend the disadvantages of using binary convolutions.
In this architecture, we repeatedly add new features and improve them to compensate for the lower quality and lower capacity of binary feature maps.
Our experiments with different model sizes on the challenging ImageNet dataset show that MeliusNet is superior to previous BNN approaches, which adapted the architecture.

Further, we presented \emph{grouped stem}, an optimized set of layers that can replace the first convolution.
This has considerably reduced the gap between BNN results and compact networks, and with our optimization, both previous architectures and our proposed MeliusNet can reach an accuracy similar to \mobilenet{1} 0.5, 0.75, and 1.0 based on the same model size and a similar amount of operations.
This provides a strong basis for BNNs to gain popularity and possibly achieve future milestones, such as reaching an accuracy similar to \mobilenet{2} or \mobilenetsuffix{3}.
The higher energy saving potential of BNNs (based on customized hardware) could then make them the favorable choice for many applications.

\clearpage
\bibliographystyle{splncs04}

redpajama_set_name: RedPajamaArXiv


The Center for Transformative Undergraduate Experiences (TrUE) is now accepting applications for the 2019-2020 Dr. Sarah Kulkofsky Scholarship. The scholarship will provide support to one Texas Tech University undergraduate researcher who is engaged in a research project under the guidance of a faculty mentor. Applications will be reviewed by the Dr. Sarah Kulkofsky Scholarship Committee. The 2019-2020 scholarship award, totaling $500, will be dispersed $250 in the fall 2019 semester and $250 in the spring 2020 semester. The recipient will be recognized during the TTU Undergraduate Research Conference in April 2019.
Scholarship application deadline: 11:59 p.m. on Thursday, February 7, 2019.
Dr. Sarah Kulkofsky: Sarah Christine Kulkofsky began working at Texas Tech University as an Assistant Professor of Human Development and Family Studies in 2007. During her time at TTU, she excelled in her position and received many accolades. "Dr. K," as students often referred to her, truly loved her research and students. After Dr. Kulkofsky passed away on January 13, 2011 at the age of 30, a scholarship was established in her name by Sarah's family members.


text:
Home/EXCLUSIVE/EXCLUSIVE: Dr. Okan Dağlı on the partial opening of Varosha – "This creates tension"
EXCLUSIVE: Dr. Okan Dağlı on the partial opening of Varosha – "This creates tension"
Word From Cyprus reached out to spokesperson and activist for the Famagusta Initiative Dr. Okan Dağlı , to get his thoughts on the partial opening of the closed area of Varosha.
Veli Kerlo
How does this affect the elections in the north of Cyprus?
Dr. Okan Dağlı – "This was obviously done to affect the elections. When we look at Social Media, everyone, whether they follow politics closely or not so closely, have shown a negative reaction to these developments. They have assessed that this is an interference to the will of Turkish Cypriots. In my opinion, the situation will not have the results that those who have done such an interference expect. From what I see there is a big negative response from those that want no interference with the will of Turkish Cypriots, that want Democratic Participation. Of course some nationalist groups of people can applaud these developments, however, from what I see the majority of people are against this. I think that these actions will turn on those that have taken them on Sunday at the ballots".
How do you think the subject of Varosha will end?
Dr. Okan Dağlı – "This subject has been going on for a very long time now. How will Varosha reopen? Who will be controlling it? Will former residents be able to return? Obviously, these new developments have turned everything upside-down. We think that any opening that is so one-sided, which leaves out the other side, which leaves out the rightful owners, will only be dividing the two communities. We also see that all the other political parties [in the north of Cyprus] are also against such an action. As you know we also saw the breakaway of the HP [Peoples Party] from the coalition government, who also supported the opening of Varosha under the administration of the TRNC. Even they were against these actions, which shows us that there is definitely a consensus regarding this subject".
To the question of what he personally generally thinks of these new developments, Dağlı said that these one-sided actions create tension at the island, that these actions create divisiveness and that he personally as well as the Famagusta Initiative do not support the one-sided opening of Varosha without the equal participation of its rightful owners. Lastly, to the question of what he himself and the Famagusta Initiative think of the protest by the Greek Famagusta Municipality tomorrow at the Deryneia Check Point, Dağlı said that they salute the participators of the protest since they are the rightful owners at Varosha.
Word From Cyprus
closed varosha Cyprus Cyprus Problem dr. okan dagli ersin tatar maras okan dagli Varosha
Toughest of times for Louroujina (VIDEO)
Word From Cyprus Exclusive Interview – Shakir Alemdar (VIDEO)
Historical information on the Kamares Arches (VIDEO)
Historical information on the Tuzla Mosque (VIDEO)

redpajama_set_name: RedPajamaCommonCrawl


Click on the small picture to see a larger, more detailed version. I toured Oregon in September 2004. The weather was cloudy and/or rainy a lot, so many of the pictures were of only so-so quality. The trip however was very enjoyable and was led by Jan Hansen (dba Otus Asio Tours otusasiotours@bellsouth.net). Jan leads a variety of trips, all of which I would recommend.
Pacific Ocean on the day of the scheduled pelagic trip from our motel, SEptember 18, 2004 and Lighthouse September 19 2004, Bandon.


This question was a miss! The audience — and the internet — was outraged after a 2016 Miss USA contestant was asked a pointedly political question during the Q&A session of the pageant.
Miss Hawaii Chelsea Hardin was directly asked her presidential pick by judge Laura Brown (with pageant officials later noting that the question was written by the Miss USA organization). "With Hillary Clinton expected to surpass the delegate count needed to win the Democratic party nomination, my question to you is: If the election were held tomorrow, would you vote Hillary Clinton or Donald Trump for president, and why would you chose one over the other?" Brown asked.
Many viewers took to Twitter to argue that it was wrong to publicly ask a contestant who she's voting for. Many commended Miss Hawaii for handling the tricky question with grace and poise. See the reactions below.


text:
Q: How is "__builtin_va_list" implemented? I want to delve into the implementation of function "printf" in C on macOS. "printf" uses the <stdarg.h> header file. I open the <stdarg.h> file and find that va_list is just a macro.
So, I am really curious about how the __builtin_va_list is implemented? I know it is compiler-specific. Where can I find the definition of the __builtin_va_list? Should I download the source code of clang compiler?

A:
So, I am really curious about how the __builtin_va_list is implemented?

__builtin_va_list is implemented inside the GCC compiler (or the Clang/LLVM one). So you should study the GCC compiler source code to understand details.
Look into gcc/builtins.def & gcc/builtins.c for more.
I am less familiar with Clang, which implements the same builtin.
But both GCC & Clang are open source or free software. They are complex beasts (several millions lines of code each), so you could need years of work to understand them.
Be aware that the ABI of your compiler matters. Look for example into X86 psABI for more details.
BTW, Grady Player commented:

Pops the correct number of bytes off of the stack for each of those tokens...

Unfortunately, today it is much more complex than that. On current processors and ABIs the calling conventions do use processor registers to pass some arguments (and the evil is in the details).

Should I download the source code of clang compiler?

Yes, and you also need to allocate several years of work to understand the details.
A few years ago, I did write some tutorial slides and links to external documentation regarding GCC implementation, see my GCC MELT documentation page (a bit rotten).

A: In Clang 9, this is implemented in
clang\lib\AST\ASTContext.cpp

call graph:
getVaListTagDecl
=>getBuiltinVaListDecl
=>CreateVaListDecl
=>Create***BuiltinVaListDecl
for example:
=>CreateCharPtrBuiltinVaListDecl
=>CreateCharPtrNamedVaListDecl
=>buildImplicitTypedef

When there is __builtin_va_list in the preprocessed source, the compiler calls getVaListTagDecl to build a TypedefDecl AST node and insert it into the AST, the typedef doesn't exist in any source code, it is generated dynamically during build, as if there is such in the source:
typedef *** __builtin_va_list;
//for example
typedef char* __builtin_va_list;

A: This answer, for clang, just show how I find implementation of a builtin function.
I'm interested in implementation of std::atomic<T>. If T is not a trivial type, clang use a lock to guard its atomicity. Look this answer first, I find a builtin function named __c11_atomic_store. The question is, how this builtin function implemented in clang?
Searching Builtin in clang codebase, find in clang/Basic/Builtins.def:
// Some of our atomics builtins are handled by AtomicExpr rather than
// as normal builtin CallExprs. This macro is used for such builtins.
#ifndef ATOMIC_BUILTIN
#define ATOMIC_BUILTIN(ID, TYPE, ATTRS) BUILTIN(ID, TYPE, ATTRS)
#endif

// C11 _Atomic operations for <stdatomic.h>.
ATOMIC_BUILTIN(__c11_atomic_init, "v.", "t")
ATOMIC_BUILTIN(__c11_atomic_load, "v.", "t")
ATOMIC_BUILTIN(__c11_atomic_store, "v.", "t")
ATOMIC_BUILTIN(__c11_atomic_exchange, "v.", "t")
...

The keyword are AtomicExpr and CallExpr. Then I check every caller of AtomicExpr's constructor, but doesn't find any useful information. So I guess, maybe in parse phase, if parser match an builtin function calling, it will construct an CallExpr to AST with builtin flag. In code generate phase, it will emit the implementation.
Check CodeGen, I find the answer in lib/CodeGen/CGBuiltin.cpp and CodeGen/CGAtomic.cpp.
You can check CodeGenFunction::EmitVAArg, I holp that would be useful for you.

redpajama_set_name: RedPajamaStackExchange


A Ordem dos Advogados do Brasil e o Ministério Público vai pedir que a guarda da MC Melody não fique com o pai.
2015-04-28 06:30:04 Cris5:Social Magazine scritto da geek.
2015-04-28 05:00:56 Furore:Nonprofit email marketing allows nonprofit organizations to get their message across affordably while allowing them to potentially reach a very large audience in a short period. One of the most valuable tools for email marketing by nonprofits is the email newsletter as it lets them provide regular updates to subscribers as well as valuable content.
2015-04-28 04:51:02 AdinoLOC:When you really trust each other, you are opening your heart, soul and mind to a stranger. You are very fragile at this moment to have an emotional attack. Confusion & misapprehensions are among the emotions now. The matters of the heart are a mystery to anybody involved.
2015-04-28 03:22:18 Kayne:Security of occupants and their property is paramount when making such buildings. The owners of such premises therefore erect perimeter walls and put in place adequate lighting to restrict unauthorized access. Management of such units hires guards to monitor and report any security breaches. In addition, an electric fence is sometimes installed to boost security in the premises.
2015-04-28 03:17:49 McLol:Prior to going to boot camp, there are some useful things you need to know. Some of these are related to the following: handling personal details, getting yourself ready for the physical requirements, bringing just allowable objects, always following instructions, and handling criticism in a favorable manner.
2015-04-28 03:17:49 Enzo:Everybody deals with anxiety and depression, however some people have a hard time in managing it. As a result, here is a brief list of techniques that a person can use to help manage their most persistent fears and every day anxieties.
2015-04-28 02:30:41 Cris5:Social Magazine scritto da geek.
Link do vídeo completo https://www.youtube.com/watch?v=_3rvf4hO8QY.
Jared Leto`s Joker Officially Revealed REACTION & DISCUSSION!!!
2015-04-28 01:33:42 Antonio:When purchasing laptops, a necessary item that is often forgotten is a lap screen protector. The screen is a vitally important laptop component and a costly one to repair or replace if damaged.
2015-04-28 01:33:42 Antonio:Many women who own laptops love pink computer accessories. A pink sleeve is a favorite for many ladies. It provides their laptop with protection and at the same time affords a look that is stylish.


text:
Support the project today
Focus to reveal small menu
Our project will create jobs, strengthen the local community and respect the environment
How Dalradian will
boost the economy
Dalradian's project will create a new industry for Northern Ireland, generate some 1000 jobs and inject £750 million into the local supply chain.
"A gold mine in Tyrone is a great fit for the skills, know-how and experience that already exists here."
Gordon Best, Regional Director, Mineral Products Association Northern Ireland
The economic benefits
A new industry
2.4% reduction
in Northern Ireland's trade deficit
spend in the local supply chain
90% of new jobs
are expected to go to local people, based on the experience of other mines
training programme over 3 years
Opportunities for all kinds of skill sets
£40,000 average salary
£15 million investment in training over three years
Summer programme for student interns
How Dalradian will create hundreds of jobs in Tyrone
The mine will offer new careers for hundreds of people, in the local district and throughout Tyrone. Around two hundred local people have already worked with us, and we will be looking for more.
We will need mechanics, lorry drivers, IT specialists, geologists, engineers, administrators, health and safety monitors and environmental managers. People with farming and construction experience are well-suited to mining jobs. We are creating specialised training programmes to help local people skill up. These programmes combine& on-the-job training and courses at South West College. A job at Dalradian is the beginning of a new career.
The £750 million dividend
We're spending more than £750 million to build and operate the mine. That means a host of supplier opportunities across Northern Ireland – West Tyrone in particular.
Dalradian has been working with fifty small businesses from the villages closest to the project, and another 450 suppliers from across Northern Ireland, for the past ten years. This existing network includes hardware stores, construction companies, hauliers, accommodation suppliers, mechanic workshops and graphic design studios.
Become a supplier >
A new industry for Northern Ireland
Dalradian's project enjoys relatively low construction costs and overheads, which means it is well-placed to withstand the cycles of commodity prices. It will provide jobs and work for suppliers over the long term.
Gold's importance in the global economy is unlikely to wane. It has been used as a store of wealth for centuries, but the technological age has given it a new role. It now plays an important part in the circuitry that powers our digital devices – from laptops to mobile phones.
Over its life, the mine will yield almost £100 million in taxes for Northern Ireland and reduce the country's trade deficit by 2.4%. It will be unaffected by Brexit. It's hard to move a factory, but it's impossible to move a mine.
Help make
Dalradian's planning application is yet to be approved. Join thousands of others and choose progress.
Fill in a short form and tell the Department for Infrastructure that you support Dalradian's plans to create jobs, support the local community and respect the environment.
We welcome your questions.
Explore the FAQs or ask us anything
Support our plans to create jobs, strengthen the local community and respect the environment. The Department for Infrastructure will take your views into account. Help make our plans a reality.
Customise your letter of support
Your letter of support will be sent directly to the Department for Infrastructure. Dalradian will not see your letter, nor any of your details.
Great things can happen with your support
Customise a letter of support in two simple steps:
This will signal your support to the Department for Infrastructure. You can choose to keep these details private.
Tell the Department for Infrastructure why you support the project
Please tick all the elements you like about the proposed project.
Customise a letter of support in 2 simple steps:
Dalradian will not see your letter, nor any of your details. Your letter of support will be sent directly to the Department for Infrastructure
Omagh Office
Careers & Suppliers
3 Killybrack Road
Killybrack Business Park
Omagh, BT79 7DG
info@dalradian.co.uk
Gortin Office
Gortin
County Tyrone, BT79 8NH
+44 (0)28 816 48012
media@dalradian.co.uk
© 2022 Dalradian Gold Terms and Conditions Privacy Policy


The MyMac.com GarageBand contest is now live!
The MyMac.com Garage Band Loops contest is now live!
Sponsored by MyMac.com and Other World Computing, you can now submit your Garage Band Loops created songs to us via email. Please check out the rules here!
Remember, no vocals, third-party loops, or external instruments are allowed in this first contest, only the loops included within the GarageBand application.
The winner will receive, courtesy of Other World Computing, an external 120GB FireWire Neptune drive! Perfect for storing your future Garage Band loops music on!
The contest runs through February 21st. All entries must be made using the original GarageBand application file format, no mps, aiff, QuickTime, or other formats are allowed.
Sit back, create as many tunes as you like using the GarageBand application, and send it in!


This is within the frame of the ORACLE project ( Optimisation des rotations et associations céréales légumineuses). We want to caracterise 50 sorghum varieties. In this project we will measure the photosynthesis efficiency in addition to other parameters directly collected in the field (LAI, phenology, plant height, biomass, N uptake) or on the lab ( rhizobium activity, roots growth...).


Blog to End the Occupation: Richard Cohen says it's not apartheid. He's wrong. Here's why.
Richard Cohen says it's not apartheid. He's wrong. Here's why.
"A recent op-ed on Israel in the Financial Times employs the word apartheid several times. Some of the time it seems to be applied to the West Bank, but other times it is applied to Israel proper. Either way, this shoe doesn't fit. (Security concerns are not rooted in racism.) The author of the piece is Henry Siegman, a harsh critic of Israeli policies and a former executive director of the American Jewish Congress, so anti-Semitism is not the issue here -- just sound judgment. Sometimes impatience can lead to imprudence. But anti-Semitism is not so easily dismissed with others. This is "Israeli Apartheid Week" on campuses across the world, and it is clear that what furiously animates many of the protesters are not legitimate grievances but imaginary ones. Israel is not above criticism and the Palestinians have their case, but when that case is constructed out of lies about the Jewish state, it not only represents a wholly unoriginal cover of some old anti-Semitic ditties but also denigrates the Palestinian cause. It does not need lies."
The Convention on Apartheid identifies the "expropriation of landed property" of a particular racial, ethnic, or identity group as one of the "inhuman acts" that constitute the crime of apartheid. The South African apartheid regime broke the country into 10 noncontiguous Bantustans made of 13% of the total land, which were to serve as "homelands" for the black population. Israel's "separation wall/fence" and settlements have broken the Palestinian territories into 12 noncontiguous cantons representing only 12% of the West Bank, Gaza Strip and East Jerusalem.
Black people in South Africa could not be citizens, and Colored people were only granted limited citizenship rights. Palestinians in the occupied territories are not citizens of any state, and Palestinian citizens of Israel have different citizenship rights than Israeli Jews. Palestinian residents of Jerusalem are not citizens of Israel--instead, they have a partial "residency" status, one that can be taken away by the state if an individual is deemed to "no longer reside" in their city of birth.
East Jerusalem and the West Bank are splintered by a network of roads leading to illegal Israeli settlements (where residence is open only for Jewish citizens of Israel); these roads can only be used by Israelis, while Palestinians must use older, often unpaved roads.
Within Israel, Palestinian citizens are discriminated against by a series of laws, policies, and regulations, including restrictions on the right of Palestinians to own land, inequalities in funding of schools and municipalities, inequalities in the land open to development around Arab towns and cities versus Jewish towns and cities, inequalities in the granting of building permits, and citizenship laws that discriminate against Palestinians. The Association for Civil Rights in Israel recently issued a challenge to one of these discriminatory citizenship laws, which bans Palestinian spouses of Israeli citizens from gaining Israeli citizenship. (For more information on the discrimination faced by Palestinian citizens of Israel, check out the Arab Association for Human Rights, the Association for Civil Rights in Israel, and Adalah Legal Center for Minority Rights in Israel).
Citizenship laws also discriminate against Palestinian refugees, who are denied their right of return while Israel grants citizenship to any Jewish person from anywhere in the world.
Even in language, Israel's policies toward Palestinians resemble apartheid. The Hebrew word "hafrada," which is used to refer to the Wall and to the policy of "disengagement," means separation (as in "separation barrier"). Apartheid is an Afrikaner word which also means separation.


Supplying AVGAS 100LL and AVTUR Jet A1, our staff will meet your aircraft upon arrival with an appliance that provides fuel at very competitive rates and with no waiting time.
Passenger handling by main terminal handling agents northside of the airport incurs a charge per passenger. On the south apron, only aircraft with a maximum take off weight of 10 tonnes and over will be charged a security fee.


Over the decades Mazda has produced some fantastic sports cars that enthusiasts have gone crazy for. These involving, lightweight, and often quirky cars are now weaved into car culture. Arguably its most fabled model is the rotary-engined RX-7, one of which stars in the latest Petrolicious film. However, it's not just any RX-7, but one of the rare Japan-only Spirit R models.
Aaron Backx is the owner of this rare model and. in this video, tells his story of falling in love with the RX-7. His passion begins with an auto-technology course he took at high school, which was based around Mazda's latest sports car at the time, the RX-8. Just like the RX-7, the RX-8 features a wankel rotary engine that reduces weight and revs far higher than a typical motor with pistons.
Living in Canada, Aaron points out that he didn't get much exposure to Japanese car culture, but his passion for Mazda and its cars grew to the point where he went in search of his own RX-8. In doing so he ended up test driving the car's predecessor and, after that brief drive, was spellbound by the older car. Having saved up for a couple of years, he found his perfect RX-7, a JDM import Spirit R.
Aaron was after a stock Spirit R in black, no easy thing to find. The Spirit R cars served as a final 276hp farewell to the RX-7 and made up the final 1500 cars produced. The limited run cars were divided into Type A, B, and C with 'A' cars being the most performance focused.
These Type A models are the most collectable and rarely stay on the market for very long. It's also difficult to import Japanese cars to the US due to the distance and language barriers involved, and that's before jumping through the required hoops to get the car registered.
The Mazda RX-7 might be a high-maintenance machine to drive daily, but its agility and high-revving nature on challenging roads makes it a unique drive. Aaron reckons the car is so perfect that he has no need to modify it. Despite his example's collector car value, he proudly drives it regularly. Aaron is our kind of guy!


Recently we had informed that Disha Patani might step into the shoes of Madhuri Dixit for the revamped version of Ek Do Teen from the film Tezaab (1988). But now the makers of the film have confirmed that not Disha but Jacqueline Fernandez will be performing to the song in Baaghi 2.
Remember the iconic number from #Tezaab: #EkDoTeen?… Jacqueline Fernandez is all set to step into Madhuri Dixit's shoes, will appear in the recreated version of the song for #Baaghi2… Stars Tiger Shroff and Disha Patani.
The song will be choreographed by Ganesh Acharya.
While apart from this the film will also have recreated versions of Soniye Dil Nahi Lagda Tere Bina and Mundian Tu Bach Ke Rahin by Panjabi MC from the music album Dil Nai Lagda. The music album of the film will be created by Ankit Tiwari, Meet Bros, Manj Musik and Palash Muchhal.
The Rebels, Tiger, and Disha along with the team if Baaghi 2 wrapped the first schedule of their film in September 2017.
Co-Produced by Fox Star Studios and Sajid Nadiadwala under the banner name Nadiadwala Grandson Entertainment, Baaghi 2 is directed by Ahmed Khan.
The film will hit the screens on March 30, 2018.
Ranveer Singh and Aamir Khan finally to act together?


Among the growing list of pet peeves we accumulate as we age, few rank higher than unusable user manuals, at least in my house. Just say the words "user manual" to my husband and you can almost see steam starting to erupt.
The Shake Reduction function is available with any K-R compatible Pentax lens. However, when the aperture ring is set to other than the A (auto) position or a lens without an A position is used, the camera will not operate unless [22. Using Aperture Ring] is set to [Permitted] in the [C Custom Setting 4] menu. Set this beforehand. In such cases, however, some functions will be restricted. Refer to "Notes on [22. Using Aperture Ring]," (p. 314) for details.
This is an example of the biggest annoyances with product manuals: They make it extremely hard to find a simple answer to your problem.
They have too many pictures and not enough words. Think Ikea, which originated this model so it could sell its home-furnishing products worldwide. Without words, a user manual may omit key steps.
They're online only. Sometimes manufacturers don't include the manuals in their product packaging and just post them electronically. This saves them money and it also means you needn't keep paper versions handy.
Too often, though, online manuals have too much information with too little organization or inadequate search tools, so you must scroll through pages of text to find what you need — if you're lucky.
On top of that, you must either read the manual online or print it out. But the product and your computer might be in different rooms. And you're sunk if you don't have Wi-Fi access when and where you need it. Our lawn tools are in the garage but our Wi-Fi doesn't carry through the concrete walls.
So why are user manuals often so lousy? There are a couple of reasons.
Manufacturers sometimes turn over manual writing to designers, says Janice (Ginny) Redish, president of Redish & Associates Inc., a Bethesda, Md., consultant specializing in clear communications. The designers, Redish adds, "don't realize that they aren't typical of all their users. Many are young and so they don't have the poor eyesight of older users. They also aren't used to thinking like average consumers.
Another culprit: The manufacturers' attorneys, says Annetta Cheek, chair of the Center for Plain Language, a nonprofit Falls Church, Va., group that presses for clearer language in government and business documents.
1. If you have a problem with a product that the manual can't solve, use the Internet as a research tool. Search the company's website and look online for solutions from other users of the item that's giving you trouble.
Some manufacturers — and users — have useful how-to videos that may answer your question. I found a video that seemed to make my husband's weed-trimming string task a snap (literally, since a snap was the final step in reloading the string).
2. For a electric or electronic product, or one requiring assembly, factor the user manual into your purchasing decision. Just as you might read consumer reviews before buying something costly, read the manual before you buy to see if you'd be able to follow it. You can ask to leaf through one at the store, but it's probably best to search for it online. Check, too, to see if the product offers free technical support.
3. Use websites that aggregate user manuals. They can be a godsend if you've lost yours. Two good sources: Retrovo and Manuals Online.
4. Complain. If you find an incomprehensible or incomplete manual, call the manufacturer and voice your concern, nicely but firmly. "If people call the complaint line, it will start costing the company time and money, so the business will have to start paying attention," Cheek says.
Also, post your user manual gripe on the website of the store where you bought the item as well as the manufacturer's site and Facebook page, so other people will know about the problem before they buy.
"Consumers have to be more engaged and demand material that's clear and easy to read," Cheek says.
Have Product Warning Labels Gone Too Far?


Minimum Order: OK. BEDO high quality single screw automatic floating fish feed pellet machine low price ... pellet machine fish food price of fish feed making mill.
Our fish feed production line is the best choice for medium and big sized feed factories and breeding farms. Top quality and cost-effective! ... →Feed mixer → Fish feed extruder → Pellets dryer → Automatic weighing and packing machine.
13 May 2014 ... Animal Feed Pellet Making Machine for Sales/Automatic Fish Feed Pellet Making Machine is composed by a small hammer ... Top comments.
Fish Food Making Machine/floating Fish Feed Machine/fish Food Pellet Machine ... Floating Fish Feed Machine with Automatic, Appropriate for Small and Medium Sized Culturing .... CE proved fish feed pelletizer machine with high quality.
The Floating Fish Feed Pellets Making Machine is one of the offered model of Pellets .... Ours is an illustrious organization that is engaged in manufacturing and supplying high quality Fish Feed Making Machine. ... Automatic Fish Feed Plant.
4618 products ... China Fish Feed Mill - Select high quality Fish Feed Mill products varied in Type, Processing Object and ... Automatic Floating Fish Feed Pellet Mill.
Top quality automatic sheep/ rabbit feed pellet making machine(China (Mainland)) ... floating fish feed pellet making machine/animal feed making machine.
This automatic packing machine can package pellets into bags with capacity 1-100kg. ... of fish feed are different in quantity and quality according to their different sizes, ... Automatic pellet packing machine has the advantages of high calculating ... digital connection with the upper machine in the feed pellet production line.
Our Pellets Making Machine are suitabe for preparing animal feed, poultry feed, ... A very high pressure is exerted due to the continuous rotation of the roller and .... The Floating Fish Feed Pellets Making Machine is one of the offered model of ... The bearing is of best quality. .... Medium Cleaning Auto Machine (800) (4 HP).
SASIN Full automatic Fried 3D Papad pellet Snacks food making machine,US $ 30000 - 40000, New ... Steady high quality,reasonable price ... Fish feed/animal feed/pet feed Breakfast cereal/corn flake Fruit and vegetable chips production line.
ST-DG70 φ70mm 0.4kw Dry Fish Food Pellet Machine For Straw / Biomass · Good Quality Wood Pellet Machine & 200KG Flat Die Animal Feed Pellet Machine For Rabbit ... 600 - 800 kg / h Rice Husk Charcoal Making Machine For Straw / Wood Waste ... Diesel Threshing Automatic Corn Sheller Machine 1 - 2 T / H Capacity.


Let's Encrypt certainly presents an interesting challenge. I have personally sang the praises of this project from its inception because I do believe the world needs a cost effective solution for site encryption/certificates. That said, abuses of this system were to be expected. I believe it is time for the IT security community to rally around this project and provide support toward an oversight solution that can limit these abuses and maintain this valuable resource for the world at large.


Dementia and Heart Health: Are They Related?
Seth Shay Martin, M.D., M.H.S.
Eating nutritious foods, being physically active, managing high blood pressure and high cholesterol — you probably already know that those healthy habits can prevent heart disease.
But that's not the only reason to embrace a healthy lifestyle. The choices you make every day affect your head as well as your heart.
"There is increasing evidence connecting cardiovascular risk factors with brain health," says Johns Hopkins cardiologist Seth Martin, M.D., M.H.S., associate director of the Lipid Clinic at the Ciccarone Center for the Prevention of Heart Disease.
Dementia touches millions of lives. Alzheimer's disease affects roughly one in nine adults older than 65 in the United States. It often starts as mild cognitive impairment, which is marked by subtle but measurable changes in memory and thinking skills.
Family history and genetics can increase your risk of cognitive decline, but lifestyle factors contribute, too.
Obesity, smoking, diabetes, high blood pressure and high cholesterol are all risk factors for dementia. High cholesterol in midlife, in particular, seems to be strongly linked to cognitive decline.
Scientists are still exploring the causes of dementia, but unhealthy arteries are thought to play a role in both heart disease and cognitive problems, says Martin.
On the positive side, taking control of those factors early might reduce the odds of dementia later in life. Though it's too soon to say that medications to control blood pressure and cholesterol can prevent dementia, Martin says, some studies have shown those treatments are associated with a lower dementia risk.
"Make sure you know your numbers and get heart disease risk factors under control" through lifestyle changes and medication, he says.
Your head and heart will thank you.


text:
Q: Get x and y coordinates of an image according to the superview's centre position in ios I'm trying to find x and y coordinates of an image which can be scaled and moved relative to the view's centre position.x and y coordinates of for one position should be the same in any device.thats why I want to find image position coordinates because image resolution is not changing regardless of the device. I have attached the source code what I have tried to do so far. can anyone give me a suggestion to do this?
link to the GitHub project
I was able to get exactly image coordinates by touching the image this is how I tried this but I want to get that coordinates using a pin by button click event
    @objc func tapAction(tapGestureRecognizer: UITapGestureRecognizer)
    {
    let touchPoint: CGPoint = tapGestureRecognizer.location(in:
    self.imageView)
    let Z1 = imageView.image!.size.height

    let Z2 = imageView.image!.size.width

    let Z3 = imageView.bounds.minY

    let Z4 = imageView.bounds.minX

    let Z5 = imageView.bounds.height

    let Z6 = imageView.bounds.width

    let pos1 = (touchPoint.x - Z4) * Z2 / Z6

    let pos2 = (touchPoint.y - Z3) * Z1 / Z5

    let ZZ1 = "\(pos1)"

    let ZZ2 = "\(pos2)"
    tochpointvalues.text = "Touched point x:\(ZZ1), y:\(ZZ2)"
    print("Touched point (\(ZZ1), \(ZZ2)")
}

A: To get the (x, y) coordinate of a child view in relative to its superview, you can use convert(_ :, to:) method. Example:
let childCoordinate = parentView.convert(childView.frame.origin, to: parentView)


text:
Хью Уильямсон (; 5 декабря 1735 — 22 мая 1819) — американский политик, представитель Северной Каролины на Филадельфийском конвенте.

Уильямсон родился в Пенсильвании и был старшим сыном в большой семье. Он учился на священника, потом отправился в Европу учиться медицине. В начале войны за независимость находился в Европе, где написал памфлет, в котором призвал англичан поддержать дело американцев. По возвращении в Америку в 1777 году поселился в Северной Каролине, где занимался медицинской практикой, был главным хирургом ополчения штата. Активный участник Филадельфийского конвента, участвовал в деятельности пяти комиссий и умело дебатировал. Способствовал ратификации Конституции и дважды избирался в Палату представителей США.

Примечания

Ссылки

Выпускники Пенсильванского университета
Выпускники Утрехтского университета
Члены Палаты представителей от штата Северная Каролина
Члены Континентального конгресса от Северной Каролины
Подписавшие Конституцию США

redpajama_set_name: RedPajamaWikipedia


text:
Home > En La Asamblea General
简体中文EnglishFrançaisDeutsch日本語PolskiPortuguese, InternationalРусскийEspañol
75 Período de Sesiones
Speech by Ambassador Pedro Luis Pedroso Cuesta at the High-Level Meeting of the UN General Assembly to commemorate and promote the International Day against Nuclear Tests. New York, 8 September 2021.
Mr. President,
We align ourselves with the statement pronounced by Mexico on behalf of the Community of Latin American and Caribbean States (CELAC).
The importance of holding this high-level meeting is reinforced in light of the continuous modernization and expansion of nuclear arsenals, in a context in which the millions of dollars of resources devoted to this field must be redirected to efforts to address the current global crisis, exacerbated by COVID-19 and affecting every sphere of life.
Read more about Speech by Ambassador Pedro Luis Pedroso Cuesta at the High-Level Meeting of the UN General Assembly to commemorate and promote the International Day against Nuclear Tests. New York, 8 September 2021.
Statement by Ambassador Pedro Luis Pedroso Cuesta, Permanent Representative of Cuba to the United Nations, at the High-Level Forum on the Culture of Peace, New York, 7 September 2021
Read more about Statement by Ambassador Pedro Luis Pedroso Cuesta, Permanent Representative of Cuba to the United Nations, at the High-Level Forum on the Culture of Peace, New York, 7 September 2021
Statement of Cuba to the United Nations. Second session of UNICEF Executive Board. 7 September 2021
Esteemed Henrietta Fore, UNICEF Executive Director, distinguished members of the Executive Board and other delegations,
We thank the Executive Director for her comprehensive presentation, and the members of the Bureau and the Secretariat for the preparations for this session. I would like to take this opportunity to express our appreciation to Ms. Fore for her service over the years at the helm of UNICEF in improving the lives of children around the world. I extend to her our best wishes.
Read more about Statement of Cuba to the United Nations. Second session of UNICEF Executive Board. 7 September 2021
75 UNGA: Statement by Cuba, on behalf of the Group of Latin American and Caribbean States (GRULAC) at the UNGA plenary meeting to pay tribute to Jovenel Moïse, President of Haiti. New York, July 14, 2021
Mr. President, I have the honor to take the floor on behalf of the Group of Latin American and Caribbean States (GRULAC). We thank you for convening this solemn session of the General Assembly to pay tribute to the late President of Haiti, His Excellency Mr. Jovenel Moïse, who was assassinated at his residence in Port-au-Prince, on 7 July 2021.
We extend our heartfelt condolences to his loved ones, to the Haitian people and government, while reiterating our full support and solidarity at this time with Haiti, a member of the GRULAC family.
Read more about 75 UNGA: Statement by Cuba, on behalf of the Group of Latin American and Caribbean States (GRULAC) at the UNGA plenary meeting to pay tribute to Jovenel Moïse, President of Haiti. New York, July 14, 2021
75 UNGA: Statement by the Cuban delegation at the official launch of the Group of friends in defense of the Charter. New York, 6 July 2021
Mrs. Maria Luisa Ribeiro, Chef de Cabinet to the Secretary-General
Mr. Farrukh Khan, Chef de Cabinet to the President of the 75th session of the General Assembly
Dear Ambassadors,
I am pleased to address you at the launch of this Group of Friends in Defense of the Charter of the United Nations, which 75 years after its founding continues to be the main bulwark of the multilateral system and the most important guarantor of international peace and security.
Read more about 75 UNGA: Statement by the Cuban delegation at the official launch of the Group of friends in defense of the Charter. New York, 6 July 2021
75 UNGA: Statement by Ana Teresita González Fraga, First Deputy Minister of foreign trade and investment of Cuba, at the Un High-Level Meeting on middle-income countries. New York, 2 July 2021.
Six years after the adoption of the 2030 Agenda, there is still a deep gap between the ambitious Sustainable Development Goals and international commitments to support their implementation.
In a complex global political, social and economic context, exacerbated by the aftermath of COVID-19, access to external financing, special and differential treatment in trade matters and international cooperation are crucial for middle-income countries.
Read more about 75 UNGA: Statement by Ana Teresita González Fraga, First Deputy Minister of foreign trade and investment of Cuba, at the Un High-Level Meeting on middle-income countries. New York, 2 July 2021.
75 UNGA: Intervention at Second United Nations High-Level conference of heads of counter-terrorism agencies of member states. New York, 28 June 2021
Dear Mr. Voronkov and guests attending this event,
We congratulate you and your team for the work carried out at the helm of the United Nations Office of Counter-Terrorism, and we take this opportunity to extend my country's support to your leadership.
Read more about 75 UNGA: Intervention at Second United Nations High-Level conference of heads of counter-terrorism agencies of member states. New York, 28 June 2021
75 UNGA: Statement by the delegation of Cuba at the general debate of the 14th Conference of the States Parties to the Convention on the Rights of Persons with Disabilities. New York, 15 June 2021
The COVID-19 pandemic has laid bare the inequalities of the world we live in and the vulnerability of persons with disabilities. In this context, we reaffirm our commitment to the Convention on the Rights of Persons with Disabilities.
Read more about 75 UNGA: Statement by the delegation of Cuba at the general debate of the 14th Conference of the States Parties to the Convention on the Rights of Persons with Disabilities. New York, 15 June 2021
75 AGNU: Statement by Cuba at the Session of the Committee on Decolonization. Item: Information from Non-Self-Governing Territories transmitted under Article 73 e of the Charter of the United Nations. New York, 14 June 2021.
Madam Chair,
Article 73 e of the Charter of the United Nations establishes that Member States which have or assume responsibilities for the administration of territories whose peoples have not yet attained a full measure of self-government, must transmit regularly to the Secretary-General information on the economic and social conditions in the territories for which they are respectively responsible.
Read more about 75 AGNU: Statement by Cuba at the Session of the Committee on Decolonization. Item: Information from Non-Self-Governing Territories transmitted under Article 73 e of the Charter of the United Nations. New York, 14 June 2021.
75 UNGA: Statement BY Cuba upon presentation of the Annual Report of the Security Council. New York, 11 June 2021
We appreciate the convening of this meeting to discuss the Security Council Annual Report to the General Assembly of 2020, contained in document A/75/2.
The relevance of the Security Council, as an organ mandated by the Charter of the United Nations for the maintenance of international peace and security, requires that the presentation of its annual reports cease to be a formal and uncritical exercise.
Read more about 75 UNGA: Statement BY Cuba upon presentation of the Annual Report of the Security Council. New York, 11 June 2021
Copyright 2016, Cuba's Representative Office Abroad


text:
Gonzalo Montenegro (Lobería, Provincia de Buenos Aires; ) es un piloto de automovilismo argentino. Iniciado en el kart, inició su carrera deportiva en la categoría Top Race Series, para luego tener un paso fugaz por los monoplazas en la categoría Fórmula Metropolitana. Compitió también en la divisional TC Pista Mouras de la Asociación Corredores de Turismo Carretera, en donde alcanzó el subcampeonato en el año 2012. Continuó su carrera compitiendo en TC Mouras y en la divisional Top Race V6, donde identificó a los coches con los que compitió, con el número 95.

Biografía
Nacido en la ciudad de Lobería, reconocida por haber sido representada a nivel nacional por pilotos como Oscar Roberto Castellano y Mariano Alberto Altuna, Montenegro inició su carrera deportiva en el año 2009, compitiendo en la categoría 125 cc. Juniors de karting, culminando su participación en el campeonato Bonaerense de la especialidad en el 8º lugar.

Tras su paso por el mundo del kart, le llegaría su primera oportunidad de competir en el automovilismo de velocidad, al subirse a un monoplaza de la Fórmula Renault Metropolitana, al competir en dos competencias del calendario 2011 sobre un chasis Crespi del equipo Ré Competición. Sus presentaciones se concretarían en las fechas 7ª y 8ª. Tras su fugaz paso por esta categoría, Montenegro debutaría con automóviles de turismo en la divisional Top Race Series, al competir en cinco competencias del campeonato 2011, al comando de un Ford Mondeo II del equipo ABH Sport.

Tras estas cortas experiencias, llegaría su primera temporada completa en una categoría, al debutar en el año 2012 en la divisional TC Pista Mouras de la Asociación Corredores de Turismo Carretera, al comando de una unidad Chevrolet Chevy del equipo D Racing y contando con la colaboración del piloto Matías Rodríguez en la atención de su unidad. A pesar de haber debutado en la cuarta fecha y no haber podido cumplir el piso mínimo de competencias para aspirar a competir por la corona, Montenegro exhibiría a lo largo de las 11 fechas que disputó un gran potencial, llevándose 3 victorias que le terminarían significando la obtención del subcampeonato de la temporada, por detrás del eventual monarca Augusto Carinelli. A la par de su incursión en el TC Pista Mouras, Montenegro recibiría una invitación para competir nuevamente en el Top Race, haciendo su debut en la remozada divisional Series V6, al comando de un Ford Mondeo III del equipo Schick Racing. Su participación en esta categoría, solamente duraría tres competencias sin resultados de relevancia.

La obtención del subcampeonato del TC Pista Mouras en el año 2012 le valió a Montenegro el ascenso para el año 2013 al TC Mouras, categoría donde debutó al comando de un Chevrolet Chevy, alcanzando la victoria en su segunda participación. Sin embargo, solamente alcanzaría a desarrollar 5 competencias, abandonando la categoría tras las mismas. Su carrera continuaría nuevamente en el Top race, debutando en esta oportunidad en el TRV6, categoría en la que volvería a competir junto al Schick Racing al comando de un Ford Mondeo III.

En el año 2014 centraría sus esfuerzos en competir dentro del Top Race V6, arrancando el año dentro del Schick Racing, pero dejando la estructura tras la segunda fecha y alejándose de la categoría momentáneamente. Tras ese breve retiro, volvió a competir en la quinta fecha al comando de un Mercedes-Benz C-204 del equipo Midas Racing Team, con el que compitió hasta finalizar el año en la 21ª ubicación.

Trayectoria

Resultados

Trayectoria en Top Race

Resultados completos TC Pista Mouras

Resultados completos TC Mouras

Palmarés

Referencias

Pilotos de Top Race
Pilotos de TC Pista Mouras
Pilotos de TC Mouras
Pilotos de automovilismo de Argentina