Changeset 2068


Ignore:
Timestamp:
10/14/08 09:08:46 (6 years ago)
Author:
vjleung
Message:

Committing my scratch and commented out an include that no longer exists in util.h.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/mtgl/graph_traits.hpp

    r2056 r2068  
    3030  typedef typename graph::adj_vertex_iterator    adj_vertex_iterator; 
    3131  typedef typename graph::type_map_type          type_map_type; 
    32   typedef typename graph::graph_type             graph_type; 
     32  //  typedef typename graph::graph_type             graph_type; 
    3333  typedef typename graph::base_adapter_type      base_adapter_type; 
    3434}; 
  • trunk/mtgl/metrics.hpp

    r1822 r2068  
    9292        typedef typename graph_traits<graph>::vertex_descriptor vertex; 
    9393        typedef typename graph_traits<graph>::edge_type edge; 
    94         type_mixing_matrix_visitor(vertex_id_map<graph>&vm, int**res, int*typs, 
     94        type_mixing_matrix_visitor(vertex_id_map<graph>&vm, int*res, int*typs, 
    9595                              int *map, int *subp=0, int my_subp=0) 
    9696                : result(res), types(typs), subproblem(subp), id2comm(map), 
     
    107107                int st=id2comm[types[get(vid_map, src)]], 
    108108                    dt=id2comm[types[get(vid_map, other(e,src))]]; 
    109                 mt_incr(result[st][dt], 1); 
     109                if (st == dt) 
     110                  mt_incr(result[0], 1); 
     111                else 
     112                  mt_incr(result[1], 1); 
    110113        } 
    111114        void back_edge(edge e, vertex src) 
     
    114117        } 
    115118protected: 
    116         int **result; 
     119        int *result; 
    117120        int *types; 
    118121        int *subproblem; 
     
    148151                #pragma mta trace "te" 
    149152                vertex dest = other(e,src); 
    150                 mt_incr(result[dest->degree()][src->degree()], 1); 
     153                int log2d = (int)ceil(log(dest->degree()+1.0) / log(2.0)) + 1; 
     154                int log2s = (int)ceil(log(src->degree() + 1.0) / log(2.0)) + 1; 
     155                mt_incr(result[log2d][log2s], 1); 
    151156          } 
    152157        } 
     
    182187        { 
    183188                #pragma mta trace "te" 
    184                 mt_incr(result[v->degree()], 1); 
     189                int log2d = (int)ceil(log(v->degree() + 1.0) / log(2.0)) + 1; 
     190                mt_incr(result[log2d], 1); 
    185191        } 
    186192        bool visit_test(edge e, vertex v)  
     
    216222          #pragma mta trace "te" 
    217223          int sd = v->degree(); 
    218           if (sd > 1) 
    219             mt_incr(*count, sd * (sd-1) / 2); 
     224          if (sd > 1) { 
     225            int act = sd * (sd-1) / 2; 
     226            mt_incr(*count, act); 
     227          } 
    220228        } 
    221229        bool visit_test(edge e, vertex v)  
     
    285293{ 
    286294public: 
    287   find_type_mixing_matrix(graph&gg, int**res, int*typs, int*map, 
     295  find_type_mixing_matrix(graph&gg, int*res, int*typs, int*map, 
    288296                          int *subp=0, int my_subp=0)  
    289297          : g(gg), result(res), types(typs), 
     
    323331private: 
    324332         graph& g; 
    325          int **result; 
     333         int *result; 
    326334         int *types; 
    327335         int *id2comm;   // given leader id, return comm # 
     
    349357        { 
    350358          int ord = g.get_order(); 
    351           int i, **tmm = (int **)malloc(num_types * sizeof(int *)), 
    352             *server = new int[ord], *id_inversemap = new int[ord]; 
    353  
    354           for(i = 0; i < num_types; ++i) 
    355             tmm[i] = (int *)calloc(num_types, sizeof(int)); 
     359          int i, tmm[2], *server = new int[ord], *id_inversemap = new int[ord]; 
     360          tmm[0] = tmm[1] = 0; 
    356361 
    357362          for (i=0; i<ord; i++) { 
     
    365370          //mta_suspend_event_logging(); 
    366371          int all = 0, same = 0; 
    367  
    368           for (i = 0; i < num_types; ++i) { 
    369             same += tmm[i][i]; 
    370  
    371             for (int j = 0; j < num_types; ++j) 
    372               all += tmm[i][j]; 
    373           } 
     372          same = tmm[0]; 
     373          all = tmm[0] + tmm[1]; 
    374374 
    375375          *result = (double)same/all; 
     376          printf("assortativity: %lf\n", *result); 
    376377          return ticks1; 
    377378        } 
     
    412413#endif 
    413414                vertex_id_map<graph> vid_map = get(_vertex_id_map, g); 
    414                 int ord=g.get_order(),maxdegree=2*ord-1,i,j; 
     415                int ord=g.get_order(); 
     416                int maxdegree=(int)ceil(log(2.0*ord-1)/log(2.0))+1,i,j; 
    415417                int**res=(int**)malloc(maxdegree*sizeof(int)); 
    416418                int size=g.get_size(); 
     
    479481#endif 
    480482                vertex_id_map<graph> vid_map = get(_vertex_id_map, g); 
    481                 int ord=g.get_order(),m=2*ord-1; 
     483                int ord=g.get_order(),m=(int)ceil(log(2.0*ord-1)/log(2.0))+1; 
    482484                int*res=(int*)calloc(m,sizeof(int)); 
    483485                degree_distribution_visitor<graph> ddv(vid_map,  
     
    543545#endif 
    544546                vertex_id_map<graph> vid_map = get(_vertex_id_map, g); 
     547                int count2 = 0; 
    545548                connected_triples_visitor<graph> ctv(vid_map,  
    546                                  count, subproblem, my_subproblem); 
     549                                 &count2, subproblem, my_subproblem); 
    547550                psearch_high_low<graph, connected_triples_visitor<graph>, 
    548551                                 AND_FILTER,UNDIRECTED,10> psrch(g,ctv); 
    549552                psrch.run(); 
     553                *count = count2; 
    550554 
    551555                mttimer.stop(); 
     
    617621                fprintf(stdout, "found %d triangles\n", count); 
    618622 
    619                 int count2=0; 
     623                int count2; 
    620624                find_connected_triples<graph> fct(g, &count2); 
    621625                int ticks2 = fct.run(); 
  • trunk/mtgl/util.h

    r2056 r2068  
    2828#include <sys/time.h> 
    2929#endif 
    30 #include <mtgl/mtgl_config.h> 
     30//#include <mtgl/mtgl_config.h> 
    3131 
    3232#include <iostream> 
  • trunk/test/test_find_degree_degree_correlation.h

    r1823 r2068  
    2323void test_find_degree_degree_correlation(graph& g) 
    2424{ 
    25         int ord = g.get_order(), maxdegree = 2 * ord - 1, i, j; 
     25        int ord=g.get_order(),maxdegree=(int)ceil(log(2.*ord-1)/log(2.))+1,i,j; 
    2626        double**result=(double**)malloc(maxdegree*sizeof(double*)); 
    2727        int size=g.get_size(); 
  • trunk/test/test_find_degree_distribution.h

    r1724 r2068  
     1#include <math.h> 
    12#include "mtgl_test.h" 
    23#include <mtgl/util.h> 
     
    2324void test_find_degree_distribution(graph& g) 
    2425{ 
    25         int i,ord = g.get_order(), maxdegree = 2 * ord - 1; 
     26        int i, ord=g.get_order(), maxdegree=(int)ceil(log(2.*ord-1)/log(2.))+1; 
    2627        double *result=(double*)malloc(maxdegree*sizeof(double)); 
    2728 
Note: See TracChangeset for help on using the changeset viewer.