docs: public static ComplexNumber Log(ComplexNumber z1) {
          ComplexNumber result = new ComplexNumber();
  
          if ((z1.real > 0.0) && (z1.imaginary == 0.0)) {
              result.real = Math.log(z1.real);
              result.imaginary = 0.0;
          } else if (z1.real == 0.0) {
              if (z1.imaginary > 0.0) {
                  result.real = Math.log(z1.imaginary);
                  result.imaginary = Math.PI / 2.0;
              } else {
                  result.real = Math.log(-(z1.imaginary));
                  result.imaginary = -Math.PI / 2.0;
              }
          } else {
              result.real = Math.log(z1.getMagnitude());
              result.imaginary = Math.atan2(z1.imaginary, z1.real);
          }
  
          return result;
      }