1#ifndef MOMENTS_INCLUDED
2#define MOMENTS_INCLUDED
4#if defined(__cplusplus)
21typedef long double momFloat;
22#define sqrt(x) sqrtl(x)
24typedef double momFloat;
32 momFloat xx,yy,xy,xz,yz;
33 momFloat xxx,xyy,xxy,yyy,xxz,yyz,xyz;
34 momFloat xxxx,xyyy,xxxy,yyyy,xxxz,yyyz,xxyy,xxyz,xyyz;
42 momFloat xx,yy,xy,xz,yz;
43 momFloat xxx,xyy,xxy,yyy,xxz,yyz,xyz;
44 momFloat xxxx,xyyy,xxxy,yyyy,xxxz,yyyz,xxyy,xxyz,xyyz;
47 momFloat xxzz,xyzz,xzzz,yyzz,yzzz,zzzz;
57 momFloat xx,xy,yy,xz,yz;
58 momFloat xxx,xxy,xyy,yyy,xxz,xyz,yyz;
59 momFloat xxxx,xxxy,xxyy,xyyy,yyyy,xxxz,xxyz,xyyz,yyyz;
60 momFloat xxxxx,xxxxy,xxxyy,xxyyy,xyyyy,yyyyy,xxxxz,xxxyz,xxyyz,xyyyz,yyyyz;
71 cosmoType xx, yy, xy, xz, yz;
72 cosmoType xxx, xyy, xxy, yyy, xxz, yyz, xyz;
73 cosmoType xxxx, xyyy, xxxy, yyyy, xxxz, yyyz, xxyy, xxyz, xyyz;
79 cosmoType xx, yy, xy, xz, yz;
80 cosmoType xxx, xyy, xxy, yyy, xxz, yyz, xyz;
81 cosmoType xxxx, xyyy, xxxy, yyyy, xxxz, yyyz, xxyy, xxyz, xyyz;
82 cosmoType xxxxx, xyyyy, xxxxy, yyyyy, xxxxz, yyyyz, xxxyy, xxyyy, xxxyz,
86void momClearMomr(MOMR *mr);
87void momClearFmomr(FMOMR *l);
88void momAddMomc(MOMC *,MOMC *);
89void momAddMomr(MOMR *,MOMR *);
90void momAddFmomr(FMOMR *mr,FMOMR *ma);
91void momScaledAddFmomr(FMOMR *mr, cosmoType ur, FMOMR *ma, cosmoType ua);
92void momRescaleFmomr(FMOMR *mr, cosmoType unew, cosmoType uold);
93void momMulAddMomc(MOMC *,momFloat,MOMC *);
94void momMulAddMomr(MOMR *,momFloat,MOMR *);
95void momMulAddFmomr(FMOMR *mr, cosmoType ur, cosmoType m, FMOMR *ma,
97void momSubMomc(MOMC *,MOMC *);
98void momSubMomr(MOMR *,MOMR *);
99void momScaledSubFmomr(FMOMR *mr, cosmoType ur, FMOMR *ma, cosmoType ua);
100void momMakeMomc(MOMC *,momFloat,momFloat,momFloat,momFloat);
101cosmoType momMakeFmomr(FMOMR *mr, cosmoType m, cosmoType u, cosmoType x,
102 cosmoType y, cosmoType z);
103momFloat momMakeMomr(MOMR *,momFloat,momFloat,momFloat,momFloat);
104void momOldMakeMomr(MOMR *,momFloat,momFloat,momFloat,momFloat);
105void momShiftMomc(MOMC *,momFloat,momFloat,momFloat);
106void momShiftMomr(MOMR *,momFloat,momFloat,momFloat);
107void momShiftFmomr(FMOMR *m, cosmoType u, cosmoType x, cosmoType y,
109double momShiftLocr(LOCR *,momFloat,momFloat,momFloat);
110void momReduceMomc(MOMC *,MOMR *);
111void momEvalMomr(MOMR *,momFloat,momFloat,momFloat,momFloat,
112 momFloat *,momFloat *,momFloat *,momFloat *);
113void momEvalFmomrcm(FMOMR *m, cosmoType u, cosmoType dir, cosmoType x,
114 cosmoType y, cosmoType z, cosmoType *fPot, cosmoType *ax,
115 cosmoType *ay, cosmoType *az, cosmoType *magai);
116void momMomr2Momc(MOMR *,MOMC *);
117void momFmomr2Momc(FMOMR *ma,MOMC *mc);
118void momPrintMomc(MOMC *);
119void momPrintMomr(MOMR *);
121void momClearLocr(LOCR *);
122double momLocrAddMomr5(LOCR *,MOMR *,momFloat,momFloat,momFloat,momFloat,
double *,
double *,
double *);
123double momFlocrAddFmomr5cm(FLOCR *l, cosmoType v, FMOMR *m, cosmoType u,
124 cosmoType dir, cosmoType x, cosmoType y, cosmoType z,
125 cosmoType *tax, cosmoType *tay, cosmoType *taz);
126void momEvalLocr(LOCR *,momFloat,momFloat,momFloat,
127 momFloat *,momFloat *,momFloat *,momFloat *);
128double momLocrAddMomr(LOCR *,MOMR *,momFloat,momFloat,momFloat,momFloat);
129#if defined(__cplusplus)
moment tensor components for reduced local expansion. note that we have the 5th-order terms here now!
Definition moments.h:54
moment tensor components for complete multipoles.
Definition moments.h:40
moment tensor components for reduced multipoles.
Definition moments.h:30