1: \begin{abstract}
2: Numerical exceptions, which may be caused by overflow, operations like
3: division by 0 or sqrt($-1$), or convergence failures, are unavoidable in
4: many cases, in particular when software is used on unforeseen and
5: difficult inputs. As more aspects of society become automated, e.g.,
6: self-driving cars, health monitors, and cyber-physical systems more
7: generally, it is becoming increasingly important to design software that
8: is resilient to exceptions, and that responds to them in a consistent
9: way. Consistency is needed to allow users to build higher-level software
10: that is also resilient and consistent (and so on recursively). In this
11: paper we explore the design space of consistent exception handling for
12: the widely used BLAS and LAPACK linear algebra libraries, pointing out a
13: variety of instances of inconsistent exception handling in the current
14: versions, and propose a new design that balances consistency,
15: complexity, ease of use, and performance. Some compromises are needed,
16: because there are preexisting inconsistencies that are outside our
17: control, including in or between existing vendor BLAS implementations,
18: different programming languages, and even compilers for the same
19: programming language. And user requests from our surveys are quite diverse.
20: We also propose our design as a possible model for other
21: numerical software, and welcome comments on our design choices.
22: \end{abstract}
23: