# \-1^(1/2) is Complex(-1^(1/2)) ==-1.0 + 0.0im?

**URL:** https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776
**Category:** General Usage
**Created:** [December 29, 2019, 8:34am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776 "2019-12-29T08:34:00Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)
#### Post date: [December 29, 2019, 8:34am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/1 "2019-12-29T08:34:00Z")

</div>

Why Complex(-1^(1/2))== -1.0 + 0.0im ???

```julia
 Version 1.3.0-rc4.1 (2019-10-15)

julia> Complex(-1^(.5))
-1.0 + 0.0im

julia> sqrt(Complex(-1))
0.0 + 1.0im

julia> Complex(-1^(1/2))
-1.0 + 0.0im

julia> 4^(1/2)
2.0

julia> 9^(1/2)
3.0

julia> Complex(-1^(1/2))
-1.0 + 0.0im

julia> sqrt(Complex(-1))
0.0 + 1.0im

```

Paul

---

<div class="post-metadata">

### Author: ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)
#### Post date: [December 29, 2019, 8:35am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/2 "2019-12-29T08:35:23Z")

</div>

```julia
julia> sqrt(complex(-1))
0.0 + 1.0im

julia> complex(-1)^(1/2)
0.0 + 1.0im

```

what’s inside () is evaluated first be, before you converting it by `Complex()` edit: also `^` is evaluated before `-` as mentioned below.

---

<div class="post-metadata">

### Author: ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)
#### Post date: [December 29, 2019, 8:35am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/3 "2019-12-29T08:35:42Z")

</div>

`^` has higher precedence than `-`  
thus `-1^(1/2)=-(1^(1/2))`

---

<div class="post-metadata">

### Author: ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)
#### Post date: [December 29, 2019, 9:08am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/4 "2019-12-29T09:08:33Z")

</div>

> [@baggepinnen](#):
>
> (1^(1/2))

How to use it without “sqrt” ?

```julia
1.0

julia> (-1^(1/2))
-1.0
julia> Complex((-1)^(1/2))
ERROR: DomainError with -1.0:
Exponentiation yielding a complex result requires a complex argument.
Replace x^y with (x+0im)^y, Complex(x)^y, or similar.
Stacktrace:
 [1] throw_exp_domainerror(::Float64) at .\math.jl:35
 [2] ^ at .\math.jl:769 [inlined]
 [3] ^(::Int64, ::Float64) at .\promotion.jl:345
 [4] top-level scope at none:0

```

?

---

<div class="post-metadata">

### Author: ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)
#### Post date: [December 29, 2019, 10:01am UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/5 "2019-12-29T10:01:12Z")

</div>

It says right in the error message you posted

> [@programista](#):
>
> Exponentiation yielding a complex result requires a complex argument. Replace x^y with (x+0im)^y, Complex(x)^y, or similar.

---

<div class="post-metadata">

### Author: ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)
#### Post date: [December 29, 2019, 12:42pm UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/6 "2019-12-29T12:42:51Z")

</div>

> [@baggepinnen](#):
>
> (x+0im)^y

Is no to easy 🙂

```julia
julia> Complex(-1+0im)^(1/2)
6.123233995736766e-17 + 1.0im

julia> sqrt(-1+0im)
0.0 + 1.0im

julia>

```

---

<div class="post-metadata">

### Author: ![longemen3000](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/longemen3000/32/7298_2.png) [@longemen3000](https://discourse.julialang.org/u/longemen3000)
#### Post date: [December 29, 2019, 3:03pm UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/7 "2019-12-29T15:03:10Z")

</div>

> [@programista](#):
>
> `julia> Complex(-1+0im)^(1/2) 6.123233995736766e-17 + 1.0im`

weird, it gives me the correct result in my computer, what version are you using?

---

<div class="post-metadata">

### Author: ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)
#### Post date: [December 29, 2019, 6:39pm UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/8 "2019-12-29T18:39:38Z")

</div>

> [@programista](#):
>
> ```julia
> julia> Complex(-1+0im)^(1/2) 
> 6.123233995736766e-17 + 1.0im
> 
> ```

On my computer, with Julia v1.3:

```julia
julia> Complex(-1+0im)^(1/2)
0.0 + 1.0im

```

One more thing: There is no reason to write `Complex(-1+0im)`. Just write `(-1+0im)`, this is already a complex number, no reason to convert a complex number to (the same) complex number.

---

<div class="post-metadata">

### Author: ![programista](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/programista/32/5372_2.png) [@programista](https://discourse.julialang.org/u/programista)
#### Post date: [December 29, 2019, 8:18pm UTC](https://discourse.julialang.org/t/1-1-2-is-complex-1-1-2-1-0-0-0im/32776/9 "2019-12-29T20:18:13Z")

</div>

Ok,

> 6.123233995736766e-17 + 1.0im on version 0.6.x on 0.7 and higher is OK  
> Thanks Paul |

W dniu 2019-12-29 o 16:08, Andrés Riedemann via JuliaLang pisze:
