查找Fortran数组中最近值的索引位置

rya*_*lon 1 fortran binary-search

我有两个排序的数组,一个包含因子(数组a),当与另一个数组(数组b)的值相乘时,产生所需的值:

a(idx1) * b(idx2) = value
Run Code Online (Sandbox Code Playgroud)

有了idx2名气,我想找到idx1a,提供必要获得尽可能接近的因素value成为可能.

我已经看过一些不同的算法(比如这个算法),但我觉得在我的特定情况下它们都会遇到浮点运算的潜在问题.

任何人都可以建议一种避免这种情况的方法吗

Hig*_*ark 6

如果我理解正确,这个表达方式

minloc(abs(a-value/b(idx2)))
Run Code Online (Sandbox Code Playgroud)

将索引返回到a第一次出现的值中a,其中最小化差异.我希望编译器会编写代码来扫描所有元素,a因此这可能不会比利用知识a和搜索的搜索更快b.在补偿方面,这可以更快地编写,我希望能够进行调试.