176 |
|
pm->prow = pricerow(pm,i); |
177 |
|
srow = psortrow(pm,i); |
178 |
|
for (j = to_rbf->nrbf; j--; ) { |
179 |
< |
double dprod = DOT(vfrom, vto[j]); |
180 |
< |
pm->prow[j] = ((dprod >= 1.) ? .0 : acos(dprod)) + |
181 |
< |
fabs(R2ANG(to_rbf->rbfa[j].crad) - from_ang); |
179 |
> |
double d; /* quadratic cost function */ |
180 |
> |
d = DOT(vfrom, vto[j]); |
181 |
> |
d = (d >= 1.) ? .0 : acos(d); |
182 |
> |
pm->prow[j] = d*d; |
183 |
> |
d = R2ANG(to_rbf->rbfa[j].crad) - from_ang; |
184 |
> |
pm->prow[j] += d*d; |
185 |
|
srow[j] = j; |
186 |
|
} |
187 |
|
qsort_r(srow, pm->ncols, sizeof(short), pm, &msrt_cmp); |
239 |
|
{ |
240 |
|
const int max2check = 100; |
241 |
|
const double maxamt = 1./(double)pm->ncols; |
242 |
< |
const double minamt = maxamt*5e-6; |
242 |
> |
const double minamt = maxamt*1e-4; |
243 |
|
double *src_cost; |
244 |
|
short (*rord)[2]; |
245 |
|
struct { |