kahansummation.java~1~
来自「一个一元曲线多项式数值演示例子」· JAVA~1~ 代码 · 共 54 行
JAVA~1~
54 行
package numbercruncher.mathutils;/** * Implement Kahan's Summation Algorithm for the float type. */public class KahanSummation{ /** the current running sum */ private float sum; /** the current correction */ private float correction; /** the current corrected added */ private float correctedAddend; /** * Constructor. */ public KahanSummation() {} /** * Return the current corrected value of the running sum. * @return the running sum's value */ public float value() { return sum + correction; } /** * Return the corrected value of the current addend. * @return the corrected addend value */ public float correctedAddend() { return correctedAddend; } /** * Add the value of an addend to the running sum. * @param the addend value */ public void add(float addend) { // Correct the addend value and add it to the running sum. correctedAddend = addend + correction; float tempSum = sum + correctedAddend; // Compute the next correction and set the running sum. // The parentheses are necessary to compute the high-order // bits of the addend. correction = correctedAddend - (tempSum - sum); sum = tempSum; } /** * Clear the running sum and the correction. */ public void clear() { sum = 0; correction = 0; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?