libharkio3
A File I/O and Data Manipulation Library for HARK
|
harkio_Neighbor の API 群。 近接 Position の計算・取り出し・表現などを行う。 More...
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <math.h>
#include <float.h>
#include "libharkio3.h"
harkio_Neighbor の API 群。 近接 Position の計算・取り出し・表現などを行う。
int harkio_Neighbors_Algorithms_NearestNeighbor | ( | harkio_Neighbors * | nbrs, |
int | n, | ||
float | thresh | ||
) |
近接関係計算アルゴリズムの実装。近傍をクラスタリングする方法。
[in] | nbrs | harkio_Neighbors オブジェクト |
[in] | n | 近接関係と見なす最大数 |
[in] | thresh | 近接か否かを判定するしきい値 |
nbrs が持つ位置のユークリッド距離をすべてについて計算し、 thresh より小さいものを近傍として登録する。ただし、その数が n より大きければ近い順に n 個だけ登録する。
int harkio_Neighbors_append | ( | harkio_Neighbors * | nbrs, |
int | id, | ||
int | numNeighbors, | ||
int * | neighbors | ||
) |
新しい隣接関係を追加する。与えられた ID に隣接関係がすでに定義されていれば追加し、定義が無ければ新しく作成する。
[in] | nbs | harkio_Neighbors オブジェクト |
[in] | id | 追加する id |
[in] | numNeighbors | 追加する隣接点の数 |
[in] | numNeighbors | 追加する隣接へのポインタ |
int harkio_Neighbors_calcNeighbors | ( | harkio_Neighbors * | nbrs, |
enum NeighborAlgorithm | alg, | ||
... | |||
) |
harkio_Neighbors に登録されている位置の近接関係を計算する。
[in] | nbs | harkio_Neighbors オブジェクト |
[in] | alg | 近接関係計算アルゴリズムを表す enum. |
[in] | ... | アルゴリズムごとに決まる可変引数。 |
harkio_Neighbors* harkio_Neighbors_copy | ( | harkio_Neighbors * | n1 | ) |
harkio_Neighbors の内容を コピーする
void harkio_Neighbors_delete | ( | harkio_Neighbors ** | nbrs | ) |
デストラクタ。harkio_Neighbors のメモリを解放する。
[in] | nbrs | メモリを解放するオブジェクトへのポインタへのポインタ |
解放に成功すると xml には NULL が代入される。メンバのいくつかが NULL でもよい。
enum NeighborAlgorithm harkio_Neighbors_getNeighborAlgorithm | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors の近接関係計算アルゴリズムを返す。
[in] | nbs | harkio_Neighbors オブジェクト |
int harkio_Neighbors_getNeighbors | ( | harkio_Neighbors * | nbrs, |
int | id, | ||
int * | numNeighbors, | ||
int ** | neighbors | ||
) |
getter。与えられた id の近接 id を返す。[]
[in] | nbrs | 近接 ID を検索したい hakrio_Neighbors オブジェクト |
[in] | id | 近接 ID を検索したい対象の ID |
[out] | numNeighbors | 見つかった近接 ID の個数 |
[out] | neighbors | 見つかった近接 ID の配列へのポインタ |
引数に不備があれば EXIT_FAILURE が返される。成功すれば numNeighbors, neighbors に値がセットされ EXIT_SUCCESS が返る。 neighbors は関数内で malloc されるので free が必要。
int harkio_Neighbors_getSize | ( | harkio_Neighbors * | nbs | ) |
Getter. harkio_Neighbors に登録されている harkio_Positions の長さ
[in] | nbs | harkio_Neighbors オブジェクト |
int harkio_Neighbors_isEqual | ( | harkio_Neighbors * | a, |
harkio_Neighbors * | b | ||
) |
harkio_Neighbors が等しいかどうかを比較する。
harkio_Neighbors* harkio_Neighbors_new | ( | harkio_Positions * | poses | ) |
コンストラクタ。近接関係を表すオブジェクトを生成する。
[in] | poses | 近接関係を表現したい位置群を与える。 NULL でもよい。 |
poses はコピーせずにポインタが渡される。 NULL を与えた場合は位置が無い空のオブジェクトが生成される。 使用が終わったら、 harkio_Neighbors_delete でメモリ解放を行う。