# MATH_Checksum*Update

## 構文

      #include <nitro/math/checksum.h>

      void MATH_Checksum8Update( MATHChecksum8Context *context, const void* input, u32 length );
      void MATH_Checksum16Update( MATHChecksum16Context *context, const void* input, u32 length );

## 引数

context | 各種 Checksum 計算用のコンテキスト構造体へのポインタ。
input | 入力データへのポインタ。
length | 入力データのサイズ。

## 返り値

なし。

## 説明

この関数は、各種 Checksum によるハッシュ値を入力データによって更新します。context 引数はあらかじめ`MATH_Checksum*Init()`で初期化してある必要があります。
この関数を任意の回数呼び出した後に、`MATH_Checksum*GetHash()`を使用してハッシュ値を得ます。
入力データには任意のサイズ・任意のアラインメント位置のものが使用できます。
8bit Checksum は 8bit のハッシュ値を求めるためのアルゴリズムです。1の補数和の1の補数を 8bit 単位で計算します。
16bit Checksum は 16bit のハッシュ値を求めるためのアルゴリズムです。1の補数和の1の補数を 16bit 単位で計算します。
16bit Checksum は IP, UDP, TCP などで使用する IP Checksum、または Internet Checksum と呼ばれるものと同じ値を返します。Internet Checksum の詳細は IETF (The Internet Engineering Task Force) が発行している RFC (Request For Comments) 1071 などを参照してください。

## 参照

`MATH_Checksum*Init, MATH_Checksum*GetHash`

## 履歴

2005/04/12 初版