Some deficiencies in the programming language C make it seem rather inappropriate for the programming of numerical algorithms. C does not provide the basic numerical data structures such as vectors and matrices and does not perform index range checking for arrays. This results in unpredictable errors which are difficult to locate within numerical algorithms. Additionally, pointer handling and the lack of overloadable operators in C reduce the readability of programs and make program development more difficult. Furthermore, C (even the ANSI C standard) does not specify the accuracy or the rounding direction of the arithmetic operators. The same applies to input and output library functions of C. The ANSI C standard does not prescribe the conversion error of input or output.
The programming language C++, an object-oriented C extension, has become more and more popular over the past few years. It does not provide better facilities for the given problems, but its new concept of abstract data structures (classes) and the concept of overloaded operators and functions provide the possibility to create a programming tool eliminating the disadvantages of C mentioned above: C-XSC (C for eXtended Scientific Computing). It provides the C and C++ programmer with a tool to write numerical algorithms producing reliable results in a comfortable programming environment without having to give up the intrinsic language with its special qualities. The object-oriented aspects of C++ provide additional powerful language features that reduce the programming effort and enhance the readability and reliability of programs.
With its abstract data structures, predefined operators and functions, C-XSC provides an interface between scientific computing and the programming languages C and C++. Besides, C-XSC supports the programming of algorithms which automatically enclose the solution of a given mathematical problem in verified bounds. Such algorithms deliver a precise mathematical statement about the true solution.
The most important features of C-XSC are: