# FastSphericalHarmonics -- signal(4) Illegal instructions

**URL:** <https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872>\
**Category:** General Usage\
**Tags:** question\
**Created:** [February 19, 2023, 11:03am UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872 "2023-02-19T11:03:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 19, 2023, 11:03am UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872/1 "2023-02-19T11:03:28Z")

</div>

Hello,

I am trying to reproduce the code in the “[Example 2: visualize some modes](https://juliapackages.com/p/fastsphericalharmonics)” of the FastSphericalHarmonics.jl package.

Here is the code after I add FastSphericalHarmonics and CairoMakie:

```julia
using FastSphericalHarmonics, CairoMakie
lmax = 40;
Θ, Φ = sph_points(lmax+1);
ticks = (xticks=MultiplesTicks(4, π, "π"), yticks=MultiplesTicks(4, π, "π"));

```

```julia
for l in 4:4, m in 0:1
           C = zeros(lmax+1, 2lmax+1)
           C[sph_mode(l,m)] = 1
           F = sph_evaluate(C)
           
           scene, layout = layoutscene(; resolution=(400, 200))
           axis = layout[1, 1] = Axis(scene; xticks=MultiplesTicks(4, π, "π"), yticks=MultiplesTicks(4, π, "π"))
           heatmap!(axis, Φ, Θ, F')
           scale!(scene, 1, 1)
           save("mode$l$m.png", scene)
end

```

And here is the message I obtain when I am ejected from my REPL session:

> Invalid instruction at 0x7f2bdbe43263: 0xc5, 0xf1, 0x57, 0xc9, 0xc5, 0xf9, 0x57, 0xc0, 0x0f, 0xaf, 0xd3, 0xc5, 0xd9, 0x57, 0xe4  
> signal (4): Illegal instruction  
> in expression starting at REPL[6]:1  
> ft\_plan\_rotsphere at /home/aquarelle/.julia/artifacts/41d0fb7720cdc6ea4d98a8cf6efdd99dbecfbf5b/lib/libfasttransforms.so (unknown line)  
> ft\_plan\_sph2fourier at /home/aquarelle/.julia/artifacts/41d0fb7720cdc6ea4d98a8cf6efdd99dbecfbf5b/lib/libfasttransforms.so (unknown line)  
> plan\_sph2fourier at /home/aquarelle/.julia/packages/FastTransforms/spjz2/src/libfasttransforms.jl:587 [inlined]  
> #plan\_sph2fourier#37 at /home/aquarelle/.julia/packages/FastTransforms/spjz2/src/libfasttransforms.jl:390 [inlined]  
> plan\_sph2fourier at /home/aquarelle/.julia/packages/FastTransforms/spjz2/src/libfasttransforms.jl:390 [inlined]  
> sph\_evaluate! at /home/aquarelle/.julia/packages/FastSphericalHarmonics/9o0Ph/src/scalar.jl:105  
> sph\_evaluate at /home/aquarelle/.julia/packages/FastSphericalHarmonics/9o0Ph/src/scalar.jl:131  
> unknown function (ip: 0x7f2c0f940582)  
> \_jl\_invoke at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2377 [inlined]  
> ijl\_apply\_generic at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2559  
> top-level scope at ./REPL[6]:4  
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/toplevel.c:897  
> jl\_toplevel\_eval\_flex at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/toplevel.c:850  
> ijl\_toplevel\_eval\_in at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/toplevel.c:965  
> eval at ./boot.jl:368 [inlined]  
> eval\_user\_input at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:151  
> repl\_backend\_loop at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:247  
> start\_repl\_backend at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:232  
> #run\_repl#47 at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:369  
> run\_repl at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/usr/share/julia/stdlib/v1.8/REPL/src/REPL.jl:355  
> jfptr\_run\_repl\_65104 at /usr/local/julia-1.8.5/lib/julia/sys.so (unknown line)  
> \_jl\_invoke at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2377 [inlined]  
> ijl\_apply\_generic at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2559  
> #967 at ./client.jl:419  
> jfptr\_YY.967\_33139 at /usr/local/julia-1.8.5/lib/julia/sys.so (unknown line)  
> \_jl\_invoke at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2377 [inlined]  
> ijl\_apply\_generic at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2559  
> jl\_apply at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/julia.h:1843 [inlined]  
> jl\_f\_\_call\_latest at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/builtins.c:774  
> #invokelatest#2 at ./essentials.jl:729 [inlined]  
> invokelatest at ./essentials.jl:726 [inlined]  
> run\_main\_repl at ./client.jl:404  
> exec\_options at ./client.jl:318  
> \_start at ./client.jl:522  
> jfptr\_\_start\_38041 at /usr/local/julia-1.8.5/lib/julia/sys.so (unknown line)  
> \_jl\_invoke at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2377 [inlined]  
> ijl\_apply\_generic at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/gf.c:2559  
> jl\_apply at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/julia.h:1843 [inlined]  
> true\_main at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/jlapi.c:575  
> jl\_repl\_entrypoint at /cache/build/default-amdci4-2/julialang/julia-release-1-dot-8/src/jlapi.c:719  
> main at julia (unknown line)  
> unknown function (ip: 0x7f2c26031d8f)  
> \_\_libc\_start\_main at /lib/x86\_64-linux-gnu/libc.so.6 (unknown line)  
> unknown function (ip: 0x401098)  
> Allocations: 73835342 (Pool: 73824826; Big: 10516); GC: 36  
> Illegal instruction (core dumped)

I don’t see what is wrong.  
Thank you in advance for any help.  
Thierry

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [February 19, 2023, 5:28pm UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872/2 "2023-02-19T17:28:00Z")

</div>

What is the output of `versioninfo()`? I’m guessing this fast transforms library is using some feature that your processor does not have.

---

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 19, 2023, 7:17pm UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872/3 "2023-02-19T19:17:44Z")

</div>

> versioninfo()

returns:

```julia
Julia Version 1.8.5
Commit 17cfb8e65ea (2023-01-08 06:45 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 2 × Intel(R) Celeron(R) CPU 877 @ 1.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, sandybridge)
  Threads: 1 on 2 virtual cores

```

Old chemist with an old computer 😉

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [February 19, 2023, 7:53pm UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872/4 "2023-02-19T19:53:24Z")

</div>

Sorry, I think you probably need AVX.

[https://ark.intel.com/content/www/us/en/ark/products/67192/intel-celeron-processor-877-2m-cache-1-40-ghz.html](https://ark.intel.com/content/www/us/en/ark/products/67192/intel-celeron-processor-877-2m-cache-1-40-ghz.html)

---

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 19, 2023, 8:20pm UTC](https://discourse.julialang.org/t/fastsphericalharmonics-signal-4-illegal-instructions/94872/5 "2023-02-19T20:20:09Z")

</div>

Thank you very much for your diagnosis about Advanced Vector Extensions, mkitti.  
I am going to see what I can do with a recent Galago Pro.
