EstervQrCode 2.0.0
Library for qr code manipulation
Loading...
Searching...
No Matches
limits.hpp
1/*M///////////////////////////////////////////////////////////////////////////////////////
2//
3// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4//
5// By downloading, copying, installing or using the software you agree to this license.
6// If you do not agree to this license, do not download, install,
7// copy or use the software.
8//
9//
10// License Agreement
11// For Open Source Computer Vision Library
12//
13// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15// Third party copyrights are property of their respective owners.
16//
17// Redistribution and use in source and binary forms, with or without modification,
18// are permitted provided that the following conditions are met:
19//
20// * Redistribution's of source code must retain the above copyright notice,
21// this list of conditions and the following disclaimer.
22//
23// * Redistribution's in binary form must reproduce the above copyright notice,
24// this list of conditions and the following disclaimer in the documentation
25// and/or other materials provided with the distribution.
26//
27// * The name of the copyright holders may not be used to endorse or promote products
28// derived from this software without specific prior written permission.
29//
30// This software is provided by the copyright holders and contributors "as is" and
31// any express or implied warranties, including, but not limited to, the implied
32// warranties of merchantability and fitness for a particular purpose are disclaimed.
33// In no event shall the Intel Corporation or contributors be liable for any direct,
34// indirect, incidental, special, exemplary, or consequential damages
35// (including, but not limited to, procurement of substitute goods or services;
36// loss of use, data, or profits; or business interruption) however caused
37// and on any theory of liability, whether in contract, strict liability,
38// or tort (including negligence or otherwise) arising in any way out of
39// the use of this software, even if advised of the possibility of such damage.
40//
41//M*/
42
43#ifndef OPENCV_CUDA_LIMITS_HPP
44#define OPENCV_CUDA_LIMITS_HPP
45
46#include <limits.h>
47#include <float.h>
48#include "common.hpp"
49
55
56namespace cv { namespace cuda { namespace device
57{
58template <class T> struct numeric_limits;
59
60template <> struct numeric_limits<bool>
61{
62 __device__ __forceinline__ static bool min() { return false; }
63 __device__ __forceinline__ static bool max() { return true; }
64 static const bool is_signed = false;
65};
66
67template <> struct numeric_limits<signed char>
68{
69 __device__ __forceinline__ static signed char min() { return SCHAR_MIN; }
70 __device__ __forceinline__ static signed char max() { return SCHAR_MAX; }
71 static const bool is_signed = true;
72};
73
74template <> struct numeric_limits<unsigned char>
75{
76 __device__ __forceinline__ static unsigned char min() { return 0; }
77 __device__ __forceinline__ static unsigned char max() { return UCHAR_MAX; }
78 static const bool is_signed = false;
79};
80
81template <> struct numeric_limits<short>
82{
83 __device__ __forceinline__ static short min() { return SHRT_MIN; }
84 __device__ __forceinline__ static short max() { return SHRT_MAX; }
85 static const bool is_signed = true;
86};
87
88template <> struct numeric_limits<unsigned short>
89{
90 __device__ __forceinline__ static unsigned short min() { return 0; }
91 __device__ __forceinline__ static unsigned short max() { return USHRT_MAX; }
92 static const bool is_signed = false;
93};
94
95template <> struct numeric_limits<int>
96{
97 __device__ __forceinline__ static int min() { return INT_MIN; }
98 __device__ __forceinline__ static int max() { return INT_MAX; }
99 static const bool is_signed = true;
100};
101
102template <> struct numeric_limits<unsigned int>
103{
104 __device__ __forceinline__ static unsigned int min() { return 0; }
105 __device__ __forceinline__ static unsigned int max() { return UINT_MAX; }
106 static const bool is_signed = false;
107};
108
109template <> struct numeric_limits<float>
110{
111 __device__ __forceinline__ static float min() { return FLT_MIN; }
112 __device__ __forceinline__ static float max() { return FLT_MAX; }
113 __device__ __forceinline__ static float epsilon() { return FLT_EPSILON; }
114 static const bool is_signed = true;
115};
116
117template <> struct numeric_limits<double>
118{
119 __device__ __forceinline__ static double min() { return DBL_MIN; }
120 __device__ __forceinline__ static double max() { return DBL_MAX; }
121 __device__ __forceinline__ static double epsilon() { return DBL_EPSILON; }
122 static const bool is_signed = true;
123};
124}}} // namespace cv { namespace cuda { namespace cudev {
125
127
128#endif // OPENCV_CUDA_LIMITS_HPP
T max(T... args)
T min(T... args)
"black box" representation of the file storage associated with a file on disk.
Definition calib3d.hpp:441