# How to overload Base.Complex?

**URL:** <https://discourse.julialang.org/t/how-to-overload-base-complex/91128>\
**Category:** General Usage\
**Tags:** question\
**Created:** [December 2, 2022, 6:28am UTC](https://discourse.julialang.org/t/how-to-overload-base-complex/91128 "2022-12-02T06:28:29Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![Dan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dan/32/42581_2.png) [@Dan](https://discourse.julialang.org/u/Dan)\
**Post date:** [December 2, 2022, 3:35pm UTC](https://discourse.julialang.org/t/how-to-overload-base-complex/91128/21 "2022-12-02T15:35:21Z")

</div>

> [@photor](#):
>
> exactly, for simd optimization, just like StructArrays.jl

Maybe a good way to achieve this is to create a new AbstractArray type (say, ComplexArray) and overload it, which is more standard Julia practice.

To get the simd tricks going, overloading `broadcast` and direct it to a new set of arithmetic operations.

This idea is still needs development.

---

<div class="post-metadata">

**Author:** ![Dan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dan/32/42581_2.png) [@Dan](https://discourse.julialang.org/u/Dan)\
**Post date:** [December 2, 2022, 3:42pm UTC](https://discourse.julialang.org/t/how-to-overload-base-complex/91128/22 "2022-12-02T15:42:57Z")

</div>

And even more on-point, is to look at `Images` package and how it handles images stored by pixels vs. by color-channel planes. This is highly analogous to the real/imaginary part of complex variables, and Images package has had a lot of effort put into it.

---

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [December 2, 2022, 5:45pm UTC](https://discourse.julialang.org/t/how-to-overload-base-complex/91128/23 "2022-12-02T17:45:00Z")

</div>

> [@photor](#):
>
> Yes, exactly, for simd optimization, just like StructArrays.jl.

But… can’t you use StructArrays as they are? What’s missing there?

---

<div class="post-metadata">

**Author:** ![photor](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/photor/32/14343_2.png) [@photor](https://discourse.julialang.org/u/photor)\
**Post date:** [December 4, 2022, 9:12am UTC](https://discourse.julialang.org/t/how-to-overload-base-complex/91128/24 "2022-12-04T09:12:50Z")

</div>

What I want is tuple, not array.

[Previous page](https://discourse.julialang.org/t/how-to-overload-base-complex/91128.md?page=1)
