hp2FEM
0.1
|
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