title: sqrt is only defined when argument is nonnegative
body: <p>This compiles fine</p>
  
  <pre><code>#include &lt;math.h&gt;
  
  int main(void) {
      double i = sqrt(9.0);
  }
  </code></pre>
  
  <p>If I change 9.0 to -9.0, then my compiler (GNU C) gives an error about an undefined reference to 'sqrt'. </p>
  
  <p>I was expecting the sqrt function to return NaN or an exception. How does the C library only define sqrt for non-negative arguments?</p>