Esempio n. 1
0
const perm_vector_type * ranking_table_get_permutation( const ranking_table_type * ranking_table , const char * ranking_key) {
  if (hash_has_key( ranking_table->ranking_table , ranking_key)) {
    void * ranking = hash_get( ranking_table->ranking_table , ranking_key );
    
    if (data_ranking_is_instance( ranking )) {
      data_ranking_type * data_ranking = data_ranking_safe_cast( ranking );
      return data_ranking_get_permutation( data_ranking );
    } else if (misfit_ranking_is_instance( ranking )) {
      misfit_ranking_type * misfit_ranking = misfit_ranking_safe_cast( ranking );
      return misfit_ranking_get_permutation( misfit_ranking );
    } else {
      util_abort("%s: internal error \n");
      return NULL;
    }

  } else
    return NULL;
}
Esempio n. 2
0
bool ranking_table_display_ranking( const ranking_table_type * ranking_table , const char * ranking_key ) {
  if (hash_has_key( ranking_table->ranking_table , ranking_key)) {
    void * ranking = hash_get( ranking_table->ranking_table , ranking_key );
    
    if (data_ranking_is_instance( ranking )) {
      data_ranking_type * data_ranking = data_ranking_safe_cast( ranking );
      data_ranking_display( data_ranking , stdout );
    } else if (misfit_ranking_is_instance( ranking )) {
      misfit_ranking_type * misfit_ranking = misfit_ranking_safe_cast( ranking );
      misfit_ranking_display( misfit_ranking , stdout );
    } else
      util_abort("%s: internal error \n",__func__);
    

    return true;
  } else
    return false;
}
Esempio n. 3
0
bool ranking_table_fwrite_ranking( const ranking_table_type * ranking_table , const char * ranking_key, const char * filename ) {
  if (hash_has_key( ranking_table->ranking_table , ranking_key)) {
    void * ranking = hash_get( ranking_table->ranking_table , ranking_key );

    FILE * file = util_mkdir_fopen(filename, "w");

    if (data_ranking_is_instance( ranking )) {
      data_ranking_type * data_ranking = data_ranking_safe_cast( ranking );
      data_ranking_display( data_ranking , file );
    } else if (misfit_ranking_is_instance( ranking )) {
      misfit_ranking_type * misfit_ranking = misfit_ranking_safe_cast( ranking );
      misfit_ranking_display( misfit_ranking , file );
    } else
      util_abort("%s: internal error \n",__func__);

    util_fclose(file);

    return true;
  } else
    return false;
}
Esempio n. 4
0
void data_ranking_free__( void * arg) {
    data_ranking_type * ranking = data_ranking_safe_cast( arg );
    data_ranking_free( ranking );
}