Package org.apache.sysds.runtime.functionobjects

## Class KahanFunction

- java.lang.Object
- - org.apache.sysds.runtime.functionobjects.FunctionObject
  - - org.apache.sysds.runtime.functionobjects.ValueFunction
    - - org.apache.sysds.runtime.functionobjects.KahanFunction

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `KahanPlus`, `KahanPlusSq`

    public abstract class KahanFunction
    extends ValueFunction

Runtime function type to perform the summation of values using the Kahan summation algorithm.

See Also:
  Serialized Form

### Constructor Summary

Constructors
`KahanFunction()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`abstract void` `execute2​(KahanObject kObj, double in)` Add the given term to the existing sum with a function applied using the Kahan summation algorithm.
`abstract void` `execute3​(KahanObject kObj, double in, int count)`
`boolean` `requiresCorrection()`

### Methods inherited from class org.apache.sysds.runtime.functionobjects.ValueFunction

`isBinary, toString`

### Methods inherited from class org.apache.sysds.runtime.functionobjects.FunctionObject

`clone, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### KahanFunction

    public KahanFunction()

### Method Detail

#### execute2

    public abstract void execute2​(KahanObject kObj,
                                  double in)

Add the given term to the existing sum with a function applied using the Kahan summation algorithm.

Parameters:
  `kObj` - A KahanObject containing the current sum and correction factor for the Kahan summation algorithm.
  `in` - The current term to be added.

#### execute3

    public abstract void execute3​(KahanObject kObj,
                                  double in,
                                  int count)

#### requiresCorrection

    public final boolean requiresCorrection()

Overrides:
  `requiresCorrection` in class `ValueFunction`