![]() |
Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
Find eigenvalues and eigenvectors of matrix. More...
#include <stdio.h>#include <string.h>#include <math.h>#include <assert.h>#include <stdlib.h>#include <stdint.h>#include "eigenv_private.h"#include "mmgcommon_private.h"
Go to the source code of this file.
Macros | |
| #define | MG_EIGENV_EPS27 1.e-27 |
| #define | MG_EIGENV_EPS13 1.e-13 |
| #define | MG_EIGENV_EPS10 1.e-10 |
| #define | MG_EIGENV_EPS5e6 5.e-06 |
| #define | MG_EIGENV_EPS6 1.e-06 |
| #define | MG_EIGENV_EPS2e6 2.e-06 |
| #define | MG_EIGENV_EPS5 1.e-05 |
| #define | MAXTOU 50 |
| #define | egal(x, y) |
Functions | |
| static int | newton3 (double p[4], double x[3]) |
| Find root(s) of a polynomial of degree 3. | |
| static int | MMG5_check_accuracy (double mat[6], double lambda[3], double v[3][3], double w1[3], double w2[3], double w3[3], double maxm, int order, int symmat) |
| int | MMG5_eigenv3d (int symmat, double *mat, double lambda[3], double v[3][3]) |
| Find eigenvalues and vectors of a 3x3 matrix. | |
| int | MMG5_eigenv2d (int symmat, double *mat, double lambda[2], double vp[2][2]) |
| Find eigenvalues and vectors of a 2x2 matrix. | |
| int | MMG5_eigen2 (double *mm, double *lambda, double vp[2][2]) |
| Find eigenvalues and vectors of a 2x2 matrix. | |
| int | MMG5_eigensym (double m[3], double lambda[2], double vp[2][2]) |
Variables | |
| static double | Id [3][3] |
| Identity matrix. | |
Find eigenvalues and eigenvectors of matrix.
Find eigenvalues and eigenvectors of 2x2 or 3x3 symetric definite positive matrix.
Definition in file eigenv.c.
| #define egal | ( | x, | |
| y | |||
| ) |
Check if numbers x and y are equal.
|
static |
| mat | pointer to a 3x3 matrix. |
| lambda | eigenvalues. |
| v | eigenvectors. |
| w1 | temporary array to perform the matrix cross product. |
| w2 | temporary array to perform the matrix cross product. |
| w3 | temporary array to perform the matrix cross product. |
| maxm | maximal value of the matrix used for normalization. |
| order | order of eigenvalues (1,2,3) or 0 if failed. |
| symmat | 0 if matrix is not symetric, 1 otherwise. |
Check the accuracy of the eigenvalues and vectors computation of a 3x3 matrix (symetric).
Definition at line 311 of file eigenv.c.

| int MMG5_eigen2 | ( | double * | mm, |
| double * | lambda, | ||
| double | vp[2][2] | ||
| ) |
|
inline |
| int MMG5_eigenv2d | ( | int | symmat, |
| double * | mat, | ||
| double | lambda[2], | ||
| double | vp[2][2] | ||
| ) |
Find eigenvalues and vectors of a 2x2 matrix.
| symmat | 0 if matrix is not symetric, 1 otherwise. |
| mat | pointer to the matrix. |
| lambda | eigenvalues. |
| v | eigenvectors. |
Definition at line 780 of file eigenv.c.


| int MMG5_eigenv3d | ( | int | symmat, |
| double * | mat, | ||
| double | lambda[3], | ||
| double | v[3][3] | ||
| ) |
Find eigenvalues and vectors of a 3x3 matrix.
| symmat | 0 if matrix is not symetric, 1 otherwise. |
| mat | pointer to the matrix. |
| lambda | eigenvalues. |
| v | eigenvectors. |
rows of A-lambda[2]*I
rows of A-lambda[0]*I
Definition at line 385 of file eigenv.c.


|
static |
Find root(s) of a polynomial of degree 3.
| p | polynomial coefficients (b=p[2], c=p[1], d=p[0]). |
| x | root(s) of polynomial. |
Find root(s) of a polynomial of degree 3: \(P(x) = x^3+bx^2+cx+d\).
Definition at line 86 of file eigenv.c.
