@@ -91,15 +91,28 @@ def make_PV_from_LR(LR_array: cnp.ndarray,
9191 i : cython .ulong
9292 L : cython .int
9393 R : cython .int
94+ weight : cython .float
9495 PV : cnp .ndarray
96+ LR_l : cnp .ndarray
97+ LR_r : cnp .ndarray
98+ PV_p : cnp .ndarray
99+ PV_v : cnp .ndarray
95100
96101 l_LR = LR_array .shape [0 ]
97102 l_PV = 2 * l_LR
98103 PV = np .zeros (shape = l_PV , dtype = [('p' , 'i4' ), ('v' , 'f4' )])
104+ LR_l = LR_array ['l' ]
105+ LR_r = LR_array ['r' ]
106+ PV_p = PV ['p' ]
107+ PV_v = PV ['v' ]
99108 for i in range (l_LR ):
100- (L , R ) = LR_array [i ]
101- PV [i * 2 ] = (L , mapping_func (L , R ))
102- PV [i * 2 + 1 ] = (R , - 1.0 * mapping_func (L , R ))
109+ L = LR_l [i ]
110+ R = LR_r [i ]
111+ weight = mapping_func (L , R )
112+ PV_p [i * 2 ] = L
113+ PV_v [i * 2 ] = weight
114+ PV_p [i * 2 + 1 ] = R
115+ PV_v [i * 2 + 1 ] = - 1.0 * weight
103116 PV .sort (order = 'p' )
104117 return PV
105118
@@ -123,15 +136,31 @@ def make_PV_from_LRC(LRC_array: cnp.ndarray,
123136 L : cython .int
124137 R : cython .int
125138 C : cython .ushort
139+ weight : cython .float
126140 PV : cnp .ndarray
141+ LRC_l : cnp .ndarray
142+ LRC_r : cnp .ndarray
143+ LRC_c : cnp .ndarray
144+ PV_p : cnp .ndarray
145+ PV_v : cnp .ndarray
127146
128147 l_LRC = LRC_array .shape [0 ]
129148 l_PV = 2 * l_LRC
130149 PV = np .zeros (shape = l_PV , dtype = [('p' , 'i4' ), ('v' , 'f4' )])
150+ LRC_l = LRC_array ['l' ]
151+ LRC_r = LRC_array ['r' ]
152+ LRC_c = LRC_array ['c' ]
153+ PV_p = PV ['p' ]
154+ PV_v = PV ['v' ]
131155 for i in range (l_LRC ):
132- (L , R , C ) = LRC_array [i ]
133- PV [i * 2 ] = (L , C * mapping_func (L , R ))
134- PV [i * 2 + 1 ] = (R , - 1.0 * C * mapping_func (L , R ))
156+ L = LRC_l [i ]
157+ R = LRC_r [i ]
158+ C = LRC_c [i ]
159+ weight = C * mapping_func (L , R )
160+ PV_p [i * 2 ] = L
161+ PV_v [i * 2 ] = weight
162+ PV_p [i * 2 + 1 ] = R
163+ PV_v [i * 2 + 1 ] = - 1.0 * weight
135164 PV .sort (order = 'p' )
136165 return PV
137166
@@ -156,21 +185,29 @@ def make_PV_from_PN(P_array: cnp.ndarray, N_array: cnp.ndarray,
156185 L : cython .int
157186 R : cython .int
158187 PV : cnp .ndarray
188+ PV_p : cnp .ndarray
189+ PV_v : cnp .ndarray
159190
160191 l_PN = P_array .shape [0 ]
161192 assert l_PN == N_array .shape [0 ]
162193 l_PV = 4 * l_PN
163194 PV = np .zeros (shape = l_PV , dtype = [('p' , 'i4' ), ('v' , 'f4' )])
195+ PV_p = PV ['p' ]
196+ PV_v = PV ['v' ]
164197 for i in range (l_PN ):
165198 L = P_array [i ]
166199 R = L + extsize
167- PV [i * 2 ] = (L , 1 )
168- PV [i * 2 + 1 ] = (R , - 1 )
200+ PV_p [i * 2 ] = L
201+ PV_v [i * 2 ] = 1
202+ PV_p [i * 2 + 1 ] = R
203+ PV_v [i * 2 + 1 ] = - 1
169204 for i in range (l_PN ):
170205 R = N_array [i ]
171206 L = R - extsize
172- PV [(l_PN + i )* 2 ] = (L , 1 )
173- PV [(l_PN + i )* 2 + 1 ] = (R , - 1 )
207+ PV_p [(l_PN + i )* 2 ] = L
208+ PV_v [(l_PN + i )* 2 ] = 1
209+ PV_p [(l_PN + i )* 2 + 1 ] = R
210+ PV_v [(l_PN + i )* 2 + 1 ] = - 1
174211 PV .sort (order = 'p' )
175212 return PV
176213
0 commit comments