NeoPZ
|
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
#include <ctime>
#include <string>
#include "rcm.h"
Go to the source code of this file.
Macros | |
#define | ADJ_NUM |
#define | NODE_NUM |
#define | OFFSET |
#define | INCX |
#define | INCX |
#define | INCX |
#define | INCX |
#define | TIME_SIZE |
#define | DIM_NUM |
#define | NODE_NUM |
#define | TRIANGLE_NUM |
#define | TRIANGLE_ORDER |
#define | DIM_NUM |
#define | NODE_NUM |
#define | TRIANGLE_NUM |
#define | TRIANGLE_ORDER |
Functions | |
int | adj_bandwidth (int node_num, int adj_num, int adj_row[], int adj[]) |
bool | adj_contains_ij (int node_num, int adj_num, int adj_row[], int adj[], int i, int j) |
void | adj_insert_ij (int node_num, int adj_max, int *adj_num, int adj_row[], int adj[], int i, int j) |
int | adj_perm_bandwidth (int node_num, int adj_num, int adj_row[], int adj[], int perm[], int perm_inv[]) |
void | adj_perm_show (int node_num, int adj_num, int adj_row[], int adj[], int perm[], int perm_inv[]) |
void | adj_print (int node_num, int adj_num, int adj_row[], int adj[], string title) |
void | adj_print_some (int node_num, int node_lo, int node_hi, int adj_num, int adj_row[], int adj[], string title) |
void | adj_set (int node_num, int adj_max, int *adj_num, int adj_row[], int adj[], int irow, int jcol) |
void | adj_show (int node_num, int adj_num, int adj_row[], int adj[]) |
void | degree (int root, int adj_num, int adj_row[], int adj[], int mask[], int deg[], int *iccsze, int ls[], int node_num) |
void | genrcm (int node_num, int adj_num, int adj_row[], int adj[], int perm[]) |
void | graph_01_adj (int node_num, int adj_num, int adj_row[], int adj[]) |
void | graph_01_size (int *node_num, int *adj_num) |
int | i4_max (int i1, int i2) |
int | i4_min (int i1, int i2) |
int | i4_sign (int i) |
void | i4_swap (int *i, int *j) |
int | i4_uniform (int a, int b, int *seed) |
int | i4col_compare (int m, int n, int a[], int i, int j) |
void | i4col_sort_a (int m, int n, int a[]) |
void | i4col_swap (int m, int n, int a[], int icol1, int icol2) |
void | i4mat_print_some (int m, int n, int a[], int ilo, int jlo, int ihi, int jhi, string title) |
void | i4mat_transpose_print (int m, int n, int a[], string title) |
void | i4mat_transpose_print_some (int m, int n, int a[], int ilo, int jlo, int ihi, int jhi, string title) |
void | i4vec_heap_d (int n, int a[]) |
int * | i4vec_indicator (int n) |
void | i4vec_print (int n, int a[], string title) |
void | i4vec_reverse (int n, int a[]) |
void | i4vec_sort_heap_a (int n, int a[]) |
void | level_set (int root, int adj_num, int adj_row[], int adj[], int mask[], int *level_num, int level_row[], int level[], int node_num) |
void | level_set_print (int node_num, int level_num, int level_row[], int level[]) |
bool | perm_check (int n, int p[]) |
void | perm_inverse3 (int n, int perm[], int perm_inv[]) |
int * | perm_uniform (int n, int *seed) |
float | r4_abs (float x) |
int | r4_nint (float x) |
void | r82vec_permute (int n, double a[], int p[]) |
void | r8mat_print_some (int m, int n, double a[], int ilo, int jlo, int ihi, int jhi, string title) |
void | r8mat_transpose_print_some (int m, int n, double a[], int ilo, int jlo, int ihi, int jhi, string title) |
void | rcm (int root, int adj_num, int adj_row[], int adj[], int mask[], int perm[], int *iccsze, int node_num) |
void | root_find (int *root, int adj_num, int adj_row[], int adj[], int mask[], int *level_num, int level_row[], int level[], int node_num) |
void | sort_heap_external (int n, int *indx, int *i, int *j, int isgn) |
void | timestamp (void) |
int * | triangulation_neighbor_triangles (int triangle_order, int triangle_num, int triangle_node[]) |
int | triangulation_order3_adj_count (int node_num, int triangle_num, int triangle_node[], int triangle_neighbor[], int adj_col[]) |
int * | triangulation_order3_adj_set (int node_num, int triangle_num, int triangle_node[], int triangle_neighbor[], int adj_num, int adj_col[]) |
void | triangulation_order3_example2 (int node_num, int triangle_num, double node_xy[], int triangle_node[], int triangle_neighbor[]) |
void | triangulation_order3_example2_size (int *node_num, int *triangle_num, int *hole_num) |
int | triangulation_order6_adj_count (int node_num, int triangle_num, int triangle_node[], int triangle_neighbor[], int adj_col[]) |
int * | triangulation_order6_adj_set (int node_num, int triangle_num, int triangle_node[], int triangle_neighbor[], int adj_num, int adj_col[]) |
void | triangulation_order6_example2 (int node_num, int triangle_num, double node_xy[], int triangle_node[], int triangle_neighbor[]) |
void | triangulation_order6_example2_size (int *node_num, int *triangle_num, int *hole_num) |
#define ADJ_NUM |
Referenced by graph_01_adj().
#define DIM_NUM |
Referenced by triangulation_order3_example2(), and triangulation_order6_example2().
#define DIM_NUM |
#define INCX |
Referenced by i4mat_print_some(), i4mat_transpose_print_some(), r8mat_print_some(), and r8mat_transpose_print_some().
#define INCX |
#define INCX |
#define INCX |
#define NODE_NUM |
Referenced by graph_01_adj(), triangulation_order3_example2(), and triangulation_order6_example2().
#define NODE_NUM |
#define NODE_NUM |
#define OFFSET |
Referenced by i4col_swap().
#define TIME_SIZE |
Referenced by timestamp().
#define TRIANGLE_NUM |
Referenced by triangulation_order3_example2(), and triangulation_order6_example2().
#define TRIANGLE_NUM |
#define TRIANGLE_ORDER |
Referenced by triangulation_order3_example2(), and triangulation_order6_example2().
#define TRIANGLE_ORDER |
int adj_bandwidth | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[] | ||
) |
bool adj_contains_ij | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | i, | ||
int | j | ||
) |
void adj_insert_ij | ( | int | node_num, |
int | adj_max, | ||
int * | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | i, | ||
int | j | ||
) |
int adj_perm_bandwidth | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | perm[], | ||
int | perm_inv[] | ||
) |
void adj_perm_show | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | perm[], | ||
int | perm_inv[] | ||
) |
void adj_print | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
string | title | ||
) |
Definition at line 468 of file rcm.cpp.
References adj_print_some().
void adj_print_some | ( | int | node_num, |
int | node_lo, | ||
int | node_hi, | ||
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
string | title | ||
) |
void adj_set | ( | int | node_num, |
int | adj_max, | ||
int * | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | irow, | ||
int | jcol | ||
) |
Definition at line 637 of file rcm.cpp.
References adj_contains_ij(), and adj_insert_ij().
void adj_show | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[] | ||
) |
void degree | ( | int | root, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | mask[], | ||
int | deg[], | ||
int * | iccsze, | ||
int | ls[], | ||
int | node_num | ||
) |
Definition at line 875 of file rcm.cpp.
References abs().
Referenced by TPZCompElDisc::AccumulateIntegrationRule(), TPZEulerConsLaw::ArtDiff(), TPZDiffusionConsLaw::DeltaOtimo(), diamtr_(), TPZAgglomerateElement::MotherMesh(), pzshape::TPZShapeDisc::Polynomial(), pzshape::TPZShapeDisc::PolynomialWithoutScale(), TPZAgglomerateElement::ProjectSolution(), rcm(), TPZSloanRenumbering::Resequence(), TPZSloanRenumbering::Resequence2(), TPZCompElDisc::SetDegree(), TPZNonLinMultGridAnalysis::SetDeltaTime(), TPZCompElDisc::SetFalseUseQsiEta(), TPZConsLawTest::SetMaterial(), TPZCompElHDivPressure< TSHAPE >::Shape(), pzshape::TPZShapeDisc::Shape2D(), TPZCompElHDivPressure< TSHAPE >::ShapeDual(), TPZCutHillMcKee::SGraph::ShrinkLastLevel(), TPZCutHillMcKee::SGraph::SmallestDegree(), TPZCutHillMcKee::SGraph::SortNodes(), TPZConservationLaw::TPZConservationLaw(), and TPZNonLinMultGridAnalysis::UniformlyRefineMesh().
void genrcm | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | perm[] | ||
) |
Definition at line 1014 of file rcm.cpp.
References rcm(), and root_find().
void graph_01_adj | ( | int | node_num, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[] | ||
) |
int i4_max | ( | int | i1, |
int | i2 | ||
) |
Definition at line 1238 of file rcm.cpp.
Referenced by adj_bandwidth(), adj_perm_bandwidth(), adj_perm_show(), i4_uniform(), i4mat_print_some(), i4mat_transpose_print_some(), r8mat_print_some(), and r8mat_transpose_print_some().
int i4_min | ( | int | i1, |
int | i2 | ||
) |
Definition at line 1277 of file rcm.cpp.
Referenced by adj_print_some(), i4_uniform(), i4mat_print_some(), i4mat_transpose_print_some(), level_set_print(), r8mat_print_some(), and r8mat_transpose_print_some().
void i4_swap | ( | int * | i, |
int * | j | ||
) |
Definition at line 1356 of file rcm.cpp.
Referenced by perm_uniform().
int i4_uniform | ( | int | a, |
int | b, | ||
int * | seed | ||
) |
int i4col_compare | ( | int | m, |
int | n, | ||
int | a[], | ||
int | i, | ||
int | j | ||
) |
Definition at line 1490 of file rcm.cpp.
Referenced by i4col_sort_a().
void i4col_sort_a | ( | int | m, |
int | n, | ||
int | a[] | ||
) |
Definition at line 1600 of file rcm.cpp.
References i4col_compare(), i4col_swap(), and sort_heap_external().
Referenced by triangulation_neighbor_triangles().
void i4col_swap | ( | int | m, |
int | n, | ||
int | a[], | ||
int | icol1, | ||
int | icol2 | ||
) |
void i4mat_print_some | ( | int | m, |
int | n, | ||
int | a[], | ||
int | ilo, | ||
int | jlo, | ||
int | ihi, | ||
int | jhi, | ||
string | title | ||
) |
void i4mat_transpose_print | ( | int | m, |
int | n, | ||
int | a[], | ||
string | title | ||
) |
Definition at line 1863 of file rcm.cpp.
References i4mat_transpose_print_some().
void i4mat_transpose_print_some | ( | int | m, |
int | n, | ||
int | a[], | ||
int | ilo, | ||
int | jlo, | ||
int | ihi, | ||
int | jhi, | ||
string | title | ||
) |
void i4vec_heap_d | ( | int | n, |
int | a[] | ||
) |
void i4vec_print | ( | int | n, |
int | a[], | ||
string | title | ||
) |
Definition at line 2168 of file rcm.cpp.
Referenced by r82vec_permute().
void i4vec_sort_heap_a | ( | int | n, |
int | a[] | ||
) |
Definition at line 2264 of file rcm.cpp.
References i4vec_heap_d().
Referenced by triangulation_order3_adj_set(), and triangulation_order6_adj_set().
void level_set | ( | int | root, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | mask[], | ||
int * | level_num, | ||
int | level_row[], | ||
int | level[], | ||
int | node_num | ||
) |
Definition at line 2341 of file rcm.cpp.
Referenced by root_find().
void level_set_print | ( | int | node_num, |
int | level_num, | ||
int | level_row[], | ||
int | level[] | ||
) |
bool perm_check | ( | int | n, |
int | p[] | ||
) |
Definition at line 2577 of file rcm.cpp.
Referenced by r82vec_permute().
int* perm_uniform | ( | int | n, |
int * | seed | ||
) |
Definition at line 2679 of file rcm.cpp.
References i4_swap(), and i4_uniform().
int r4_nint | ( | float | x | ) |
void r82vec_permute | ( | int | n, |
double | a[], | ||
int | p[] | ||
) |
Definition at line 2832 of file rcm.cpp.
References i4vec_print(), and perm_check().
void r8mat_print_some | ( | int | m, |
int | n, | ||
double | a[], | ||
int | ilo, | ||
int | jlo, | ||
int | ihi, | ||
int | jhi, | ||
string | title | ||
) |
void r8mat_transpose_print_some | ( | int | m, |
int | n, | ||
double | a[], | ||
int | ilo, | ||
int | jlo, | ||
int | ihi, | ||
int | jhi, | ||
string | title | ||
) |
void rcm | ( | int | root, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | mask[], | ||
int | perm[], | ||
int * | iccsze, | ||
int | node_num | ||
) |
Definition at line 3153 of file rcm.cpp.
References degree(), and i4vec_reverse().
Referenced by genrcm().
void root_find | ( | int * | root, |
int | adj_num, | ||
int | adj_row[], | ||
int | adj[], | ||
int | mask[], | ||
int * | level_num, | ||
int | level_row[], | ||
int | level[], | ||
int | node_num | ||
) |
void sort_heap_external | ( | int | n, |
int * | indx, | ||
int * | i, | ||
int * | j, | ||
int | isgn | ||
) |
Definition at line 3533 of file rcm.cpp.
Referenced by i4col_sort_a().
int* triangulation_neighbor_triangles | ( | int | triangle_order, |
int | triangle_num, | ||
int | triangle_node[] | ||
) |
Definition at line 3767 of file rcm.cpp.
References i4col_sort_a().
int triangulation_order3_adj_count | ( | int | node_num, |
int | triangle_num, | ||
int | triangle_node[], | ||
int | triangle_neighbor[], | ||
int | adj_col[] | ||
) |
int* triangulation_order3_adj_set | ( | int | node_num, |
int | triangle_num, | ||
int | triangle_node[], | ||
int | triangle_neighbor[], | ||
int | adj_num, | ||
int | adj_col[] | ||
) |
Definition at line 4205 of file rcm.cpp.
References i4vec_sort_heap_a().
void triangulation_order3_example2 | ( | int | node_num, |
int | triangle_num, | ||
double | node_xy[], | ||
int | triangle_node[], | ||
int | triangle_neighbor[] | ||
) |
Definition at line 4433 of file rcm.cpp.
References DIM_NUM, NODE_NUM, TRIANGLE_NUM, and TRIANGLE_ORDER.
void triangulation_order3_example2_size | ( | int * | node_num, |
int * | triangle_num, | ||
int * | hole_num | ||
) |
int triangulation_order6_adj_count | ( | int | node_num, |
int | triangle_num, | ||
int | triangle_node[], | ||
int | triangle_neighbor[], | ||
int | adj_col[] | ||
) |
int* triangulation_order6_adj_set | ( | int | node_num, |
int | triangle_num, | ||
int | triangle_node[], | ||
int | triangle_neighbor[], | ||
int | adj_num, | ||
int | adj_col[] | ||
) |
Definition at line 4954 of file rcm.cpp.
References i4vec_sort_heap_a().
void triangulation_order6_example2 | ( | int | node_num, |
int | triangle_num, | ||
double | node_xy[], | ||
int | triangle_node[], | ||
int | triangle_neighbor[] | ||
) |
Definition at line 5293 of file rcm.cpp.
References DIM_NUM, NODE_NUM, TRIANGLE_NUM, and TRIANGLE_ORDER.