code: public Matrix3x2d rotate(double ang, Matrix3x2d dest) {
          double cos = Math.cos(ang);
          double sin = Math.sin(ang);
          double rm00 = cos;
          double rm01 = sin;
          double rm10 = -sin;
          double rm11 = cos;
          double nm00 = m00 * rm00 + m10 * rm01;
          double nm01 = m01 * rm00 + m11 * rm01;
          dest.m10 = m00 * rm10 + m10 * rm11;
          dest.m11 = m01 * rm10 + m11 * rm11;
          dest.m00 = nm00;
          dest.m01 = nm01;
          dest.m20 = m20;
          dest.m21 = m21;
          return dest;
      }
docs: Apply a rotation transformation 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>M * R</code>. So when transforming a
  vector <code>v</code> with the new matrix by using <code>M * R * v</code>, the rotation will be applied first!
  
  @param ang
  the angle in radians
  @param dest
  will hold the result
  @return dest