Cuda occupancy from CudaOccupancy.h
		/// <summary>
		/// 
		/// </summary>
		/// <param name="error"></param>
		public CudaOccupancyException(CudaOccupancy.cudaOccError error)
			: base(GetErrorMessageFromCudaOccError(error))
		{
			this._cudaOccError = error;
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="error"></param>
		/// <param name="message"></param>
		/// <param name="exception"></param>
		public CudaOccupancyException(CudaOccupancy.cudaOccError error, string message, Exception exception)
			: base(message, exception)
		{
			this._cudaOccError = error;
		}
		private static string GetErrorMessageFromCudaOccError(CudaOccupancy.cudaOccError error)
		{
			string message = string.Empty;

			switch (error)
			{
				case CudaOccupancy.cudaOccError.None:
					message = "No error.";
					break;
				case CudaOccupancy.cudaOccError.ErrorInvalidInput:
					message = "Input parameter is invalid.";
					break;
				case CudaOccupancy.cudaOccError.ErrorUnknownDevice:
					message = "Requested device is not supported in current implementation or device is invalid.";
					break;
				
				default:
					break;
			}
			return error.ToString() + ": " + message;
		}