@@ -126,35 +126,32 @@ end
126
126
Control the amount of entropy to add to null-hypothesis in multihypo case.
127
127
128
128
Notes:
129
- - Currently only supports Euclidean domains. (TODO expand)
129
+ - FIXME, Currently only supports Euclidean domains.
130
130
"""
131
131
function calcVariableDistanceExpectedFractional (ccwl:: CommonConvWrapper ,
132
132
sfidx:: Int ,
133
133
certainidx:: Vector{Int} ;
134
134
kappa:: Float64 = 3.0 )
135
135
#
136
- @assert ! (sfidx in certainidx) " null hypo distance does not work for sfidx in certainidx"
136
+ if sfidx in certainidx
137
+ return kappa* maximum (Statistics. std (ccwl. params[sfidx], dims= 2 ))
138
+ end
139
+ # @assert !(sfidx in certainidx) "null hypo distance does not work for sfidx in certainidx"
140
+
137
141
# get mean of all fractional variables
138
142
uncertainidx = setdiff (1 : length (ccwl. params), certainidx)
139
143
uncMeans = zeros (size (ccwl. params[sfidx],1 ), length (uncertainidx))
140
144
dists = zeros (length (uncertainidx)+ length (certainidx))
141
145
dims = size (ccwl. params[sfidx],1 )
142
- # uncDev = zeros(Int, length(uncertainidx))
143
146
count = 0
144
147
for i in uncertainidx
145
148
count += 1
146
- # @show "MARK", i, size(uncMeans), size(Statistics.mean(ccwl.params[i], dims=2) ), length(ccwl.params)
147
149
uncMeans[:,count] = Statistics. mean (ccwl. params[i], dims= 2 )[:]
148
- # uncDev[i] = Statistics.std(ccwl.params[i], dims=2)
149
150
end
150
151
count = 0
151
152
refMean = Statistics. mean (ccwl. params[sfidx], dims= 2 )[:]
152
153
for i in uncertainidx
153
- # if i == sfidx
154
- # continue
155
- # end
156
154
count += 1
157
- # @show i, sfidx, count, size(uncMeans), size(uncMeans)
158
155
dists[count] = norm (refMean - uncMeans[:,count])
159
156
end
160
157
# also check distance to certainidx for general scale reference (workaround heuristic)
@@ -165,7 +162,6 @@ function calcVariableDistanceExpectedFractional(ccwl::CommonConvWrapper,
165
162
end
166
163
167
164
push! (dists, 1e-2 )
168
- # @show round.(dists, digits=4)
169
165
return kappa* maximum (dists)
170
166
end
171
167
@@ -211,17 +207,10 @@ function computeAcrossHypothesis!(ccwl::CommonConvWrapper{T},
211
207
spreadDist = calcVariableDistanceExpectedFractional (ccwl, sfidx, certainidx, kappa= spreadNH)
212
208
ENT = generateNullhypoEntropy (addEntr, maxlen, spreadDist)
213
209
# add 1σ "noise" level to max distance as control
214
- # NOTE not around mean
215
- # meanVal = Statistics.mean(addEntr, dims=2)
216
- # addEntr .= rand(ENT, size(addEntr,2))
217
210
for i in 1 : size (addEntr, 1 )
218
211
for j in 1 : size (addEntr,2 )
219
212
addEntr[i,j] = maniAddOps[i](addEntr[i,j], spreadDist* (rand ()- 0.5 ))
220
213
end
221
- # FIXME should be on manifold
222
- # addEntr[i,:] .+= (spreadDist*rand(size(addEntr,2)) .- 0.5*spreadDist)
223
- # NOTE previous around mean approach
224
- # addEntr[i,:] .+= meanVal[i,1]
225
214
end
226
215
@assert addEntr[1 ,1 ] == ccwl. params[sfidx][1 , allelements[count][1 ]] " bad view memory"
227
216
else
0 commit comments