code: public Matrix4x3d reflect(double a, double b, double c, double d) {
          return reflect(a, b, c, d, this);
      }
docs: Apply a mirror/reflection transformation to this matrix that reflects about the given plane
  specified via the equation <code>x*a + y*b + z*c + d = 0</code>.
  <p>
  The vector <code>(a, b, c)</code> must be a unit vector.
  <p>
  If <code>M</code> is <code>this</code> matrix and <code>R</code> the reflection 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
  reflection will be applied first!
  <p>
  Reference: <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb281733(v=vs.85).aspx">msdn.microsoft.com</a>
  
  @param a
  the x factor in the plane equation
  @param b
  the y factor in the plane equation
  @param c
  the z factor in the plane equation
  @param d
  the constant in the plane equation
  @return this