code: public Matrix3x2d rotateLocal(double ang, Matrix3x2d dest) {
          double sin = Math.sin(ang);
          double cos = Math.cosFromSin(sin, ang);
          double nm00 = cos * m00 - sin * m01;
          double nm01 = sin * m00 + cos * m01;
          double nm10 = cos * m10 - sin * m11;
          double nm11 = sin * m10 + cos * m11;
          double nm20 = cos * m20 - sin * m21;
          double nm21 = sin * m20 + cos * m21;
          dest.m00 = nm00;
          dest.m01 = nm01;
          dest.m10 = nm10;
          dest.m11 = nm11;
          dest.m20 = nm20;
          dest.m21 = nm21;
          return dest;
      }
docs: Pre-multiply a rotation to this matrix by rotating the given amount of radians and store the result in <code>dest</code>.
  <p>
  If <code>M</code> is <code>this</code> matrix and <code>R</code> the rotation matrix,
  then the new matrix will be <code>R * M</code>. So when transforming a
  vector <code>v</code> with the new matrix by using <code>R * M * v</code>, the
  rotation will be applied last!
  <p>
  In order to set the matrix to a rotation matrix without pre-multiplying the rotation
  transformation, use {@link #rotation(double) rotation()}.
  <p>
  Reference: <a href="http://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle">http://en.wikipedia.org</a>
  
  @see #rotation(double)
  
  @param ang
  the angle in radians to rotate
  @param dest
  will hold the result
  @return dest