# How to build math libraries for 64-bit integers

Before you continue please verify whether you really need 64-bit integers. It
is extra work and perhaps not needed.

If you decide to build DIRAC for 64-bit integers, you have to link to
64-bit integer aware math library/libraries providing both BLAS and
LAPACK.

The following things can happen:

- Your math library is compiled for 64-bit integers and DIRAC will link
and run properly.
- Your math library is not compiled for 64-bit integers and DIRAC will
not link.
- Your math library is not compiled for 64-bit integers and DIRAC will
link but stop at runtime.
- Your math library is not compiled for 64-bit integers and DIRAC will
link and not stop at runtime because you deactivated the self-test
and may produce wrong numbers.

For cases 2-4 you may have to either:

- Verify linking.
- Compile your own math library.
- Use DIRAC’s internal math implementation (slow).
- Go back to 32-bit integers.

## MKL

MKL provides bindings for 64-bit integers and normally DIRAC should
correctly link if you have specified MATH_ROOT correctly.

## Atlas

It is not trivial but doable to compile your own Atlas
library with 64-bit integer support.

The difficulty is that you need to compile both LAPACK and Atlas.

To do this we recommend to follow the nice example: Installing ATLAS
with full LAPACK on
Linux/AMD64.