SPEED CONSIDERATIONS
####################################################################################

From version 10.1 onwards the Intel compiler ICC seems to work flawlessly together
with the Qt4/OpenGL-stuff of Zhu3D. Whether isosurface-generation is multithreaded
so far, ICC gives another magic speed boost of arround 240 % over GCC approximately.

No idea why, because the SMP-stuff is handled compiler independent and the auto-
vectorization of ICC finds only minor code-parts not influencing the general speed.

To utilize ICC instead of GCC invoke qmake with an option:

qmake -spec linux-icc


GENERAL NOTES FOR ICC
####################################################################################

If you can not even compile a simple C++ "Hello world" program and get some error
message sounding like:

... /usr/include/c++/4.2.1/ext/atomicity.h ...
... __sync_fetch_and_add(ptr,addend) not declared ...

you may have to patch your atomicity.h file as follows:

1) Search atomicity.h with your "real" path
2) Add the following after immediately after _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx):

#ifdef __ICC
#define __sync_fetch_and_add(ptr,addend) _InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(ptr)), addend);
#endif


This patch was suggested from Johannes Singler. This is his original notice:
####################################################################################


/***************************************************************************
 *   Copyright (C) 2007 by Johannes Singler                                *
 *   singler@ira.uka.de                                                    *
 *   Distributed under the Boost Software License, Version 1.0.            *
 *   (See accompanying file LICENSE_1_0.txt or copy at                     *
 *   http://www.boost.org/LICENSE_1_0.txt)                                 *
 *   Part of the MCSTL   http://algo2.iti.uni-karlsruhe.de/singler/mcstl/  *
 ***************************************************************************/

/** @file intel_compatibility.h 
 *  @brief Intel compiler compatibility work-around. */

#ifdef __ICC
/** @brief Replacement of unknown atomic function. Bug report submitted to Intel. */
#define __sync_fetch_and_add(ptr,addend) _InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(ptr)), addend);
#endif
