Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Chris Hamilton的紧致Hilbert代码-用于计算紧致Hilbert指数_C++_Multidimensional Array_Indices_Hilbert Curve_Linearization - Fatal编程技术网

C++ Chris Hamilton的紧致Hilbert代码-用于计算紧致Hilbert指数

C++ Chris Hamilton的紧致Hilbert代码-用于计算紧致Hilbert指数,c++,multidimensional-array,indices,hilbert-curve,linearization,C++,Multidimensional Array,Indices,Hilbert Curve,Linearization,我有一个多维点,它可能有以下3种类型的键INT(4),即Short、INT(8)或varchar(512) 由于这个原因,我不能使用正常的希尔伯特曲线变换。我发现了一个非常好的资源来计算紧凑的希尔伯特指数。这里是链接 我理解他论文中的要点和动机,但我无法破译密码。我不知道要调用哪些函数来计算压缩希尔伯特指数及其逆函数。如果你下载代码并查看头文件,它应该是自解释的(顺便说一句,在Ubuntu上为我构建的库很好): 如果您下载代码并查看头文件,它应该是不言自明的(顺便说一句,在Ubuntu上为我构

我有一个多维点,它可能有以下3种类型的键INT(4),即Short、INT(8)或varchar(512)

由于这个原因,我不能使用正常的希尔伯特曲线变换。我发现了一个非常好的资源来计算紧凑的希尔伯特指数。这里是链接


我理解他论文中的要点和动机,但我无法破译密码。我不知道要调用哪些函数来计算压缩希尔伯特指数及其逆函数。

如果你下载代码并查看头文件,它应该是自解释的(顺便说一句,在Ubuntu上为我构建的库很好):


如果您下载代码并查看头文件,它应该是不言自明的(顺便说一句,在Ubuntu上为我构建的库非常好):

是压缩希尔伯特索引的开源Java实现。下面是一个与问题中指定的4、8和512字节的3维相对应的示例:

CompactHilbertCurve chc = new CompactHilbertCurve(new int[] {4 * 8, 8 * 8, 512 * 8});
List<Integer> bitsPerDimension = chc.getSpec().getBitsPerDimension();
BitVector[] p = new BitVector[bitsPerDimension.size()];
for (int i = p.length; --i >= 0; ) {
    p[i] = BitVectorFactories.OPTIMAL.apply(bitsPerDimension.get(i));
}
p[0].copyFrom(123);
p[1].copyFrom(32342);
p[2].copyFrom(BitSet.valueOf("test".getBytes("ISO-8859-1")));
BitVector chi = BitVectorFactories.OPTIMAL.apply(chc.getSpec().sumBitsPerDimension());
chc.index(p, 0, chi);
System.out.println(chi);
CompactHilbertCurve chc=新的CompactHilbertCurve(新的int[]{4*8,8*8,512*8});
列出bitsPerDimension=chc.getSpec().getBitsPerDimension();
BitVector[]p=新的位向量[bitsPerDimension.size()];
对于(int i=p.length;--i>=0;){
p[i]=bitVectorFactorys.OPTIMAL.apply(bitsPerDimension.get(i));
}
p[0].copyrom(123);
p[1].copyrom(32342);
p[2].copyFrom(BitSet.valueOf(“test”.getBytes(“ISO-8859-1”));
BitVector chi=bitVectorFactorys.OPTIMAL.apply(chc.getSpec().sumBitsPerDimension());
chc指数(p,0,chi);
系统输出println(chi);
是压缩希尔伯特索引的开源Java实现。下面是一个与问题中指定的4、8和512字节的3维相对应的示例:

CompactHilbertCurve chc = new CompactHilbertCurve(new int[] {4 * 8, 8 * 8, 512 * 8});
List<Integer> bitsPerDimension = chc.getSpec().getBitsPerDimension();
BitVector[] p = new BitVector[bitsPerDimension.size()];
for (int i = p.length; --i >= 0; ) {
    p[i] = BitVectorFactories.OPTIMAL.apply(bitsPerDimension.get(i));
}
p[0].copyFrom(123);
p[1].copyFrom(32342);
p[2].copyFrom(BitSet.valueOf("test".getBytes("ISO-8859-1")));
BitVector chi = BitVectorFactories.OPTIMAL.apply(chc.getSpec().sumBitsPerDimension());
chc.index(p, 0, chi);
System.out.println(chi);
CompactHilbertCurve chc=新的CompactHilbertCurve(新的int[]{4*8,8*8,512*8});
列出bitsPerDimension=chc.getSpec().getBitsPerDimension();
BitVector[]p=新的位向量[bitsPerDimension.size()];
对于(int i=p.length;--i>=0;){
p[i]=bitVectorFactorys.OPTIMAL.apply(bitsPerDimension.get(i));
}
p[0].copyrom(123);
p[1].copyrom(32342);
p[2].copyFrom(BitSet.valueOf(“test”.getBytes(“ISO-8859-1”));
BitVector chi=bitVectorFactorys.OPTIMAL.apply(chc.getSpec().sumBitsPerDimension());
chc指数(p,0,chi);
系统输出println(chi);

那么您是在问我们代码是如何工作的?为什么不联系作者?C++没有类型:代码> int(4)< />代码>代码> int(8)< />代码,或者<代码> vARCHAR(512)< /C>。这看起来更像Fortran。您确定您正确地标记了这个问题吗?@ dieMeTuHL Irc,那些是与It32、t、Cnar(512)或STD::string很容易对应的SQL类型——库本身似乎是用C++编写的,所以标记可能是损坏的。我试图联系作者,但可能他很忙。我不想理解代码。这是一个图书馆。我只是想知道到底要调用哪些函数。。没有手册,所以你问我们代码是如何工作的?为什么不联系作者?C++没有类型:代码> int(4)< />代码>代码> int(8)< />代码,或者<代码> vARCHAR(512)< /C>。这看起来更像Fortran。您确定您正确地标记了这个问题吗?@ dieMeTuHL Irc,那些是与It32、t、Cnar(512)或STD::string很容易对应的SQL类型——库本身似乎是用C++编写的,所以标记可能是损坏的。我试图联系作者,但可能他很忙。我不想理解代码。这是一个图书馆。我只是想知道到底要调用哪些函数。。没有手册。感谢您的善意提示,如果您注意到作者在测试主代码中创建了4维的点,并且它可以进行转换。然而,当试图将此代码放大到5维时,它开始给出垃圾答案。尝试过吗?请阅读作者的文档-也许他的实现有局限性:我不知道。没有作者文档;这就是为什么我们不知道如何使用它的原因。感谢善意的提示,如果您注意到在测试主代码中,作者创建了4维点,并且它可以进行转换。然而,当试图将此代码放大到5维时,它开始给出垃圾答案。尝试过吗?请阅读作者的文档-也许他的实现有局限性:我不知道。没有作者文档;这就是为什么我们不知道如何使用它。