MCPcopy Create free account
hub / github.com/creatale/node-dv / pow

Function pow

deps/opencv/modules/core/src/mathfuncs.cpp:1892–1989  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1890
1891
1892void pow( InputArray _src, double power, OutputArray _dst )
1893{
1894 Mat src = _src.getMat();
1895 int type = src.type(), depth = src.depth(), cn = src.channels();
1896
1897 _dst.create( src.dims, src.size, type );
1898 Mat dst = _dst.getMat();
1899
1900 int ipower = cvRound(power);
1901 bool is_ipower = false;
1902
1903 if( fabs(ipower - power) < DBL_EPSILON )
1904 {
1905 if( ipower < 0 )
1906 {
1907 divide( 1., src, dst );
1908 if( ipower == -1 )
1909 return;
1910 ipower = -ipower;
1911 src = dst;
1912 }
1913
1914 switch( ipower )
1915 {
1916 case 0:
1917 dst = Scalar::all(1);
1918 return;
1919 case 1:
1920 src.copyTo(dst);
1921 return;
1922 case 2:
1923 multiply(src, src, dst);
1924 return;
1925 default:
1926 is_ipower = true;
1927 }
1928 }
1929 else
1930 CV_Assert( depth == CV_32F || depth == CV_64F );
1931
1932 const Mat* arrays[] = {&src, &dst, 0};
1933 uchar* ptrs[2];
1934 NAryMatIterator it(arrays, ptrs);
1935 int len = (int)(it.size*cn);
1936
1937 if( is_ipower )
1938 {
1939 IPowFunc func = ipowTab[depth];
1940 CV_Assert( func != 0 );
1941
1942 for( size_t i = 0; i < it.nplanes; i++, ++it )
1943 func( ptrs[0], ptrs[1], len, ipower );
1944 }
1945 else if( fabs(fabs(power) - 0.5) < DBL_EPSILON )
1946 {
1947 MathFunc func = power < 0 ?
1948 (depth == CV_32F ? (MathFunc)InvSqrt_32f : (MathFunc)InvSqrt_64f) :
1949 (depth == CV_32F ? (MathFunc)Sqrt_32f : (MathFunc)Sqrt_64f);

Callers 14

fgetJp2kResolutionFunction · 0.85
sqrtFunction · 0.85
cvPowFunction · 0.85
solveCubicMethod · 0.85
solvePolyMethod · 0.85
initLabTabsFunction · 0.85
operator()Method · 0.85
ComputeStatisticsFunction · 0.85
NewSphericalProtoFunction · 0.85
ReadPrototypeFunction · 0.85
NormEvidenceOfFunction · 0.85
ConstructWordMethod · 0.85

Calls 13

cvRoundFunction · 0.85
Log_32fFunction · 0.85
Exp_32fFunction · 0.85
Log_64fFunction · 0.85
Exp_64fFunction · 0.85
minFunction · 0.70
getMatMethod · 0.45
typeMethod · 0.45
depthMethod · 0.45
channelsMethod · 0.45
createMethod · 0.45
copyToMethod · 0.45

Tested by

no test coverage detected