Graphviz 13.0.0~dev.20241220.2304
|
#include "config.h"
#include <time.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>
#include <stdlib.h>
#include <common/types.h>
#include <common/globals.h>
#include <sfdpgen/sparse_solve.h>
#include <sfdpgen/post_process.h>
#include <neatogen/overlap.h>
#include <sfdpgen/spring_electrical.h>
#include <neatogen/call_tri.h>
#include <sfdpgen/sfdp.h>
#include <util/alloc.h>
#include <util/exit.h>
#include <util/unused.h>
Go to the source code of this file.
Macros | |
#define | node_degree(i) (ia[(i)+1] - ia[(i)]) |
#define node_degree | ( | i | ) | (ia[(i)+1] - ia[(i)]) |
Definition at line 31 of file post_process.c.
|
static |
Definition at line 414 of file post_process.c.
References dim, dist(), distance_cropped(), ELSCHEME_PENALTY, ELSCHEME_PENALTY2, ELSCHEME_STRAIGHTLINE_PENALTY, ELSCHEME_STRAIGHTLINE_PENALTY2, gv_calloc(), SparseMatrix_struct::ia, SparseMatrix_struct::ja, MATRIX_TYPE_REAL, NULL, and SparseMatrix_from_coordinate_arrays().
Referenced by StressMajorizationSmoother_smooth().
|
static |
Definition at line 515 of file post_process.c.
References dim, dist(), and distance().
Referenced by StressMajorizationSmoother_smooth().
|
static |
Definition at line 33 of file post_process.c.
References A, D, dim, distance(), free(), gv_calloc(), len(), MATRIX_TYPE_REAL, node_degree, SparseMatrix_copy(), and SparseMatrix_is_symmetric().
Referenced by SpringSmoother_new(), and StressMajorizationSmoother2_new().
void post_process_smoothing | ( | int | dim, |
SparseMatrix | A, | ||
spring_electrical_control | ctrl, | ||
double * | x | ||
) |
Definition at line 912 of file post_process.c.
References A, dim, IDEAL_AVG_DIST, IDEAL_GRAPH_DIST, IDEAL_POWER_DIST, spring_electrical_control_struct::smoothing, SMOOTHING_RNG, SMOOTHING_SPRING, SMOOTHING_STRESS_MAJORIZATION_AVG_DIST, SMOOTHING_STRESS_MAJORIZATION_GRAPH_DIST, SMOOTHING_STRESS_MAJORIZATION_POWER_DIST, SMOOTHING_TRIANGLE, SpringSmoother_delete(), SpringSmoother_new(), SpringSmoother_smooth(), StressMajorizationSmoother2_new(), StressMajorizationSmoother_delete(), StressMajorizationSmoother_smooth(), TriangleSmoother_delete(), TriangleSmoother_new(), TriangleSmoother_smooth(), and Verbose.
Referenced by multilevel_spring_electrical_embedding().
void SparseStressMajorizationSmoother_delete | ( | SparseStressMajorizationSmoother | sm | ) |
Definition at line 405 of file post_process.c.
References StressMajorizationSmoother_delete().
Referenced by stress_model().
StressMajorizationSmoother SparseStressMajorizationSmoother_new | ( | SparseMatrix | A, |
int | dim, | ||
double * | x | ||
) |
Definition at line 293 of file post_process.c.
References A, SparseMatrix_struct::a, StressMajorizationSmoother_struct::D, StressMajorizationSmoother_struct::data, dim, dist(), distance(), drand(), FORMAT_CSR, gv_alloc(), gv_calloc(), SparseMatrix_struct::ia, id, SparseMatrix_struct::ja, StressMajorizationSmoother_struct::lambda, StressMajorizationSmoother_struct::Lw, StressMajorizationSmoother_struct::Lwd, MATRIX_TYPE_REAL, StressMajorizationSmoother_struct::maxit_cg, NULL, SparseMatrix_struct::nz, StressMajorizationSmoother_struct::scaling, StressMajorizationSmoother_struct::scheme, SM_SCHEME_NORMAL, SparseMatrix_is_symmetric(), SparseMatrix_new(), StressMajorizationSmoother_delete(), and StressMajorizationSmoother_struct::tol_cg.
Referenced by stress_model().
double SparseStressMajorizationSmoother_smooth | ( | SparseStressMajorizationSmoother | sm, |
int | dim, | ||
double * | x, | ||
int | maxit_sm | ||
) |
Definition at line 410 of file post_process.c.
References dim, and StressMajorizationSmoother_smooth().
Referenced by stress_model().
void SpringSmoother_delete | ( | SpringSmoother | sm | ) |
Definition at line 893 of file post_process.c.
References SpringSmoother_struct::ctrl, SpringSmoother_struct::D, SparseMatrix_delete(), and spring_electrical_control_delete().
Referenced by post_process_smoothing(), and SpringSmoother_new().
SpringSmoother SpringSmoother_new | ( | SparseMatrix | A, |
int | dim, | ||
spring_electrical_control | ctrl, | ||
double * | x | ||
) |
Definition at line 787 of file post_process.c.
References A, SparseMatrix_struct::a, SpringSmoother_struct::ctrl, SpringSmoother_struct::D, dim, distance(), FORMAT_CSR, free(), gv_alloc(), gv_calloc(), SparseMatrix_struct::ia, ID, id, ideal_distance_matrix(), SparseMatrix_struct::ja, MATRIX_TYPE_REAL, spring_electrical_control_struct::maxiter, spring_electrical_control_struct::multilevels, NULL, SparseMatrix_struct::nz, spring_electrical_control_struct::random_start, SparseMatrix_delete(), SparseMatrix_is_symmetric(), SparseMatrix_new(), spring_electrical_control_new(), SpringSmoother_delete(), and spring_electrical_control_struct::step.
Referenced by post_process_smoothing().
void SpringSmoother_smooth | ( | SpringSmoother | sm, |
SparseMatrix | A, | ||
int | dim, | ||
double * | x | ||
) |
Definition at line 902 of file post_process.c.
References A, SpringSmoother_struct::ctrl, SpringSmoother_struct::D, dim, and spring_electrical_spring_embedding().
Referenced by post_process_smoothing().
StressMajorizationSmoother StressMajorizationSmoother2_new | ( | SparseMatrix | A, |
int | dim, | ||
double | lambda0, | ||
double * | x, | ||
int | ideal_dist_scheme | ||
) |
Definition at line 101 of file post_process.c.
References A, SparseMatrix_struct::a, StressMajorizationSmoother_struct::data, dim, dist(), distance(), distance_cropped(), FORMAT_CSR, free(), graphviz_exit(), gv_alloc(), gv_calloc(), SparseMatrix_struct::ia, ID, id, IDEAL_AVG_DIST, ideal_distance_matrix(), IDEAL_GRAPH_DIST, IDEAL_POWER_DIST, SparseMatrix_struct::ja, StressMajorizationSmoother_struct::lambda, StressMajorizationSmoother_struct::Lw, StressMajorizationSmoother_struct::Lwd, MATRIX_TYPE_REAL, StressMajorizationSmoother_struct::maxit_cg, NULL, SparseMatrix_struct::nz, StressMajorizationSmoother_struct::scaling, StressMajorizationSmoother_struct::scheme, SM_SCHEME_NORMAL, SparseMatrix_delete(), SparseMatrix_is_symmetric(), SparseMatrix_new(), StressMajorizationSmoother_delete(), and StressMajorizationSmoother_struct::tol_cg.
Referenced by post_process_smoothing().
void StressMajorizationSmoother_delete | ( | StressMajorizationSmoother | sm | ) |
Definition at line 668 of file post_process.c.
References StressMajorizationSmoother_struct::data, StressMajorizationSmoother_struct::data_deallocator, free(), StressMajorizationSmoother_struct::lambda, StressMajorizationSmoother_struct::Lw, StressMajorizationSmoother_struct::Lwd, and SparseMatrix_delete().
Referenced by post_process_smoothing(), SparseStressMajorizationSmoother_delete(), SparseStressMajorizationSmoother_new(), StressMajorizationSmoother2_new(), and TriangleSmoother_delete().
double StressMajorizationSmoother_smooth | ( | StressMajorizationSmoother | sm, |
int | dim, | ||
double * | x, | ||
int | maxit_sm | ||
) |
Definition at line 533 of file post_process.c.
References SparseMatrix_struct::a, StressMajorizationSmoother_struct::data, dim, dist(), distance(), drand(), free(), get_edge_label_matrix(), get_stress(), SparseMatrix_struct::ia, id, SparseMatrix_struct::ja, StressMajorizationSmoother_struct::lambda, StressMajorizationSmoother_struct::Lw, StressMajorizationSmoother_struct::Lwd, SparseMatrix_struct::m, StressMajorizationSmoother_struct::maxit_cg, NULL, RETURN, StressMajorizationSmoother_struct::scaling, StressMajorizationSmoother_struct::scheme, SM_SCHEME_NORMAL_ELABEL, SparseMatrix_add(), SparseMatrix_copy(), SparseMatrix_delete(), SparseMatrix_multiply_dense(), SparseMatrix_solve(), tol, StressMajorizationSmoother_struct::tol_cg, total_distance(), vector_product(), and Verbose.
Referenced by post_process_smoothing(), SparseStressMajorizationSmoother_smooth(), and TriangleSmoother_smooth().
|
static |
Definition at line 388 of file post_process.c.
Referenced by StressMajorizationSmoother_smooth().
void TriangleSmoother_delete | ( | TriangleSmoother | sm | ) |
Definition at line 776 of file post_process.c.
References StressMajorizationSmoother_delete().
Referenced by post_process_smoothing(), and TriangleSmoother_new().
TriangleSmoother TriangleSmoother_new | ( | SparseMatrix | A, |
int | dim, | ||
double * | x, | ||
bool | use_triangularization | ||
) |
Definition at line 677 of file post_process.c.
References A, SparseMatrix_struct::a, B, call_tri(), call_tri2(), StressMajorizationSmoother_struct::data, dim, dist(), distance(), distance_cropped(), free(), gv_alloc(), gv_calloc(), SparseMatrix_struct::ia, SparseMatrix_struct::ja, StressMajorizationSmoother_struct::lambda, StressMajorizationSmoother_struct::Lw, StressMajorizationSmoother_struct::Lwd, StressMajorizationSmoother_struct::maxit_cg, NULL, StressMajorizationSmoother_struct::scaling, StressMajorizationSmoother_struct::scheme, SM_SCHEME_NORMAL, SparseMatrix_add(), SparseMatrix_copy(), SparseMatrix_delete(), SparseMatrix_is_symmetric(), StressMajorizationSmoother_struct::tol_cg, TriangleSmoother_delete(), and TriangleSmoother_struct.
Referenced by post_process_smoothing().
void TriangleSmoother_smooth | ( | TriangleSmoother | sm, |
int | dim, | ||
double * | x | ||
) |
Definition at line 782 of file post_process.c.
References dim, and StressMajorizationSmoother_smooth().
Referenced by post_process_smoothing().