class ComplexBuilder implements IBuilder<Complex> {

    public ComplexBuilder inv() {
	double scalar, zRe, zIm;
	if (Math.abs(re) >= Math.abs(im)) {
	    scalar = 1.0 / (re + im * (im / re));

	    zRe = scalar;
	    zIm = scalar * (-im / re);
	} else {
	    scalar = 1.0 / (re * (re / im) + im);

	    zRe = scalar * (re / im);
	    zIm = -scalar;
	}
	re = zRe;
	im = zIm;
	return this;
    }

    public  ComplexBuilder(final Complex c);
    public  ComplexBuilder(final double re);
    public  ComplexBuilder(final double re, final double im);

}