Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fix various errors/warnings occurring with clang
  • Loading branch information
Soeren Sonnenburg committed Jan 24, 2012
1 parent 9e0a7fd commit 210ae0a
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 113 deletions.
86 changes: 43 additions & 43 deletions src/shogun/classifier/svm/MultiClassSVM.cpp
Expand Up @@ -115,66 +115,66 @@ CLabels* CMultiClassSVM::classify_one_vs_one()
if (!kernel)
{
SG_ERROR( "SVM can not proceed without kernel!\n");
return false ;
return NULL;
}

if ( kernel && kernel->get_num_vec_lhs() && kernel->get_num_vec_rhs())
{
int32_t num_vectors=kernel->get_num_vec_rhs();
if (!( kernel && kernel->get_num_vec_lhs() && kernel->get_num_vec_rhs()))
return NULL;

result=new CLabels(num_vectors);
SG_REF(result);
int32_t num_vectors=kernel->get_num_vec_rhs();

ASSERT(num_vectors==result->get_num_labels());
CLabels** outputs=SG_MALLOC(CLabels*, m_num_svms);
result=new CLabels(num_vectors);
SG_REF(result);

for (int32_t i=0; i<m_num_svms; i++)
{
SG_INFO("num_svms:%d svm[%d]=0x%0X\n", m_num_svms, i, m_svms[i]);
ASSERT(m_svms[i]);
m_svms[i]->set_kernel(kernel);
outputs[i]=m_svms[i]->apply();
}
ASSERT(num_vectors==result->get_num_labels());
CLabels** outputs=SG_MALLOC(CLabels*, m_num_svms);

int32_t* votes=SG_MALLOC(int32_t, m_num_classes);
for (int32_t v=0; v<num_vectors; v++)
{
int32_t s=0;
memset(votes, 0, sizeof(int32_t)*m_num_classes);
for (int32_t i=0; i<m_num_svms; i++)
{
SG_INFO("num_svms:%d svm[%d]=0x%0X\n", m_num_svms, i, m_svms[i]);
ASSERT(m_svms[i]);
m_svms[i]->set_kernel(kernel);
outputs[i]=m_svms[i]->apply();
}

for (int32_t i=0; i<m_num_classes; i++)
int32_t* votes=SG_MALLOC(int32_t, m_num_classes);
for (int32_t v=0; v<num_vectors; v++)
{
int32_t s=0;
memset(votes, 0, sizeof(int32_t)*m_num_classes);

for (int32_t i=0; i<m_num_classes; i++)
{
for (int32_t j=i+1; j<m_num_classes; j++)
{
for (int32_t j=i+1; j<m_num_classes; j++)
{
if (outputs[s++]->get_label(v)>0)
votes[i]++;
else
votes[j]++;
}
if (outputs[s++]->get_label(v)>0)
votes[i]++;
else
votes[j]++;
}
}

int32_t winner=0;
int32_t max_votes=votes[0];
int32_t winner=0;
int32_t max_votes=votes[0];

for (int32_t i=1; i<m_num_classes; i++)
for (int32_t i=1; i<m_num_classes; i++)
{
if (votes[i]>max_votes)
{
if (votes[i]>max_votes)
{
max_votes=votes[i];
winner=i;
}
max_votes=votes[i];
winner=i;
}

result->set_label(v, winner);
}

SG_FREE(votes);

for (int32_t i=0; i<m_num_svms; i++)
SG_UNREF(outputs[i]);
SG_FREE(outputs);
result->set_label(v, winner);
}

SG_FREE(votes);

for (int32_t i=0; i<m_num_svms; i++)
SG_UNREF(outputs[i]);
SG_FREE(outputs);

return result;
}

Expand Down
136 changes: 68 additions & 68 deletions src/shogun/classifier/svm/ScatterSVM.cpp
Expand Up @@ -377,103 +377,103 @@ CLabels* CScatterSVM::classify_one_vs_rest()
if (!kernel)
{
SG_ERROR( "SVM can not proceed without kernel!\n");
return false ;
return NULL;
}

if ( kernel && kernel->get_num_vec_lhs() && kernel->get_num_vec_rhs())
{
int32_t num_vectors=kernel->get_num_vec_rhs();
if (!( kernel && kernel->get_num_vec_lhs() && kernel->get_num_vec_rhs()))
return NULL;

output=new CLabels(num_vectors);
SG_REF(output);
int32_t num_vectors=kernel->get_num_vec_rhs();

if (scatter_type == TEST_RULE1)
{
ASSERT(m_num_svms>0);
for (int32_t i=0; i<num_vectors; i++)
output->set_label(i, apply(i));
}
output=new CLabels(num_vectors);
SG_REF(output);

if (scatter_type == TEST_RULE1)
{
ASSERT(m_num_svms>0);
for (int32_t i=0; i<num_vectors; i++)
output->set_label(i, apply(i));
}
#ifdef USE_SVMLIGHT
else if (scatter_type == NO_BIAS_SVMLIGHT)
{
float64_t* outputs=SG_MALLOC(float64_t, num_vectors*m_num_classes);
CMath::fill_vector(outputs,num_vectors*m_num_classes,0.0);
else if (scatter_type == NO_BIAS_SVMLIGHT)
{
float64_t* outputs=SG_MALLOC(float64_t, num_vectors*m_num_classes);
CMath::fill_vector(outputs,num_vectors*m_num_classes,0.0);

for (int32_t i=0; i<num_vectors; i++)
for (int32_t i=0; i<num_vectors; i++)
{
for (int32_t j=0; j<get_num_support_vectors(); j++)
{
for (int32_t j=0; j<get_num_support_vectors(); j++)
float64_t score=kernel->kernel(get_support_vector(j), i)*get_alpha(j);
int32_t label=labels->get_int_label(get_support_vector(j));
for (int32_t c=0; c<m_num_classes; c++)
{
float64_t score=kernel->kernel(get_support_vector(j), i)*get_alpha(j);
int32_t label=labels->get_int_label(get_support_vector(j));
for (int32_t c=0; c<m_num_classes; c++)
{
float64_t s= (label==c) ? (m_num_classes-1) : (-1);
outputs[c+i*m_num_classes]+=s*score;
}
float64_t s= (label==c) ? (m_num_classes-1) : (-1);
outputs[c+i*m_num_classes]+=s*score;
}
}
}

for (int32_t i=0; i<num_vectors; i++)
for (int32_t i=0; i<num_vectors; i++)
{
int32_t winner=0;
float64_t max_out=outputs[i*m_num_classes+0];

for (int32_t j=1; j<m_num_classes; j++)
{
int32_t winner=0;
float64_t max_out=outputs[i*m_num_classes+0];
float64_t out=outputs[i*m_num_classes+j];

for (int32_t j=1; j<m_num_classes; j++)
if (out>max_out)
{
float64_t out=outputs[i*m_num_classes+j];

if (out>max_out)
{
winner=j;
max_out=out;
}
winner=j;
max_out=out;
}

output->set_label(i, winner);
}

SG_FREE(outputs);
output->set_label(i, winner);
}

SG_FREE(outputs);
}
#endif //USE_SVMLIGHT
else
else
{
ASSERT(m_num_svms>0);
ASSERT(num_vectors==output->get_num_labels());
CLabels** outputs=SG_MALLOC(CLabels*, m_num_svms);

for (int32_t i=0; i<m_num_svms; i++)
{
ASSERT(m_num_svms>0);
ASSERT(num_vectors==output->get_num_labels());
CLabels** outputs=SG_MALLOC(CLabels*, m_num_svms);
//SG_PRINT("svm %d\n", i);
ASSERT(m_svms[i]);
m_svms[i]->set_kernel(kernel);
m_svms[i]->set_labels(labels);
outputs[i]=m_svms[i]->apply();
}

for (int32_t i=0; i<m_num_svms; i++)
{
//SG_PRINT("svm %d\n", i);
ASSERT(m_svms[i]);
m_svms[i]->set_kernel(kernel);
m_svms[i]->set_labels(labels);
outputs[i]=m_svms[i]->apply();
}
for (int32_t i=0; i<num_vectors; i++)
{
int32_t winner=0;
float64_t max_out=outputs[0]->get_label(i)/norm_wc[0];

for (int32_t i=0; i<num_vectors; i++)
for (int32_t j=1; j<m_num_svms; j++)
{
int32_t winner=0;
float64_t max_out=outputs[0]->get_label(i)/norm_wc[0];
float64_t out=outputs[j]->get_label(i)/norm_wc[j];

for (int32_t j=1; j<m_num_svms; j++)
if (out>max_out)
{
float64_t out=outputs[j]->get_label(i)/norm_wc[j];

if (out>max_out)
{
winner=j;
max_out=out;
}
winner=j;
max_out=out;
}

output->set_label(i, winner);
}

for (int32_t i=0; i<m_num_svms; i++)
SG_UNREF(outputs[i]);

SG_FREE(outputs);
output->set_label(i, winner);
}

for (int32_t i=0; i<m_num_svms; i++)
SG_UNREF(outputs[i]);

SG_FREE(outputs);
}

return output;
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/lib/Hash.cpp
Expand Up @@ -196,7 +196,7 @@ void CHash::MD5Final(unsigned char digest[16], struct MD5Context *ctx)
MD5Transform(ctx->buf, (uint32_t *) ctx->in);
byteReverse((unsigned char *) ctx->buf, 4);
memcpy(digest, ctx->buf, 16);
memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
}

#ifndef ASM_MD5
Expand Down
2 changes: 1 addition & 1 deletion src/shogun/ui/GUIClassifier.cpp
Expand Up @@ -1411,7 +1411,7 @@ CLabels* CGUIClassifier::classify_linear()
if (!(testfeatures->has_property(FP_DOT)))
{
SG_ERROR("testfeatures not based on DotFeatures\n") ;
return false ;
return NULL;
}

((CLinearMachine*) classifier)->set_features((CDotFeatures*) testfeatures);
Expand Down

0 comments on commit 210ae0a

Please sign in to comment.