hp2FEM  0.1
include/acdp/matematc.h
00001 /* last modification : 11/24/93 : 15:30 */
00002 /*
00003 ** matematc.h - Roberto, Adriana e Salgado - julho / 93
00004 */
00005 
00006 #ifndef MATEMATC_H
00007 #define MATEMATC_H
00008 
00009 //#include "acdp.h"
00010 //#include "acdptype.h"
00011 #include "acdp.h"
00012 #include "acdptype.h"
00013 
00014 /*
00015 ** prototypes
00016 */
00017 double   AreaTri(double  *x, double  *y);
00018 double   AreaTri(acPoint2  *v);
00019 acPoint2 CenterTri(double  *x, double  *y);
00020 acPoint2 CenterTri(acPoint2  *v);
00021 BOOL     IsInPolygon(acPoint2 &p, int n, acPoint2  *v);
00022 void     minmaxd(double  *v, long tam, double *min, double *max);
00023 void     minmaxf(float  *v, long tam, float *min, float *max);
00024 void     pmatbsa(double  *mc, double  *ma, double  *mbs,
00025                  long int nlina, long int ncola);
00026 acLimit2 GetLimit(acPoint2  *p, long tam);
00027 acLimit3 GetLimit3(acPoint3  *p, long tam);
00028 double   norinfv(double  *u, long dim);
00029 double   normaev(double  *u, long dim);
00030 double   scalv(double  *v1, double  *v2, unsigned long n);
00031 double   mind(double  *v, unsigned long tam);
00032 double   maxd(double  *v, unsigned long tam);
00033 void     addvet(double  *c, double  *a, double  *b, unsigned long tam);
00034 void     subtvet(double  *c, double  *a, double  *b, unsigned long n);
00035 void     chsvet(double  *v, long n);
00036 void     dcopyv(double  *d, double  *s, long tam);
00037 void     prodmat(double  *mc, double  *ma, double  *mb,
00038                  long int nlina, long int ncola, long int ncolb);
00039 void     tranmat(double  *mat, double  *ma, long int nlin,
00040                  long int ncol);
00041 void     dzerov(double  *v, long tam);
00042 int      mgsstsk(double  *ma, long  *maxa, long neq, long *step);
00043 void     solgssk(double  *vetx, double  *ma, long  *maxa,
00044                  double  *vetb, long neq);
00045 int      gaussk(double  *vetx, double  *ma, long  *maxa,
00046                 double  *vetb, long int neq, double delta, long int *step);
00047 void     prodmsv(double  *vetc, double  *ms, double  *vet,
00048                 long int ncolms);
00049 void     prodmatv(double  *u, double  *m, double  *v, long nfil,
00050                   long ncol);
00051 int      SolSymSkyLAs(double * ma, long * maxa, long neq,
00052                       int FlagSol,     long &eldiag,    double * F,
00053                       double * U,  double eps);
00054                   
00055 
00056 /*******************************************************************/
00057 
00058 void   addmat(double  *mc, double  *ma, double  *mb,
00059               long int nlin, long int ncol);
00060 void   addmats(double  *mcs, double  *mas, double  *mbs,
00061                long int ncolms);
00062 int    compdbl(double *r, double *s);
00063 int    compflt(float *r, float *s);
00064 int    compint(int *r, int *s);
00065 void   copmuv(double  *v, double  *u, long n);
00066 void   cosxl(double xyz[], int m, double *cx, double *cy,
00067              double *cz, double *xl);
00068 void   cosxl2(double xyz[], int m, double *cx, double *cy, double *xl);
00069 void   dbvetor(char *tit, char *tipo, void  *v, long nelem);
00070 void   diag(double  *mat, double val, long nlin);
00071 void   dlistav(char *titulo, double  *v, long n, FILE *fp);
00072 void   icopyv(int  *d, int  *s, long n);
00073 void   invetsq(long  *v, long inic, long tam);
00074 long   ipos(long i, long j, long nlin);
00075 void   lcopyv(long  *d, long  *s, long n);
00076 void   levtflt(float  *v, long tam, FILE *fp);
00077 void   levtint(int  *v, long tam, FILE *fp);
00078 void   lvetarq(char *tit, int tipo, void  *v, long nelem, FILE *lw);
00079 float  maxf(float  *v, long tam);
00080 float  minf(float  *v, long tam);
00081 double noreucm(double  *ma, long int nlin, long int ncol);
00082 double noreums(double  *mas, long int ncolms);
00083 double norinms(double  *ms, long int ncolms);
00084 double norminm(double  *ma, long int nlin, long int ncol);
00085 void   printmat(double  *matriz, char *titulo, int nlin, int ncol, FILE *fi);
00086 void   prmatba(double  *mc, double  *ma, double  *mb,
00087                long int nlina, long int ncola);
00088 void   prodmskv(double  *vetc, double  *sk, long  *maxa,
00089                 double  *vetb, long ncolmsk);
00090 void   promabs(double  *mc, double  *ma, double  *mbs,
00091                long int nlina, long int ncola);
00092 void   promatb(double  *mc, double  *ma, double  *mb,
00093                long int nlina, long int ncola, long int ncolb);
00094 void   promats(double  *mc, double  *mas, double  *mbs,
00095                long int ncolms);
00096 double pscalm(double  *ma, double  *mb, long int nlin, long int ncol);
00097 double pscalms(double  *mas, double  *mbs, long int ncolms);
00098 void   ptensv(void  *mat, double  *u, double  *v, long n);
00099 void   realpm(double  *kma, double k, double  *ma,
00100               long int nlin, long int ncol);
00101 void   realpms(double  *kms, double k, double  *ms, long int ncolms);
00102 void   rpvetd(double  *sv, double  *v, double s, long n);
00103 void   rpvetf(float  *alfav, double alfa, float  *v, long n);
00104 void   swapi(int *i, int *j);
00105 
00106 void   vetaddf(float  *vsoma, float  *v1, float  *v2, long n);
00107 acPoint3 NormalTri(acPoint3  *v);
00108 acPoint3 CenterTri(acPoint3  *v);
00109 
00110 /*
00111 ** Resolucao de sistemas de equacoes lineares
00112 */
00113 int    gausspp(double  *vetx, double  *ma, double  *vetb,
00114                long int neq, double delta, long int *step);
00115 int    mgausst(double  *ma, long int neq, long int *step);
00116 int    mitgsl(double  *vetx, double  *ma, double  *vetb,
00117               long int neq, long int itmax, double eps, double beta, int codconvg);
00118 int    mitgslas(double  *vetx, double  *mas, double  *vetb,
00119                 long int neq, long int itmax, double eps, double beta, int codconvg);
00120 int    mitgslsk(double  *vetx, double  *sk, int  *maxa,
00121                 double  *vetb, long int neq, long int itmax, double eps,
00122                 double beta, int codconvg);
00123 int    grcjprsk(double  *vetx, double  *ma, long int  *maxa,
00124                 double  *veth, long int neq, long int itmax, double eps,
00125                 double omega, int codpr, int codcvg);
00126 int    gcpdsk(double  *vetx, double  *ma, long int  *maxa,
00127               double  *veth, long int neq, long int itmax, double eps, int codcvg);
00128 int    gcpds(double  *vetx, double  *ma, double  *veth, long int neq,
00129              long int itmax, double eps, int codcvg);
00130 int    gradcjn(double  *vetx, double  *ma, double  *veth,
00131                long int neq, long int itmax, double eps, int codcvg);
00132 int    grcjnsk(double  *vetx, double  *ma, long int  *maxa,
00133                double  *veth, long int neq, long int itmax, double eps,
00134                int codcvg);
00135 int    gradcjst(double  *vetx, double  *ma, double  *veth,
00136                 long int neq, long int itmax, double eps, int codcvg);
00137 int    grcjprc(double  *vetx, double  *ma, double  *veth,
00138                long int neq, long int itmax, double eps, double  omega,
00139                int codpr, int codcvg);
00140 int    grcjstsk(double  *vetx, double  *ma, long int  *maxa,
00141                 double  *veth, long int neq, long int itmax,
00142                 double eps, int codcvg);
00143 int    gaussim(double  *vetx, double  *mas, double  *vetb,
00144                double delta, long int neq, long int *step);
00145 int    mgausimt(double  *mas, long int neq, long int *step);
00146 void   solgasim(double  *vetx, double  *mas, double  *vetb,
00147                 long int neq);
00148 void   solgauss(double  *vetx, double  *ma, double  *vetb,
00149                 long int neq);
00150 
00151 
00152 #endif /* MATEMATC_H */
00153 
 All Classes Files Functions Variables Typedefs Friends Defines