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
Constructor
Description
`KahanFunction()`

## Method Summary

Modifier and Type
Method
Description
`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)`
`final 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 Details

### KahanFunction

public KahanFunction()

## Method Details

### 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`