MRArbGrad 4.2.0__tar.gz → 4.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0/MRArbGrad.egg-info}/PKG-INFO +1 -1
- {mrarbgrad-4.2.0/MRArbGrad.egg-info → mrarbgrad-4.3.0}/PKG-INFO +1 -1
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/Utility.py +10 -2
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/__init__.py +1 -1
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/VDSpiral.h +13 -9
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/pyproject.toml +1 -1
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/LICENSE +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/MANIFEST.in +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/MRArbGrad.egg-info/SOURCES.txt +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/MRArbGrad.egg-info/dependency_links.txt +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/MRArbGrad.egg-info/requires.txt +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/MRArbGrad.egg-info/top_level.txt +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/README.md +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/example/example_BuiltInTraj.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/example/example_ExternalFunction2D.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/example/example_ExternalSamples2D.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/example/example_ExternalSamples3D.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/Function.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/mag/Mag.cpp +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/mag/Mag.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/main.cpp +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Cones.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/MrTraj.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/MrTraj_2D.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Rosette.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Seiffert.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Shell3d.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Spiral.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/TrajFunc.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/traj/Yarnball.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/Intp.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/LinIntp.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/SplineIntp.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/global.cpp +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/global.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/v3.cpp +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/ext/utility/v3.h +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/trajfunc/__init__.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/mrarbgrad_src/trajfunc/main.py +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/setup.cfg +0 -0
- {mrarbgrad-4.2.0 → mrarbgrad-4.3.0}/setup.py +0 -0
|
@@ -5,8 +5,8 @@ from numpy.typing import *
|
|
|
5
5
|
goldrat = (1+sqrt(5))/2
|
|
6
6
|
goldang = (2*pi)/(1+goldrat)
|
|
7
7
|
|
|
8
|
-
getGoldrat
|
|
9
|
-
getGoldang
|
|
8
|
+
def getGoldrat()->float: return goldrat
|
|
9
|
+
def getGoldang()->float: return goldang
|
|
10
10
|
|
|
11
11
|
def gradClip(lstArrGrad:list[NDArray]|NDArray, dt:float, sLim:float, gLim:float) -> list[NDArray]|NDArray:
|
|
12
12
|
"""
|
|
@@ -55,6 +55,14 @@ def rand3d(i:int|NDArray, nAx:int=3, kx=sqrt(2), ky=sqrt(3), kz=sqrt(7)) -> NDAr
|
|
|
55
55
|
(i**2 * 1/(1+ky))%1,
|
|
56
56
|
(i**3 * 1/(1+kz))%1
|
|
57
57
|
][:nAx]).T
|
|
58
|
+
|
|
59
|
+
def genPermTab(n:int) -> list[int]:
|
|
60
|
+
inc = around(n*(goldrat-1)).astype(int64)
|
|
61
|
+
while gcd(inc,n)!=1: inc-=1
|
|
62
|
+
lstIdx = []
|
|
63
|
+
for i in range(n):
|
|
64
|
+
lstIdx.append(i*inc%n)
|
|
65
|
+
return lstIdx
|
|
58
66
|
|
|
59
67
|
def cvtGrad2Traj(arrG:NDArray, dtGrad:int|float, dtADC:int|float, nShift:int|float=1.0) -> tuple[NDArray, NDArray]:
|
|
60
68
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from .Function import calGrad4ExFunc, calGrad4ExSamp
|
|
2
2
|
from .Function import getG_Cones, getG_Rosette, getG_Rosette_Trad, getG_Seiffert, getG_Shell3d, getG_Spiral, getG_VDSpiral, getG_VDSpiral_RT, getG_Yarnball, getG_Yarnball_RT
|
|
3
3
|
from .Function import setSolverMtg, setTrajRev, setGoldAng, setShuf, setMaxG0, setMaxG1, setMagGradSamp, setMagTrajSamp, setMagOverSamp, setMagSFS, setMagGradRep, setMagTrajRep, setDbgPrint, saveF64, loadF64, saveF32, loadF32
|
|
4
|
-
from .Utility import _calDiaphony, rotate, _calJacElip, _calCompElipInt, _calSphFibPt, cvtGrad2Traj, getGoldang, getGoldrat, rand3d, gradClip
|
|
4
|
+
from .Utility import _calDiaphony, rotate, _calJacElip, _calCompElipInt, _calSphFibPt, cvtGrad2Traj, getGoldang, getGoldrat, rand3d, gradClip, genPermTab
|
|
5
5
|
|
|
6
6
|
from . import trajfunc
|
|
@@ -14,7 +14,10 @@ public:
|
|
|
14
14
|
m_phi0 = phi0;
|
|
15
15
|
|
|
16
16
|
m_p0 = 0e0;
|
|
17
|
-
|
|
17
|
+
if (m_kRhoPhi0!=m_kRhoPhi1)
|
|
18
|
+
{ m_p1 = (std::log(kRhoPhi1)-std::log(kRhoPhi0)) / (2e0*(kRhoPhi1-kRhoPhi0)); }
|
|
19
|
+
else
|
|
20
|
+
{ m_p1 = 0.5e0/kRhoPhi0; }
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
virtual bool getK(v3* k, f64 p)
|
|
@@ -22,7 +25,11 @@ public:
|
|
|
22
25
|
if (k==NULL) return false;
|
|
23
26
|
|
|
24
27
|
f64& phi = p;
|
|
25
|
-
f64 rho
|
|
28
|
+
f64 rho;
|
|
29
|
+
if (m_kRhoPhi0!=m_kRhoPhi1)
|
|
30
|
+
{ rho = m_kRhoPhi0*(std::exp(2e0*(m_kRhoPhi1 - m_kRhoPhi0)*phi) - 1e0) / (2e0*(m_kRhoPhi1 - m_kRhoPhi0)); }
|
|
31
|
+
else
|
|
32
|
+
{ rho = m_kRhoPhi0*phi; }
|
|
26
33
|
k->x = rho * std::cos(phi + m_phi0);
|
|
27
34
|
k->y = rho * std::sin(phi + m_phi0);
|
|
28
35
|
k->z = 0e0;
|
|
@@ -39,19 +46,16 @@ protected:
|
|
|
39
46
|
class VDSpiral: public MrTraj_2D
|
|
40
47
|
{
|
|
41
48
|
public:
|
|
42
|
-
VDSpiral(const GeoPara& objGeoPara, const GradPara& objGradPara, i64 nStack, f64 kRhoPhi0, f64
|
|
49
|
+
VDSpiral(const GeoPara& objGeoPara, const GradPara& objGradPara, i64 nStack, f64 kRhoPhi0, f64 kRhoPhi1):
|
|
43
50
|
MrTraj_2D(objGeoPara,objGradPara,0,0,0,0,v3(),vv3())
|
|
44
51
|
{
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
m_ptfBaseTraj = new VDSpiral_TrajFunc(kRhoPhi0, dRhoPhi1);
|
|
52
|
+
m_ptfBaseTraj = new VDSpiral_TrajFunc(kRhoPhi0, kRhoPhi1);
|
|
48
53
|
ASSERT(m_ptfBaseTraj!=NULL);
|
|
49
54
|
m_nStack = nStack;
|
|
50
55
|
|
|
51
|
-
i64 nRot = calNRot(std::max(kRhoPhi0,
|
|
56
|
+
i64 nRot = calNRot(std::max(kRhoPhi0, kRhoPhi1), m_objGeoPara.nPix);
|
|
52
57
|
m_rotang = calRotAng(nRot);
|
|
53
58
|
m_nAcq = nRot*m_nStack;
|
|
54
|
-
PRINT(m_nAcq) // TEST
|
|
55
59
|
|
|
56
60
|
calGrad(&m_v3BaseM0PE, &m_vv3BaseGRO, NULL, *m_ptfBaseTraj, m_objGradPara);
|
|
57
61
|
m_nSampMax = m_vv3BaseGRO.size();
|
|
@@ -78,7 +82,7 @@ public:
|
|
|
78
82
|
{
|
|
79
83
|
m_kRhoPhi0 = kRhoPhi0;
|
|
80
84
|
m_kRhoPhi1 = kRhoPhi1;
|
|
81
|
-
m_nAcq = calNRot(kRhoPhi1, objGeoPara.nPix);
|
|
85
|
+
m_nAcq = calNRot(std::max(kRhoPhi0, kRhoPhi1), objGeoPara.nPix);
|
|
82
86
|
m_dRotAng = 2e0*M_PI/m_nAcq;
|
|
83
87
|
genPermTab(&m_vi64PermTab, m_nAcq);
|
|
84
88
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|