Если вы скачиваете код и посмотреть на файл заголовка, оно должно быть само за себя (кстати, Либерал построен хорошо для меня на Ubuntu):
// Description of parameters:
//
// FOR REGULAR HILBERT INDICES
//
// CFixBitVec/CBigBitVec *p
// Pointer to array of non-negative coordinate values.
//
// int m
// Precision of all coordinate values (number of bits required to
// represent the largest possible coordinate value).
//
// int n
// Number of dimensions (size of the array *p).
//
// CFixBitVec/CBigBitVec &h
// Hilbert index of maximum precision m*n.
//
// int *ms
// Array of precision values, one per dimension.
//
// FOR COMPACT HILBERT INDICES
//
// CFixBitVec/CBigBitVec &hc
// Compact Hilbert index of maximum precision M.
//
// int M
// Net precision value, corresponding to the size of the compact
// Hilbert code. If not provided, defaults to zero and will be calculated
// by the function (sum_i { ms[i] }).
//
// int m
// Largest precision value (max_i { ms[i] }). If not provided, defaults
// to zero and will be calculated by the function,
namespace Hilbert
{
// fix -> fix
void coordsToIndex(const CFixBitVec *p, int m, int n, CFixBitVec &h);
void indexToCoords(CFixBitVec *p, int m, int n, const CFixBitVec &h);
void coordsToCompactIndex(const CFixBitVec *p, const int *ms, int n,
CFixBitVec &hc, int M = 0, int m = 0);
void compactIndexToCoords(CFixBitVec *p, const int *ms, int n,
const CFixBitVec &hc, int M = 0, int m = 0);
// fix -> big
void coordsToIndex(const CFixBitVec *p, int m, int n, CBigBitVec &h);
void indexToCoords(CFixBitVec *p, int m, int n, const CBigBitVec &h);
void coordsToCompactIndex(const CFixBitVec *p, const int *ms, int n,
CBigBitVec &hc, int M = 0, int m = 0);
void compactIndexToCoords(CFixBitVec *p, const int *ms, int n,
const CBigBitVec &hc, int M = 0, int m = 0);
// big -> big
void coordsToIndex(const CBigBitVec *p, int m, int n, CBigBitVec &h);
void indexToCoords(CBigBitVec *p, int m, int n, const CBigBitVec &h);
void coordsToCompactIndex(const CBigBitVec *p, const int *ms, int n,
CBigBitVec &hc, int M = 0, int m = 0);
void compactIndexToCoords(CBigBitVec *p, const int *ms, int n,
const CBigBitVec &hc, int M = 0, int m = 0);
};
Итак, вы спрашиваете нас, как работает код? Почему бы не связаться с автором? – Bart
C++ не имеет типов 'INT (4)', 'INT (8)' или 'varchar (512)'. Это больше похоже на Fortran. Вы уверены, что правильно отметили этот вопрос? –
@ DietmarKühl iirc, это типы SQL, которые легко соответствуют int32_t, int64_t и char [512] или std :: string - сама библиотека, по-видимому, написана на C++, поэтому тегирование, вероятно, нормально. – kfmfe04