Issue with using SpecialFunctions.jl

I am trying to use exponential integral function from SpecialFunctions.jl.

using SpecialFunctions
expinti(x)

When I execute this code the expinti() throws an error:

UndefVarError: expinti not defined

This function exist in the documentation ( SpecialFunctions.jl/functions_list.md at master · JuliaMath/SpecialFunctions.jl (github.com)) but for some reason I cannot used it in my code.

May i know how to resolve this issue?

Thanks in advance!

Which version of SpecialFunctions are you using? expinti was added in version 1.0.0. You can see the version by typing st in Pkg REPL mode.

@sostock, thanks for the response.

I am using the one from the general repository,

SpecialFunctions version => v0.10.3

May i know how to change this to the 1.0.0 ?

First, run up in Pkg REPL mode to upgrade everything. If it doesn’t upgrade SpecialFunctions to the latest version, there is likely some other package holding it back (by requiring an older version). You can run add SpecialFunctions@v1.2.1 in Pkg REPL mode to add the latest version. If any of your required packages don’t support this version, the error message should tell you about them.

2 Likes

@sostock, fyi after activating a new project with pkg> activate ., to be able to install the latest version of SpecialFunctions, I am still getting the same error as the OP.
PS: Julia Version 1.6.0-beta1.0 on Win10 VS Code

I didn’t try 1.6.0-beta1, but for me it works in 1.5.3 and 1.7.0-DEV (linux, no VS Code).

1 Like

@sostock, my apologies. After exiting the Julia session and starting again, it worked fine. This precompilation/dependencies business is still a bit overwhelming to me.
PS: quoting a politician: “Our road is straight but the slope is steep” :slight_smile:

Thanks for the suggestion, I tried your approach but apparently the GLM package is restricting the version for SpecialFunctions to v0.10. I just removed the GLM package and re-run the process, now it works fine.

May i ask does that mean i cannot use GLM package in my julia? Is there any way for them to exist together?

I think you can use GLM@master. https://github.com/JuliaStats/GLM.jl/pull/392 adds support for version 1 of SpecialFunctions. Once 1.4.0 comes out of GLM, this will be solved for the release branch.

You cannot use them in the same Project. If you don’t need both packages in the same code, you can use separate Project environments. Or you can follow Oscar_Smith’s advice above and use GLM@master until a new GLM version is released.