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
15extern "C" {
16#endif
17
18
19#ifndef STRESS_H
20#define STRESS_H
21
22#include "defs.h"
23
24#define tolerance_cg 1e-3
25
26#define DFLT_ITERATIONS 200
27
28#define DFLT_TOLERANCE 1e-4
29
30 /* some possible values for 'num_pivots_stress' */
31#define num_pivots_stress 40
32#define num_pivots_smart_ini 0
33#define num_pivots_no_ini 50
34
35 /* relevant when using sparse distance matrix
36 * when optimizing within subspace it can be set to 0
37 * otherwise, recommended value is above zero (usually around 3-6)
38 * some possible values for 'neighborhood_radius'
39 */
40#define neighborhood_radius_unrestricted 4
41#define neighborhood_radius_subspace 0
42
43#define opt_smart_init 0x4
44#define opt_exp_flag 0x3
45
46 /* Full dense stress optimization (equivalent to Kamada-Kawai's energy) */
47 /* Slowest and most accurate optimization */
48 extern int stress_majorization_kD_mkernel(vtx_data * graph, /* Input graph in sparse representation */
49 int n, /* Number of nodes */
50 int nedges_graph, /* Number of edges */
51 double **coords, /* coordinates of nodes (output layout) */
52 node_t **nodes, /* original nodes */
53 int dim, /* dimemsionality of layout */
54 int opts, /* option flags */
55 int model, /* model */
56 int maxi /* max iterations */
57 );
58
59extern float *compute_apsp_packed(vtx_data * graph, int n);
60extern float *compute_apsp_artifical_weights_packed(vtx_data * graph, int n);
61extern float* circuitModel(vtx_data * graph, int nG);
62extern float* mdsModel (vtx_data * graph, int nG);
63extern int initLayout(vtx_data * graph, int n, int dim, double **coords, node_t** nodes);
64
65#endif
66
67#ifdef __cplusplus
68}
69#endif
70