public static function arccos($z) {
        if (!($z instanceof Complex)) $z = static::parse($z);

        $I = new Complex(0,1);
        $temp = static::mul(static::sqrt(static::sub(1, static::mul($z, $z))), $I);
        return static::div(static::log(static::add($z, $temp)), $I);
    }