// This is a part of the Object Oriented Mathematical Library
// Copyright (C) 1999-2008 Renishaw plc
//
// This source file is the confidential property of Renishaw plc.
// Reproduction or transmission in whole or in part, in any form or
// by any means, electronic, mechanical or otherwise, is prohibited
// without the prior written consent of the copyright owner.
//

#pragma once
#include <math.h>
#include <assert.h>

// ========================================================================================================================
// Notes for Clients:
//
//	If you are using a DLL version (see list below) then you do not need to add any pre-processor definitions.
//		OOMaths.dll
//		OOMaths_d.dll
//		OOMaths_vc70.dll
//		OOMaths_vc70_d.dll
//		OOMaths_vc80.dll
//		OOMaths_vc80_d.dll

//	If you are using a static library version (See list below) then you will need to add the
//	OOMATHS_STATIC_LIB pre-processor definition to your project.
//		OOMaths_static.lib
//		OOMaths_static_d.lib
//		OOMaths_vc70_static.lib
//		OOMaths_vc70_static_d.lib
//		OOMaths_vc80_static.lib
//		OOMaths_vc80_static_d.lib

// ========================================================================================================================
// If we are compiling using a Microsoft compiler we can use their
// extended attribute syntax to export symbols without having to use
// a module definition (.def) file.
// If we are a static build then we do not need to export symbols.
#ifndef OOMATHS_STATIC_LIB
	#ifdef OOMATHS_EXPORTS		
		#define OOMATHS_API __declspec(dllexport)
	#else
		#define OOMATHS_API __declspec(dllimport)
	#endif
#else
	#define OOMATHS_API
#endif

// ========================================================================================================================


// Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.
// This problem was corrected in Microsoft Visual C++ .NET. 
// Disable warning messages 4786 related to 256 char debug info truncation
#ifndef IDE_POST_VC7
#ifdef OOMATHS_INSIDE
	#pragma warning( disable : 4786 )
#endif
#endif