(* 
      implements axis angle rotation matrix *) 
 (* m  =  
        AA + cos (T) (I - AA) + 
          sin (t)*AC *) 
 (* 
      assume right handed coordinate system *) 
<< Calculus`VectorAnalysis`

P = {4, 1, 
          0};
A = {2, 3, -1};
theta = 30*3.1415926535/180;

rotate[] := 
{len = 
          Sqrt[A[[1]]*A[[1]] + A[[2]]*A[[2]] + 
              A[[3]]*A[[3]]]; 
A  =  
          A/len; 
AA = {{A[[1]]*A[[1]], 
              A[[1]]*A[[2]], 
              A[[1]]*A[[3]]}, 
{A[[2]]*
                A[[1]], A[[2]]*A[[2]],  
              A[[2]]*A[[3]]}, 
{A[[3]]*
                A[[1]], A[[3]]*A[[2]], 
              A[[3]]*
                A[[3]]}}; 
AC  =  {{0, -A[[3]], A[[2]]}, 
{A[[3]], 
              0, -A[[1]]}, 
{-A[[2]], 
              A[[1]], 0}}; 
II = {{1, 0, 
              0}, 
{0, 1, 0}, 
{0, 0, 
              1}}; 
M = 
          AA  + Cos[theta]*(II - AA) + 
            Sin[theta]*AC; 
 {M[[1]] . P,  
          M[[2]] . P,  M[[3]] . P}
}

rotate[]

P = rotate[][[1]]