Wednesday, September 14, 2011

volatile keyword in C++

I came across the keyword volatile for the first time.

It is used to prevent the compiler from modifying a segment of code for optimization. Variables defined with volatile keyword can be used for:
  • accessing memory mapped devices
  • signal handlers etc.
Here is an example (from wikipedia).

static int foo;
 
void bar(void) {
    foo = 0;
 
    while (foo != 255)
         ;
}
 

This code will be optimized to:
 
void bar_optimized(void) {
    foo = 0;
 
    while (true)
         ;
}
by an optimizing compiler.

If, however, the variable foo can change outside the code, we do not want the compiler to modify it. So, we use the volatile keyword as follows:
 
static volatile int foo;
 
void bar (void) {
    foo = 0;
 
    while (foo != 255)
        ;
}

Tuesday, September 13, 2011

SVN Checkout

SVN stands for subversion.It is a version control software that allows users to download latest version of a particular branch without having to wait until it is properly packaged and delivered.

Here is how you can checkout from svn.
svn checkout <here you enter the web page address>
 
  

Thursday, September 1, 2011

How to change font size in LaTex equations

Credit should go to original contributor. I am just sharing here.

\documentclass{article} \usepackage{amsmath}
 
\begin{document}


 
\begin{eqnarray} 2x+3 \end{eqnarray}


 
\makeatletter

 
\def\@eqnnum{{\normalsize \normalcolor (\theequation)}}

 
\makeatother

 
{ \small \begin{eqnarray} 2x+3 \end{eqnarray} }

 
\end{document}
 

enter image description here

to make sure the size of the equation numbers are not changed we have included a redefinition of the eqnnum command.
\makeatletter  \def\@eqnnum{{\normalsize \normalcolor (\theequation)}}  
\makeatother

available sizes:

  • \tiny
  • \scriptsize
  • \footnotesize
  • \small
  • \normalsize (default)
  • \large
  • \Large (capital "L")
  • \LARGE (all caps)
  • \huge
  • \Huge (capital "H")