@@ -148,7 +148,7 @@ class CL(CBase): # link or edge, a product of comparison between two nodes or l
148
148
def __init__ (l , ** kwargs ):
149
149
super ().__init__ ()
150
150
l .nodet = kwargs .get ('nodet' ,[]) # e_ in kernels, else replaces _node,node: not used in kernels
151
- l .L = 0 # distance between nodes
151
+ l .L = kwargs . get ( 'L' , 1 ) # distance between nodes (L shouldn't be 0?)
152
152
l .Et = kwargs .get ('Et' , np .zeros (4 ))
153
153
l .fd = kwargs .get ('fd' ,0 )
154
154
l .yx = kwargs .get ('yx' , np .zeros (2 )) # [(y+Y)/2,(x,X)/2], from nodet
@@ -158,23 +158,40 @@ def __init__(l, **kwargs):
158
158
# add med, rimt, extH in der+
159
159
def __bool__ (l ): return bool (l .nodet )
160
160
161
- def vectorize_root ( frame , rave_ = []): # init for agg+ :
162
- # draft:
161
+ def rave_2VR ( rave_ ) :
162
+
163
163
global ave , ave_d , ave_rn , ave_ro , ave_G , ave_L , max_dist , icoef , med_cost , ave_dI , mw_ , dw_
164
- if rave_ :
165
- ave_ = np .array ([ave , ave_d , ave_rn , ave_ro , ave_G , ave_L , max_dist , icoef , med_cost , ave_dI , mw_ , dw_ ])
166
- ave , ave_d , ave_rn , ave_ro , ave_G , ave_L , max_dist , icoef , med_cost , ave_dI , mw_ , dw_ = ave_ * rave_
167
- else :
168
- rave_ = np .append (np .ones (10 ), np .ones (10 ), np .ones (10 )) # weight per ave?
164
+ rmM ,rmD ,rmn ,rmo , rmI ,rmG ,rmA ,rmL = rave_ [0 ]
165
+ rdM ,rdD ,rdn ,rdo , rdI ,rdG ,rdA ,rdL = rave_ [1 ]
166
+
167
+ # ave, ave_d, ave_rn, ave_ro, ave_G, ave_L, max_dist, icoef, med_cost, ave_dI:
168
+ ave *= rmM
169
+ ave_d *= rdM
170
+ ave_rn *= rmn
171
+ ave_ro *= rmo
172
+ ave_G *= rmG
173
+ ave_L *= rmL
174
+ max_dist *= rmM
175
+ icoef *= rmM
176
+ med_cost *= rmM
177
+ ave_dI *= rmI
178
+
179
+ # mw_, dw_
180
+ mw_ *= rave_ [0 ]; dw_ *= rave_ [1 ]
181
+
182
+
183
+ def vectorize_root (frame , rave_ = np .ones ((2 ,8 ))): # init for agg+:
184
+ # draft:
185
+ rave_2VR (rave_ )
169
186
blob_ = unpack_blob_ (frame )
170
187
frame2G (frame , derH = [CLay (root = frame )], node_ = [blob_ ], root = None )
171
188
edge_ = [] # cluster, unpack
172
189
for blob in blob_ :
173
190
if not blob .sign and blob .G > ave_G * blob .root .olp :
174
191
# convert rave_ to slice_edge coefs:
175
- edge = slice_edge (blob , rave_2SE ( rave_ ) )
192
+ edge = slice_edge (blob , rave_ )
176
193
if edge .G * (len (edge .P_ )- 1 ) > ave : # eval PP
177
- comp_slice (edge , rave_2CS ( rave_ ) )
194
+ comp_slice (edge , rave_ )
178
195
if edge .Et [0 ] * (len (edge .node_ )- 1 )* (edge .rng + 1 ) > ave :
179
196
G_ = [PP2G (PP )for PP in edge .node_ if PP [- 1 ][0 ] > ave ] # Et, no altGs
180
197
if len (G_ ) > ave_L : # no comp node_,link_,PPd_
@@ -576,7 +593,7 @@ def PP2G(PP):
576
593
577
594
baseT = np .array ((* latuple [:2 ], * latuple [- 1 ])) # I,G,Dy,Dx
578
595
[mI ,mG ,mA ,mM ,mD ,mL ], [dI ,dG ,dA ,dM ,dD ,dL ] = vert
579
- derTT = np .array ([np .array ([mM ,mD ,mL ,1 ,mI ,mG ,* mA ,mL ]), np .array ([dM ,dD ,dL ,1 ,dI ,dG ,* dA ,dL ])])
596
+ derTT = np .array ([np .array ([mM ,mD ,mL ,1 ,mI ,mG ,mA ,mL ]), np .array ([dM ,dD ,dL ,1 ,dI ,dG ,dA ,dL ])]) # mA and dA is scalar here
580
597
y ,x ,Y ,X = box ; dy ,dx = Y - y ,X - x # A = (dy,dx); L = np.hypot(dy,dx)
581
598
G = CG (root = root , fd = 0 , Et = Et , node_ = P_ , link_ = [], baseT = baseT , derTT = derTT , box = box , yx = yx , aRad = np .hypot (dy / 2 , dx / 2 ),
582
599
derH = [[CLay (node_ = P_ ,link_ = link_ , derTT = deepcopy (derTT )), CLay ()]]) # empty dfork
0 commit comments