1 #ifndef MOMENTS_INCLUDED
2 #define MOMENTS_INCLUDED
4 #if defined(__cplusplus)
21 typedef long double momFloat;
22 #define sqrt(x) sqrtl(x)
24 typedef 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,
86 void momClearMomr(
MOMR *mr);
87 void momClearFmomr(
FMOMR *l);
91 void momScaledAddFmomr(
FMOMR *mr, cosmoType ur,
FMOMR *ma, cosmoType ua);
92 void momRescaleFmomr(
FMOMR *mr, cosmoType unew, cosmoType uold);
93 void momMulAddMomc(
MOMC *,momFloat,
MOMC *);
94 void momMulAddMomr(
MOMR *,momFloat,
MOMR *);
95 void momMulAddFmomr(
FMOMR *mr, cosmoType ur, cosmoType m,
FMOMR *ma,
99 void momScaledSubFmomr(
FMOMR *mr, cosmoType ur,
FMOMR *ma, cosmoType ua);
100 void momMakeMomc(
MOMC *,momFloat,momFloat,momFloat,momFloat);
101 cosmoType momMakeFmomr(
FMOMR *mr, cosmoType m, cosmoType u, cosmoType x,
102 cosmoType y, cosmoType z);
103 momFloat momMakeMomr(
MOMR *,momFloat,momFloat,momFloat,momFloat);
104 void momOldMakeMomr(
MOMR *,momFloat,momFloat,momFloat,momFloat);
105 void momShiftMomc(
MOMC *,momFloat,momFloat,momFloat);
106 void momShiftMomr(
MOMR *,momFloat,momFloat,momFloat);
107 void momShiftFmomr(
FMOMR *m, cosmoType u, cosmoType x, cosmoType y,
109 double momShiftLocr(
LOCR *,momFloat,momFloat,momFloat);
111 void momEvalMomr(
MOMR *,momFloat,momFloat,momFloat,momFloat,
112 momFloat *,momFloat *,momFloat *,momFloat *);
113 void 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);
118 void momPrintMomc(
MOMC *);
119 void momPrintMomr(
MOMR *);
121 void momClearLocr(
LOCR *);
122 double momLocrAddMomr5(
LOCR *,
MOMR *,momFloat,momFloat,momFloat,momFloat,
double *,
double *,
double *);
123 double 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);
126 void momEvalLocr(
LOCR *,momFloat,momFloat,momFloat,
127 momFloat *,momFloat *,momFloat *,momFloat *);
128 double momLocrAddMomr(
LOCR *,
MOMR *,momFloat,momFloat,momFloat,momFloat);
129 #if defined(__cplusplus)
moment tensor components for reduced multipoles.
Definition: moments.h:30
moment tensor components for complete multipoles.
Definition: moments.h:40
moment tensor components for reduced local expansion. note that we have the 5th-order terms here now!...
Definition: moments.h:54