HP MLIB User's Guide Vol. 1 7th Ed.
Chapter 1 Introduction to VECLIB 23
Roundoff effects
Currently, 8 MB*(the number of threads) should be sufficient for all MLIB
subprograms. If your application launchs threads directly from pthread library
calls, set the minimum allocated stack size to match HP MLIB needs on each
new thread. Setting the stack size on HP-UX as follows would be sufficient for
programs that execute on two threads:
int stacksize = 8388608;
(...)
pthread_attr_setstacksize(&thread_attr, stacksize);
pthread_create(&thread_id, &thread_attr, thread_func, &thread_parm);
(...)
Roundoff effects
VECLIB subprograms may use a different arithmetic order of evaluation than
other implementations. Different roundoff characteristics may result. Accuracy
of results is usually similar to other implementations, so using VECLIB should
not affect the accumulation of roundoff errors in a complete application. If it
does, examine the mathematical analysis of the problem to determine if it is
ill-conditioned. Ill-conditioned means that the small roundoff errors that are
inadvertently introduced into any computation are magnified out of proportion
to the desired result. Similarly, if results with and without VECLIB differ
materially, both sets of answers are probably inaccurate and you should
investigate further. If the program correctly applies stable computational
algorithms, the problem itself is probably ill-posed.
Data types and precision
In general, VECLIB provides the same range of functionality for both real and
complex data. For most computations, there are matching subprograms for real
and complex data, but there are a few exceptions.
For example, corresponding to the subprograms for real dot products, there are
subprograms for complex dot products in both the conjugated and unconjugated
forms because both types of complex dot products occur. However, there is no
complex analogue of the subprograms for solving a real symmetric sparse
linear system.