mirror of
https://github.com/opencv/opencv.git
synced 2024-12-16 02:19:12 +08:00
2ee9d21dae
Added clapack * bring a small subset of Lapack, automatically converted to C, into OpenCV * added missing lsame_ prototype * * small fix in make_clapack script * trying to fix remaining CI problems * fixed character arrays' initializers * get rid of F2C_STR_MAX * * added back single-precision versions for QR, LU and Cholesky decompositions. It adds very little extra overhead. * added stub version of sdesdd. * uncommented calls to all the single-precision Lapack functions from opencv/core/src/hal_internal.cpp. * fixed warning from Visual Studio + cleaned f2c runtime a bit * * regenerated Lapack w/o forward declarations of intrinsic functions (such as sqrt(), r_cnjg() etc.) * at once, trailing whitespaces are removed from the generated sources, just in case * since there is no declarations of intrinsic functions anymore, we could turn some of them into inline functions * trying to eliminate the crash on ARM * fixed API and semantics of s_copy * * CLapack has been tested successfully. It's now time to restore the standard LAPACK detection procedure * removed some more trailing whitespaces * * retained only the essential stuff in CLapack * added checks to lapack calls to gracefully return "not implemented" instead of returning invalid results with "ok" status * disabled warning when building lapack * cmake: update LAPACK detection Co-authored-by: Alexander Alekhin <alexander.a.alekhin@gmail.com>
41 lines
707 B
C
41 lines
707 B
C
#include "f2c.h"
|
|
|
|
/* compare two strings */
|
|
int s_cmp(char *a0, char *b0)
|
|
{
|
|
int la = (int)strlen(a0);
|
|
int lb = (int)strlen(b0);
|
|
unsigned char *a, *aend, *b, *bend;
|
|
a = (unsigned char *)a0;
|
|
b = (unsigned char *)b0;
|
|
aend = a + la;
|
|
bend = b + lb;
|
|
|
|
if(la <= lb)
|
|
{
|
|
while(a < aend)
|
|
if(*a != *b)
|
|
return( *a - *b );
|
|
else
|
|
{ ++a; ++b; }
|
|
|
|
while(b < bend)
|
|
if(*b != ' ')
|
|
return( ' ' - *b );
|
|
else ++b;
|
|
}
|
|
else
|
|
{
|
|
while(b < bend)
|
|
if(*a == *b)
|
|
{ ++a; ++b; }
|
|
else
|
|
return( *a - *b );
|
|
while(a < aend)
|
|
if(*a != ' ')
|
|
return(*a - ' ');
|
|
else ++a;
|
|
}
|
|
return(0);
|
|
}
|