Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
NP_TMcode
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Analyze
Contributor analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Giacomo Mulas
NP_TMcode
Commits
73f64cc5
Commit
73f64cc5
authored
1 year ago
by
Giovanni La Mura
Browse files
Options
Downloads
Patches
Plain Diff
Add cluster specific funtions GHIT, CGEV and R3JRR
parent
dea86173
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/include/clu_subs.h
+121
-5
121 additions, 5 deletions
src/include/clu_subs.h
with
121 additions
and
5 deletions
src/include/clu_subs.h
+
121
−
5
View file @
73f64cc5
...
@@ -61,7 +61,7 @@ double cgev(int ipamo, int mu, int l, int m) {
...
@@ -61,7 +61,7 @@ double cgev(int ipamo, int mu, int l, int m) {
}
}
}
else
{
// label 30
}
else
{
// label 30
xd
=
2
.
0
*
l
*
(
l
*
2
-
1
);
xd
=
2
.
0
*
l
*
(
l
*
2
-
1
);
if
(
mu
<
0
)
{
// label 35. CHECK: is clu.f code line 24
66
a switch?
if
(
mu
<
0
)
{
// label 35. CHECK: is clu.f code line 24
58
a switch?
xn
=
1
.
0
*
(
l
-
1
+
m
)
*
(
l
+
m
);
xn
=
1
.
0
*
(
l
-
1
+
m
)
*
(
l
+
m
);
}
else
if
(
mu
==
0
)
{
// label 40
}
else
if
(
mu
==
0
)
{
// label 40
xn
=
2
.
0
*
(
l
-
m
)
*
(
l
+
m
);
xn
=
2
.
0
*
(
l
-
m
)
*
(
l
+
m
);
...
@@ -82,7 +82,123 @@ double cgev(int ipamo, int mu, int l, int m) {
...
@@ -82,7 +82,123 @@ double cgev(int ipamo, int mu, int l, int m) {
* \param c6: `C6 *`
* \param c6: `C6 *`
*/
*/
void
r3jjr
(
int
j2
,
int
j3
,
int
m2
,
int
m3
,
C6
*
c6
)
{
void
r3jjr
(
int
j2
,
int
j3
,
int
m2
,
int
m3
,
C6
*
c6
)
{
int
jmx
=
j3
+
j2
;
int
jdf
=
j3
-
j2
;
int
m1
=
m2
-
m3
;
int
abs_jdf
=
(
jdf
>=
0
)
?
jdf
:
-
jdf
;
int
abs_m1
=
(
m1
>=
0
)
?
m1
:
-
m1
;
int
jmn
=
(
abs_jdf
>
abs_m1
)
?
abs_jdf
:
abs_m1
;
int
njmo
=
jmx
-
jmn
;
int
jf
=
jmx
+
jmx
+
1
;
int
isn
=
1
;
if
((
jdf
+
m1
)
%
2
!=
0
)
isn
=
-
1
;
if
(
njmo
<=
0
)
{
double
sj
=
1
.
0
*
jf
;
double
cnr
=
(
1
.
0
/
sqrt
(
sj
))
*
isn
;
c6
->
rac3j
[
0
]
=
cnr
;
return
;
}
else
{
// label 15
double
sjt
=
1
.
0
;
double
sjr
=
1
.
0
*
jf
;
int
jsmpos
=
(
jmx
+
1
)
*
(
jmx
+
1
);
int
jdfs
=
jdf
*
jdf
;
int
m1s
=
m1
*
m1
;
int
mdf
=
m3
-
m2
;
int
idjc
=
m1
*
(
j3
*
(
j3
+
1
)
-
j2
*
(
j2
+
1
));
int
j1
=
jmx
;
int
j1s
=
j1
*
j1
;
int
j1po
=
j1
+
1
;
double
ccj
=
1
.
0
*
(
j1s
-
jdfs
)
*
(
j1s
-
m1s
);
double
cj
=
sqrt
(
ccj
*
(
jsmpos
-
j1s
));
double
dj
=
1
.
0
*
jf
*
(
j1
*
j1po
*
mdf
+
idjc
);
double
cjp
=
0
.
0
;
// WARNING: not sure it should be really defined here.
if
(
njmo
<=
1
)
{
c6
->
rac3j
[
0
]
=
-
dj
/
(
cj
*
j1po
);
double
sj
=
sjr
+
(
c6
->
rac3j
[
0
]
*
c6
->
rac3j
[
0
])
*
(
jf
-
2
);
double
cnr
=
(
1
.
0
/
sqrt
(
sj
))
*
isn
;
c6
->
rac3j
[
1
]
=
cnr
;
c6
->
rac3j
[
0
]
*=
cnr
;
return
;
}
else
{
// label 20
int
nj
=
njmo
+
1
;
int
nmat
=
(
nj
+
1
)
/
2
;
c6
->
rac3j
[
nj
-
1
]
=
1
.
0
;
c6
->
rac3j
[
njmo
-
1
]
=
-
dj
/
(
cj
*
j1po
);
if
(
nmat
!=
njmo
)
{
int
nbr
=
njmo
-
nmat
;
for
(
int
ibr45
=
1
;
ibr45
<=
nbr
;
ibr45
++
)
{
int
irr
=
nj
-
ibr45
;
jf
-=
2
;
j1
--
;
j1s
=
j1
*
j1
;
j1po
=
j1
+
1
;
cjp
=
cj
;
ccj
=
1
.
0
*
(
j1s
-
jdfs
)
*
(
j1s
-
m1s
);
cj
=
sqrt
(
ccj
*
(
jsmpos
-
j1s
));
sjt
=
c6
->
rac3j
[
irr
-
1
]
*
c6
->
rac3j
[
irr
-
1
];
dj
=
1
.
0
*
jf
*
(
j1
*
j1po
*
mdf
+
idjc
);
c6
->
rac3j
[
irr
-
2
]
=
-
c6
->
rac3j
[
irr
-
1
]
*
dj
+
c6
->
rac3j
[
irr
]
*
cjp
*
j1
/
(
cj
*
j1po
);
sjr
+=
(
sjt
*
jf
);
}
// ibr45 loop
}
// label 50
double
osjt
=
sjt
;
sjt
=
c6
->
rac3j
[
nmat
-
1
]
*
c6
->
rac3j
[
nmat
-
1
];
if
(
sjt
>=
osjt
)
{
sjr
+=
(
sjt
*
(
jf
-
2
));
}
else
{
// label 55
nmat
++
;
}
// label 60
double
racmat
=
c6
->
rac3j
[
nmat
-
1
];
c6
->
rac3j
[
0
]
=
1
.
0
;
jf
=
jmn
+
jmn
+
1
;
double
sjl
=
1
.
0
*
jf
;
j1
=
jmn
;
if
(
j1
!=
0
)
{
j1po
=
j1
+
1
;
int
j1pos
=
j1po
*
j1po
;
double
ccjp
=
1
.
0
*
(
j1pos
-
jdfs
)
*
(
j1pos
-
m1s
);
cjp
=
sqrt
(
ccjp
*
(
jsmpos
-
j1pos
));
dj
=
1
.
0
*
jf
*
(
j1
*
j1po
*
mdf
+
idjc
);
c6
->
rac3j
[
1
]
=
-
dj
/
(
cjp
*
j1
);
}
else
{
// label 62
cjp
=
sqrt
(
1
.
0
*
(
jsmpos
-
1
));
dj
=
1
.
0
*
mdf
;
c6
->
rac3j
[
1
]
=
-
dj
/
cjp
;
}
// label 63
int
nmatmo
=
nmat
-
1
;
if
(
nmatmo
>=
2
)
{
for
(
int
irl70
=
2
;
irl70
<=
nmatmo
;
irl70
++
)
{
jf
+=
2
;
j1
++
;
j1po
=
j1
+
1
;
int
j1pos
=
j1po
*
j1po
;
cj
=
cjp
;
double
ccjp
=
1
.
0
*
(
j1pos
-
jdfs
)
*
(
j1pos
-
m1s
);
cjp
=
sqrt
(
ccjp
*
(
jsmpos
-
j1pos
));
sjt
=
c6
->
rac3j
[
irl70
-
1
]
*
c6
->
rac3j
[
irl70
-
1
];
dj
=
1
.
0
*
jf
*
(
j1
*
j1po
*
mdf
+
idjc
);
c6
->
rac3j
[
irl70
]
=
-
(
c6
->
rac3j
[
irl70
-
1
]
*
dj
+
c6
->
rac3j
[
irl70
-
2
]
*
cj
*
j1po
)
/
(
cjp
*
j1
);
sjl
+=
(
sjt
*
jf
);
}
}
// label 75
double
ratrac
=
racmat
/
c6
->
rac3j
[
nmat
-
1
];
double
rats
=
ratrac
*
ratrac
;
double
sj
=
sjr
+
sjl
*
rats
;
c6
->
rac3j
[
nmat
-
1
]
=
racmat
;
double
cnr
=
(
1
.
0
/
sqrt
(
sj
))
*
isn
;
for
(
int
irr80
=
nmat
;
irr80
<=
nj
;
irr80
++
)
c6
->
rac3j
[
irr80
-
1
]
*=
cnr
;
double
cnl
=
cnr
*
ratrac
;
for
(
int
irl85
=
1
;
irl85
<=
nmatmo
;
irl85
++
)
c6
->
rac3j
[
irl85
-
1
]
*=
cnl
;
}
}
}
}
...
@@ -167,7 +283,7 @@ std::complex<double> ghit(
...
@@ -167,7 +283,7 @@ std::complex<double> ghit(
lt14
+=
2
;
lt14
+=
2
;
}
}
}
else
{
// label 16
}
else
{
// label 16
// Would call R3JJR(L1MP
,
L
2, -
MUPM1, MUPM2)
r3jjr
(
l1mp
,
l
2
,
-
mupm1
,
mupm2
,
c6
);
int
il
=
ilin
;
int
il
=
ilin
;
int
lt20
=
lminpo
;
int
lt20
=
lminpo
;
while
(
lt20
<=
lmaxpo
)
{
while
(
lt20
<=
lmaxpo
)
{
...
@@ -221,7 +337,7 @@ std::complex<double> ghit(
...
@@ -221,7 +337,7 @@ std::complex<double> ghit(
lt34
+=
2
;
lt34
+=
2
;
}
}
}
else
{
// label 36
}
else
{
// label 36
// Would call R3JJR
r3jjr
(
l1mp
,
l2
,
-
mupm1
,
mupm2
,
c6
);
int
il
=
ilin
;
int
il
=
ilin
;
int
lt40
=
lminpo
;
int
lt40
=
lminpo
;
while
(
lt40
<=
lmaxpo
)
{
while
(
lt40
<=
lmaxpo
)
{
...
@@ -280,7 +396,7 @@ std::complex<double> ghit(
...
@@ -280,7 +396,7 @@ std::complex<double> ghit(
lt54
+=
2
;
lt54
+=
2
;
}
}
}
else
{
// label 56
}
else
{
// label 56
// Would call R3JJR(L1MP
,
L
2, -
MUPM1, MUPM2)
r3jjr
(
l1mp
,
l
2
,
-
mupm1
,
mupm2
,
c6
);
int
il
=
ilin
;
int
il
=
ilin
;
int
lt60
=
lminpo
;
int
lt60
=
lminpo
;
while
(
lt60
<=
lmaxpo
)
{
while
(
lt60
<=
lmaxpo
)
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment