Graphviz  2.41.20171026.1811
kkutils.h
Go to the documentation of this file.
1 /* $Id$ $Revision$ */
2 /* vim:set shiftwidth=4 ts=8: */
3 
4 /*************************************************************************
5  * Copyright (c) 2011 AT&T Intellectual Property
6  * All rights reserved. This program and the accompanying materials
7  * are made available under the terms of the Eclipse Public License v1.0
8  * which accompanies this distribution, and is available at
9  * http://www.eclipse.org/legal/epl-v10.html
10  *
11  * Contributors: See CVS logs. Details at http://www.graphviz.org/
12  *************************************************************************/
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 
19 
20 #ifndef KKUTILS_H_
21 #define KKUTILS_H_
22 
23 #include "defs.h"
24 
25 #ifdef __cplusplus
26 
27  inline double distance_kD(double **coords, int dim, int i, int j) {
28  /* compute a k-D Euclidean distance between 'coords[*][i]' and 'coords[*][j]' */
29  double sum = 0;
30  for (int k = 0; k < dim; k++) {
31  sum +=
32  (coords[k][i] - coords[k][j]) * (coords[k][i] -
33  coords[k][j]);
34  } return sqrt(sum);
35  }
36  void compute_apsp(vtx_data * graph, int n, DistType ** (&Dij));
37  void compute_apsp_artifical_weights(vtx_data * graph, int n,
38  DistType ** (&Dij));
39 
40  void quicksort_place(double *place, int *ordering, int first, int last);
41  void free_graph(vtx_data * (&graph));
42 #else
43  extern void fill_neighbors_vec_unweighted(vtx_data *, int vtx,
44  int *vtx_vec);
45  extern int common_neighbors(vtx_data *, int v, int u, int *);
46  extern void empty_neighbors_vec(vtx_data * graph, int vtx,
47  int *vtx_vec);
48  extern DistType **compute_apsp(vtx_data *, int);
50  extern double distance_kD(double **, int, int, int);
51  extern void quicksort_place(double *, int *, int, int);
52  extern void quicksort_placef(float *, int *, int, int);
53  extern void compute_new_weights(vtx_data * graph, int n);
54  extern void restore_old_weights(vtx_data * graph, int n,
55  float *old_weights);
56 #endif
57 
58 #endif
59 
60 #ifdef __cplusplus
61 }
62 #endif
DistType ** compute_apsp_artifical_weights(vtx_data *graph, int n)
Definition: kkutils.c:105
void restore_old_weights(vtx_data *graph, int n, float *old_weights)
Definition: kkutils.c:279
int common_neighbors(vtx_data *graph, int v, int u, int *v_vector)
Definition: kkutils.c:21
void fill_neighbors_vec_unweighted(vtx_data *graph, int vtx, int *vtx_vec)
Definition: kkutils.c:36
DistType ** compute_apsp(vtx_data *graph, int n)
Definition: kkutils.c:97
double distance_kD(double **coords, int dim, int i, int j)
Definition: kkutils.c:171
void quicksort_place(double *place, int *ordering, int first, int last)
Definition: kkutils.c:219
void empty_neighbors_vec(vtx_data *graph, int vtx, int *vtx_vec)
Definition: kkutils.c:46
Agraph_t * graph(char *name)
Definition: gv.cpp:38
int DistType
Definition: sparsegraph.h:92
void compute_new_weights(vtx_data *graph, int n)
Definition: kkutils.c:242
void quicksort_placef(float *place, int *ordering, int first, int last)
Definition: kkutils.c:194