Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

utilcalc.c File Reference

#include <stdlib.h>
#include "idmath.h"
#include "idmatric.h"
#include "iderr.h"
#include "idprint.h"
#include "idcalc.h"

Go to the source code of this file.

Defines

#define sqr(x)   ((x)*(x) )
#define SQR(a)   ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)
#define IA   16807
#define IM   2147483647
#define AM   (1.0/IM)
#define IQ   127773
#define IR   2836
#define NTAB   32
#define NDIV   (1+(IM-1)/NTAB)
#define EPS   1.2e-7
#define RNMX   (1.0-EPS)

Functions

double IdCalcDistance2Points (double x1, double y1, double x2, double y2)
 Calcule la distance entre deux points.

double IdCalcDistancePointDroite (double x, double y, double x1, double y1, double x2, double y2)
 Calcule la distance d'un point a une droite.

double IdCalcAngleFromCotes (double dx, double dy)
 Calcul d'un angle a partir des cotes de l'angle DROIT.

double IdCalcAngleFromPoints (double xB, double yB, double xA, double yA, double xC, double yC)
 Calcul d'un angle B A C a partir des points B,A,C.

int IdCalcRotatePoint (double x, double y, double centreX, double centreY, double angle, double *nouvX, double *nouvY)
 Rotation d'un point autour d'un centre.

int IdCalcZoomPoint (double x, double y, double centreX, double centreY, double percent, double *nouvX, double *nouvY)
 Augmente d'1 ge donne la Distance d'un point par rapport a un autre.

double IdCalcPythagore (double a, double b)
 computes sqrt(a + b) without destructive underflow or overflow

PVECTOR_COMPLEX IdCalcRacinesPoly2 (double a, double b, double c)
 racines d'un polynome de 2eme degre a coefs reels ax^2+bx+c

PVECTOR_COMPLEX IdCalcRacinesPoly3 (double a, double b, double c, double d)
 racines d'un polynome de 3eme degre a coefs reels ax^3+bx^2+cx+d = 0

int IdCalcNbElemIntEnum (int *tabInterv, int nbInterv)
 Nombre d'elements designes par une Int Enum (voir IdStrIntEnum) Exemple : tabInterv : 22,25,35,35,43,45 nbInterv : 3 retour : 8.

int IdCalcArrondInt (double x)
 Procedure d'arrondi double->int.

float IdCalcFloatFromSun (float *origine)
 transforme un Float SUN (ancienne version!!!) en Float de la machine ou on est.

float IdCalcFloatFromIEEE754 (float *origine)
 transforme un Float IEEE 745-1985 en Float de la machine ou on est.

float IdCalcRand1 (long *idum)
 Calcul Nombre Aleatoire (C) Copr. 1986-92 Numerical Recipes Software ]2#.

short int IdCalcSwapInt16 (short int *a, int sw)
 swappe les octets d'un short int.

int IdCalcSwapInt32 (int *a, int sw)
 swappe les octets d'un int32.

double IdGetDistanceFromPlane (int x, int y, int z, int px, int py, int pz)
 Fonction de calcul de la distance d'un point (x, y, z) au plan centre de coefficients directeurs px, py, pz.


Define Documentation

#define AM   (1.0/IM)
 

Definition at line 505 of file utilcalc.c.

Referenced by IdCalcRand1().

#define EPS   1.2e-7
 

Definition at line 510 of file utilcalc.c.

#define IA   16807
 

Definition at line 503 of file utilcalc.c.

Referenced by IdCalcRand1().

#define IM   2147483647
 

Definition at line 504 of file utilcalc.c.

Referenced by IdCalcRand1().

#define IQ   127773
 

Definition at line 506 of file utilcalc.c.

Referenced by IdCalcRand1().

#define IR   2836
 

Definition at line 507 of file utilcalc.c.

Referenced by IdCalcRand1().

#define NDIV   (1+(IM-1)/NTAB)
 

Definition at line 509 of file utilcalc.c.

Referenced by IdCalcRand1().

#define NTAB   32
 

Definition at line 508 of file utilcalc.c.

Referenced by IdCalcRand1().

