* Common macros and inline functions *
\****************************************************************************************/
+#ifdef HAVE_TEGRA_OPTIMIZATION
+# include "tegra_round.hpp"
+#endif
+
#define CV_PI 3.1415926535897932384626433832795
#define CV_LOG2 0.69314718055994530941723212145818
}
return t;
#elif defined HAVE_LRINT || defined CV_ICC || defined __GNUC__
+# ifdef HAVE_TEGRA_OPTIMIZATION
+ TEGRA_ROUND(value);
+# else
return (int)lrint(value);
+# endif
#else
// while this is not IEEE754-compliant rounding, it's usually a good enough approximation
return (int)(value + (value >= 0 ? 0.5 : -0.5));
PERF_TEST_P__CORE_ARITHM_SCALAR(absdiff, TYPICAL_MATS_CORE_ARITHM)
+PERF_TEST(convert, cvRound)
+{
+ double number = theRNG().uniform(-100, 100);
+
+ int result = 0;
+
+ TEST_CYCLE(1000)
+ {
+ for (int i = 0; i < 500000; ++i)
+ result += cvRound(number);
+ }
+}
+
imgs.push_back( imread( getDataPath("stitching/a2.jpg") ) );\r
imgs.push_back( imread( getDataPath("stitching/a3.jpg") ) );\r
\r
- Stitcher stitcher = Stitcher::createDefault();\r
Stitcher::Status status;\r
\r
declare.time(30 * 20);\r
\r
- TEST_CYCLE(20) { status = stitcher.stitch(imgs, pano); }\r
+ while(next())\r
+ {\r
+ Stitcher stitcher = Stitcher::createDefault();\r
+\r
+ startTimer();\r
+ status = stitcher.stitch(imgs, pano);\r
+ stopTimer();\r
+ }\r
}\r
\r
PERF_TEST( stitch2, b12 )\r
imgs.push_back( imread( getDataPath("stitching/b1.jpg") ) );\r
imgs.push_back( imread( getDataPath("stitching/b2.jpg") ) );\r
\r
- Stitcher stitcher = Stitcher::createDefault();\r
Stitcher::Status status;\r
\r
declare.time(30 * 20);\r
\r
- TEST_CYCLE(20) { status = stitcher.stitch(imgs, pano); }\r
+ while(next())\r
+ {\r
+ Stitcher stitcher = Stitcher::createDefault();\r
+\r
+ startTimer();\r
+ status = stitcher.stitch(imgs, pano);\r
+ stopTimer();\r
+ }\r
}\r