Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
Multilevel.h
Go to the documentation of this file.
1/*************************************************************************
2 * Copyright (c) 2011 AT&T Intellectual Property
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * https://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors: Details at https://graphviz.org
9 *************************************************************************/
10
11#pragma once
12
13#include <sparse/SparseMatrix.h>
14#include <stdbool.h>
15
17
19 int level; /* 0, 1, ... */
20 int n;
21 SparseMatrix A; /* the weighting matrix */
27};
28
29enum { MAX_CLUSTER_SIZE = 4 };
30
31typedef struct {
34
36
38
40
41void print_padding(int n);
42
43#define Multilevel_is_finest(grid) (!((grid)->prev))
44#define Multilevel_is_coarsest(grid) (!((grid)->next))
void print_padding(int n)
Definition Multilevel.c:240
Multilevel Multilevel_get_coarsest(Multilevel grid)
Definition Multilevel.c:297
void Multilevel_delete(Multilevel grid)
Definition Multilevel.c:36
Multilevel Multilevel_new(SparseMatrix A, const Multilevel_control ctrl)
Definition Multilevel.c:281
@ MAX_CLUSTER_SIZE
Definition Multilevel.h:29
struct Multilevel_struct * Multilevel
Definition Multilevel.h:16
#define A(n, t)
Definition expr.h:76
@ grid
Definition gvgen.c:32
SparseMatrix P
Definition Multilevel.h:22
Multilevel next
Definition Multilevel.h:24
Multilevel prev
Definition Multilevel.h:25
SparseMatrix R
Definition Multilevel.h:23
SparseMatrix A
Definition Multilevel.h:21