#define RNMX   (1.0-EPS)
 

Definition at line 511 of file utilcalc.c.

Referenced by IdCalcRand1().

#define SQR  )     ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)
 

Definition at line 253 of file utilcalc.c.

Referenced by IdCalcPythagore().

#define sqr  )     ((x)*(x) )
 

Definition at line 43 of file utilcalc.c.


Function Documentation

double IdCalcAngleFromCotes double  dx,
double  dy
 

Calcul d'un angle a partir des cotes de l'angle DROIT.

Parameters:
dx taille des cotes de l'angle droit
dy taille des cotes de l'angle droit (FIXME : duplicated)
Returns:
distance

Definition at line 103 of file utilcalc.c.

double IdCalcAngleFromPoints double  xB,
double  yB,
double  xA,
double  yA,
double  xC,
double  yC
 

Calcul d'un angle B A C a partir des points B,A,C.

Warning:
ne marche pas si l'un des points A ou C est a la verticale de A...
Parameters:
xB Coordonnees des points
yB Coordonnees des points (FIXME : duplicated)
xA Coordonnees des points (FIXME : duplicated)
yA Coordonnees des points (FIXME : duplicated)
xC Coordonnees des points (FIXME : duplicated)
yC Coordonnees des points (FIXME : duplicated)
Returns:
angle

Definition at line 138 of file utilcalc.c.

int IdCalcArrondInt double  x  ) 
 

Procedure d'arrondi double->int.

Parameters:
x valeur a arrondir
Returns:
arrondi

Definition at line 423 of file utilcalc.c.

References x.

double IdCalcDistance2Points double  x1,
double  y1,
double  x2,
double  y2
 

Calcule la distance entre deux points.

Parameters:
x1 coordonnee en X du premier point
Y1 coordonnee en Y du premier point
x2 coordonnee en X du second point
Y2 coordonnee en Y du second point
Returns:
distance

Definition at line 55 of file utilcalc.c.

Referenced by IdCalcZoomPoint(), and IdCntZoomContourDouble().

double IdCalcDistancePointDroite double  x,
double  y,
double  x1,
double  y1,
double  x2,
double  y2
 

Calcule la distance d'un point a une droite.

Parameters:
x Coordonnees du point
y Coordonnees du point (FIXME : duplicated)
x1 Coordonnees des deux points de la droite
y1 Coordonnees des deux points de la droite (FIXME : duplicated)
x2 Coordonnees des deux points de la droite (FIXME : duplicated)
y2 Coordonnees des deux points de la droite (FIXME : duplicated)
Returns:
distance

Definition at line 80 of file utilcalc.c.

References x.

float IdCalcFloatFromIEEE754 float *  origine  ) 
 

transforme un Float IEEE 745-1985 en Float de la machine ou on est.

Parameters:
origine pointeur sur la valeur a convertir
Returns:
valeur codee en float natif

Definition at line 475 of file utilcalc.c.

float IdCalcFloatFromSun float *  origine  ) 
 

transforme un Float SUN (ancienne version!!!) en Float de la machine ou on est.

Parameters:
origine pointeur sur la valeur a convertir.
Returns:
arrondi

Definition at line 442 of file utilcalc.c.

int IdCalcNbElemIntEnum int *  tabInterv,
int  nbInterv
 

Nombre d'elements designes par une Int Enum (voir IdStrIntEnum) Exemple : tabInterv : 22,25,35,35,43,45 nbInterv : 3 retour : 8.

Parameters:
tabInterv table d'intervalles (ex : 22,25,35,35,43,45)
nbInterv nb d'intervalles (3, dans l'exemple).
Returns:
Nombre d'elements designes (8 dans l'exemple)

Definition at line 408 of file utilcalc.c.

double IdCalcPythagore double  a,
double  b
 

computes sqrt(a + b) without destructive underflow or overflow

Parameters:
a valeur
b valeur (FIXME : duplicated)
Returns:
res

Definition at line 262 of file utilcalc.c.

References b, and SQR.

PVECTOR_COMPLEX IdCalcRacinesPoly2 double  a,
double  b,
double  c
 

