Ensuring type stability of your code
In this recipe, we discuss how to detect problems with the type stability of Julia code and how to solve them. In particular, we concentrate on exploring type stability in closures.
Getting ready
You will work with a function for calculating the roots of a quadratic equation:
using the well-known formula
if
.
Note
In the GitHub repository for this recipe, you will find the commands.txt
file that contains the presented sequence of shell and Julia commands. Additionally, in the quad.jl
file you can find the definitions of methods used in this recipe.
Now open your favorite terminal to execute the commands.
How to do it...
Start by running the command include("quad.jl")
, which defines the following two functions for calculating the desired roots of the quadratic equation:
function quadratic1(a, b, c) t(s) = (-b + s*sqrt(Δ))/(2a) a == 0 && error("a must be different than zero") Δ = Complex(b^2-4*a*c) t(1), t(-1) end function quadratic2...