For your `sqr` function, what is the benefit of writing `x * x` over using `x.powi(2)` [0]? You didn't mention it in the article, but did you find a performance improvement from doing this?
[0]: https://doc.rust-lang.org/std/primitive.f64.html#method.powi