racines d'un polynome de 2eme degre a coefs reels ax^2+bx+c

Parameters:
a coef
b coef (FIXME : duplicated)
c coef (FIXME : duplicated)
Returns:
racines

Definition at line 284 of file utilcalc.c.

References b, d, IdErrPrintf(), IdExit(), IdVectAlloc, COMPLEX::im, COMPLEX::re, and VECT_COMPLEX.

PVECTOR_COMPLEX IdCalcRacinesPoly3 double  a,
double  b,
double  c,
double  d
 

racines d'un polynome de 3eme degre a coefs reels ax^3+bx^2+cx+d = 0

Parameters:
a coef
b coef (FIXME : duplicated)
c coef (FIXME : duplicated)
d coef (FIXME : duplicated)
Returns:
racines

Definition at line 328 of file utilcalc.c.

References b, d, IdErrPrintf(), IdExit(), IdSigAlloc(), COMPLEX::im, COMPLEX::re, and VECT_COMPLEX.

float IdCalcRand1 long *  idum  ) 
 

Calcul Nombre Aleatoire (C) Copr. 1986-92 Numerical Recipes Software ]2#.

Parameters:
idum FIXME : undocumented
Returns:
FIXME : undocumented

Definition at line 520 of file utilcalc.c.

References AM, IA, IM, IQ, IR, NDIV, NTAB, and RNMX.

int IdCalcRotatePoint double  x,
double  y,
double  centreX,
double  centreY,
double  angle,
double *  nouvX,
double *  nouvY
 

Rotation d'un point autour d'un centre.

Parameters:
x Coordonnees des points
y Coordonnees des points (FIXME : duplicated)
centreX Coordonnees des points (FIXME : duplicated)
centreY Coordonnees des points (FIXME : duplicated)
angle Coordonnees des points (FIXME : duplicated)
nouvX Coordonnees des points (FIXME : duplicated)
nouvY Coordonnees des points (FIXME : duplicated)
Returns:
distance

Definition at line 189 of file utilcalc.c.

References x.

short int IdCalcSwapInt16 short int *  a,
int  sw
 

swappe les octets d'un short int.

Parameters:
a pointeur sur la valeur a convertir
sw code de swap : 1234 : pas de swap (les octets sont deja ds l'ordre) 3412, 4321, 2143 : on les remet ds l'ordre
Returns:
valeur codee en short int

Definition at line 576 of file utilcalc.c.

References b.

int IdCalcSwapInt32 int *  a,
int  sw
 

swappe les octets d'un int32.

Returns:
valeur codee en short int
Parameters:
a pointeur sur la valeur a convertir
sw code de swap : 1234 : pas de swap (les octets sont deja ds l'ordre) 3412, 4321, 2143 : on les remet ds l'ordre

Definition at line 597 of file utilcalc.c.

References b.

int IdCalcZoomPoint double  x,
double  y,
double  centreX,
double  centreY,
double  percent,
double *  nouvX,
double *  nouvY
 

Augmente d'1 ge donne la Distance d'un point par rapport a un autre.

Parameters:
x Coordonnees des points
y Coordonnees des points (FIXME : duplicated)
centreX Coordonnees des points (FIXME : duplicated)
centreY Coordonnees des points (FIXME : duplicated)
percent Pourcentage de modif distance
nouvX FIXME : undocumented
nouvY FIXME : undocumented
Returns:
distance

Definition at line 227 of file utilcalc.c.

References IdCalcDistance2Points(), and x.

double IdGetDistanceFromPlane int  x,
int  y,
int  z,
int  px,
int  py,
int  pz
 

Fonction de calcul de la distance d'un point (x, y, z) au plan centre de coefficients directeurs px, py, pz.

Parameters:
x coord x du point
y coord y du point
z coord z du point
px coefficient directeur x du plan
py coefficient directeur y du plan
pz coefficient directeur z du plan
Returns:
distance

Definition at line 646 of file utilcalc.c.

References sqr, and x.


Generated on Wed Oct 19 09:28:37 2005 for SIMRI3D by doxygen 1.3.7