///|
/// Calculates the inverse of a function
pub fn func_inv(
  target : Double,
  f : (Double) -> Double,
  d : (Double) -> Double,
  initial_guess : Double,
  max_iterations~ : Int = 100,
  tol~ : Double = 1.0e-12,
) -> Double? {
  let mut x = initial_guess
  for iter in 0..