- 1
- 2
- 3
- 4
- 5
- 6
NNLayer::~NNLayer()
{
// call Initialize(); makes sense if you think
Initialize();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+173
NNLayer::~NNLayer()
{
// call Initialize(); makes sense if you think
Initialize();
}
Отсюда: http://www.codeproject.com/KB/library/NeuralNetRecognition.aspx
+164
//----------------------------------------------------------------------------
void TChimesMinigame::InventoryEndDrag(str aId)
{
TSceneObject * drag_object = getScene(1)->FindObject(aId);
if (!drag_object)
{
iInventory->CheckEndDrag(NULL);
return;
}
iInventory->CheckEndDrag(NULL);
}
//----------------------------------------------------------------------------
+159
bool CSomeClass::Init( int argc, wchar_t* argv[] )
{
bool isOk = true;
bool goOn = true;
for( int i = 0; isOk && goOn; ++i ) {
switch( i ) {
case 0:
isOk = checkCommandLine( argc, argv );
break;
case 1:
isOk = checkFileExistence();
break;
case 2:
isOk = initFiles();
break;
default:
goOn = false;
}
}
return isOk;
}
+161
while(fgets(buf,4095,in)){
if(strcmp(buf,"nodes")){while(fgets(buf,4095,in)){
if(strcmp(buf,"end")){
m->mb=mb;
m->bv=new vec3f[mb];
m->ba=new vec3f[mb];
m->p=new int[mb];
a->max_b=mb;
a->fr=new TMAFrame[mb];a->Initfr();
break;
};
mb++;
};};
};
Взято с одного форума по программированию. От автора:
Короче говоря при загрузке модели SMD возникает ошибка при чтении , точнее подсчёте костей :
+164
template < int Order, typename T >
struct PrefixSum {
static inline void update ( T* a ) throw () { *a += *(a-1); PrefixSum < Order-1, T > :: update( a+1 ); }
};
template < typename T >
struct PrefixSum < 1,T > {
static inline void update ( T* a ) throw () { *a += *(a-1); }
};
template < int P, int N, int Condition = 0 >
struct Bpn {
enum { value = N * ( Bpn < P-1, N-1, (N > P) > :: value - Bpn < P-1, N, (N > P-1) > :: value ) };
};
template < int P, int N > struct Bpn < P, N, !0 > { enum { value = 0 }; };
template < int P > struct Bpn < P, 0, 0 > { enum { value = P ? 0 : 1 }; };
template < int P > struct Bpn < P, 1, 0 > { enum { value = P & 1 ? 1 : -1 }; };
template < typename Ta, typename Tb, bool C > struct IfThenElse;
template < typename Ta, typename Tb > struct IfThenElse < Ta, Tb, true > { typedef Ta TRes; };
template < typename Ta, typename Tb > struct IfThenElse < Ta, Tb, false > { typedef Tb TRes; };
template < int K, int I = 1 >
struct MomentSeries {
typedef typename IfThenElse < MomentSeries<K,I+1>, MomentSeries<K,K>, (I<K) >::TRes SubT;
static inline double accumulate ( double const* psum ) throw () {
return Bpn < K, I > :: value * psum [ I + 1 ] + SubT :: accumulate ( psum );
}
};
template < int K >
struct MomentSeries < K, K > {
static inline double accumulate ( double const* psum ) throw () {
return Bpn < K, K > :: value * psum [ K + 1 ];
}
};
template < int Order >
struct MomentLoop {
static inline void assign ( double *moments, size_t momentStride, double const* psum ) throw() {
*(moments - momentStride) = MomentSeries < Order-1 > :: accumulate ( psum );
MomentLoopAssign < Order-1 > :: assign ( moments - momentStride, momentStride, psum );
}
};
template <>
struct MomentLoop < 1 > {
static inline void assign ( double *moments, size_t momentStride, double const* psum ) throw() {
moments [ 0 ] = MomentSeries < 1, 1 > :: accumulate ( psum );
*(moments - momentStride) = psum [ 1 ];
}
};
/**
* Function computes a series of geometric moments by prefix summation method:
* Zhou F., Kornerup P. Computing Moments by Prefix Sums. // VLSI Signal Proc. - 2000. - 25. - P. 5 - 17.
* @param data is first data elemet address.
* @param ndataItems is number of data items.
* @param dataStride is the number of elements between two neighbor data items,
* in case of simple array dataStride is equal to 1.
* @param moments is address of 0-order moment.
* @param momentStride is number of elements between two neigbor moment items,
* in case of consequtive moments placement, momentStride is equal to 1.
*/
template < int Order, class OutPolicy >
inline void psmoment ( double const* data,
size_t const ndataItems,
size_t const dataStride,
double* moments,
size_t const momentStride ) throw() {
double psum [ Order+1 ] = { 0 };
// Initialize prefix sum
for ( size_t i = ndataItems, j = ndataItems * dataStride; i; ) {
--i; j -= dataStride; psum [ 0 ] = data [ j ];
PrefixSum < Order, double > :: update ( psum+1 );
}
// convert psum to moment values
OutPolicy :: assign ( moments + Order * momentStride, momentStride, psum );
}
Вы - тестовая площадка, перед написанием статьи в пфп ;)
+147
ZeuS
do
{
/*
Тупые, притупые идусы из MS, не понимают что они тупые притупые. Дело в том, что в MSDN
написано, что NetUserEnum может работать с уровнями 4, 23, а на практики мы получаем
большой индуский ХУЙ!
*/
DWORD readed;
DWORD total;
USER_INFO_0 *buf0 = NULL;
status = CWA(netapi32, NetUserEnum)(NULL, 0, FILTER_NORMAL_ACCOUNT, (LPBYTE *)&buf0, MAX_PREFERRED_LENGTH, &readed, &total, &handle);
/////////////////////////////////////
//Непонятно, может ли оно вернуть NULL. Помня фокус индусов с wsprintf, защитимся от этого.
if(p == NULL)p = path;
//////////////////////////////////
if(iSize == -1)
{
//Гении-индусы решили подмениь возрашаемое значение в Vista на -1, в случаи если не хватает
//места на всю строку, однако буфер заполняется. Ума устаналивать LastError не хватило...
iSize = _LengthW(pBuf);
}
else pBuf[iSize] = 0;
///////////////////////////////////
//Я ибал в рот тупых уродов написавших тупой rfc и тупорлых говнокодеров,
//Я ставлю листинг на проивзольны порт на все IP сервера, и пашел на хуй софт который не
//сможет это прочитать. Возможно меня ввел в забулждение FlashFXP 3.6.0. Т.к. в destAddr
//он отправляет какие то данные сервера. А по rfc, как я понел, там должны быть данные
//сокс-сервера, где нужно ждать сединения.
//Ищим свободный порт.
((SOCKADDR_IN6 *)destAddr)->sin6_port = 0;
+165
// header
struct TMWFeatureSet
{
TMWFeatureSet();
~TMWFeatureSet();
enum TFeatureSetBitMask
{
EBackUpBitMask = 1,
ERestoreBitMask = 1 << 1,
EWipeBitMask = 1 << 2,
ELockBitMask = 1 << 3,
ELocateBitMask = 1 << 4,
EMessageBitMask = 1 << 5,
EScreamBitMask = 1 << 6,
EPrintBitMask = 1 << 7,
EShareBitMask = 1 << 8
};
enum TFeatureSet
{
EBackUp = 0,
ERestore,
EWipe,
ELock,
ELocate,
EMessage,
EScream,
EPrint,
EShare,
ECount
};
void SetFeatureAttr( TInt iIndex, TBool aValue );
void Reset( void );
void ExternalizeL( RWriteStream & aOutputStream );
void InternalizeL( RReadStream & aInputStream );
RArray<TFeatureSetBitMask> iBitMasks;
TFixedArray<TBool,ECount> iFeatureSetArr;
};
// implementation
TMWFeatureSet::TMWFeatureSet()
{
iBitMasks.Append( EBackUpBitMask );
iBitMasks.Append( ERestoreBitMask );
iBitMasks.Append( EWipeBitMask );
iBitMasks.Append( ELockBitMask );
iBitMasks.Append( ELocateBitMask );
iBitMasks.Append( EMessageBitMask );
iBitMasks.Append( EScreamBitMask );
iBitMasks.Append( EPrintBitMask );
iBitMasks.Append( EShareBitMask );
}
TMWFeatureSet::~TMWFeatureSet()
{
iBitMasks.Close();
}
void TMWFeatureSet::SetFeatureAttr( TInt iIndex, TBool aValue )
{
iFeatureSetArr[ iIndex ] = aValue;
}
void TMWFeatureSet::Reset( void )
{
for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
{
SetFeatureAttr( i, EFalse );
}
}
void TMWFeatureSet::ExternalizeL( RWriteStream & aOutputStream )
{
for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
{
aOutputStream.WriteUint8L((TUint)iFeatureSetArr[ i ]);
}
}
void TMWFeatureSet::InternalizeL( RReadStream & aInputStream )
{
for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
{
iFeatureSetArr[ i ] = (TBool) aInputStream.ReadUint8L();
}
}
Это реализация битовой маски и по шаблону Simpleton: реализация простейшей функциональности самым сложным способом известным разработчику.
По идее надо было как то так:
int mask;
.....
bool IsFeatureAvailable( feature )
{
return ( ( mask & feature ) == feature );
}
+152
QString generateGuid( const std::string &tDeviceSerial,
const std::string &nDatetime, const std::string &licnum,
const char *violation )
{
std::ostringstream s;
s << tDeviceSerial;
s << nDatetime;
s << licnum;
s << violation;
QCryptographicHash hash( QCryptographicHash::Md5 );
hash.addData( QByteArray( s.str().c_str() ) );
QByteArray result = hash.result();
return convToHex( (unsigned char*)result.data(), result.size() );
}
Оно, конечно, работает. Но разобраться в таком коде....
+161
QString convToHex( unsigned char *bytes, int size )
{
if( size > 16 )
size = 16;
QString ret;
for( int i = 0; i < size; i++ )
{
char buf[3];
::sprintf( buf,"%02x", (unsigned int) bytes[i] );
ret += buf;
}
return ret;
}
+170
int key;
float ar1[3];
int ar2[3];
int cnt = 0;
if (P[min][0] > 0) {ar1[cnt] = P[0][0]/P[min][0]; ar2[cnt++] = 0;}
if (P[min][1] > 0) {ar1[cnt] = P[0][1]/P[min][1]; ar2[cnt++] = 1;}
if (P[min][2] > 0) {ar1[cnt] = P[0][2]/P[min][2]; ar2[cnt++] = 2;}
if (cnt == 1)
key = ar2[0];
else if (cnt == 2)
key = (ar1[0] < ar1[1] ? ar2[0] : ar2[1]);
else
key = (ar1[0] < ar1[1] ? (ar1[0] < ar1[2] ? ar2[0] : ar2[2]) : (ar1[1] < ar1[2] ? ar2[1] : ar2[2]));
Нужно было определить номер наименьшего положительного числа из трех.