I’m quite confused about what exactly a module is. As I understand it a module is just a collection of functions that I can import, similar to a package. So, I have four functions that I want to import that I have put into a module, as below, in a file called
module DVHMetric using SpecialFunctions: erf function probit(x) #Probit function return 0.5*(1+erf(x/sqrt(2))) end function EUD(D,V,n) #EUD summation return sum(V.*(D.^(1/n))).^n end function NTCP(EUD,D_50,m) probit((EUD-D_50)/(m*D_50)) end function TCP(D,V,D_50,γ_50) (1/2)^(sum(V.*exp(2*γ_50*(1-D/d_50)/log(2)))) end # function export probit, EUD, NTCP, TCP end
If I understand correctly, the code above writes four functions and specifies that those four functions are what is contained in the module (in the export line).
Now, in a separate script, I want to import this module and call its functions using their given names. So I have tried the following in a script that is saved in the same directory as the module.
However I get an error that probit is not defined. I have also tried
import DVHMetric and
using DVHMetric both of which return errors saying “Package DVHMetric not found in current path”.
So, how do I import this module and use its functions as I have named them? I was able to call the functions using the syntax below without issue
but I want to use the previous syntax where I just call probit.