这个包提供了使用numpy操作浮点数量化的模块。
fpq的Python项目详细描述
LicenseBuild StatusPyPI versionPyversions
首件鉴定
关于
这个包提供了操作浮点数的模块 使用numpy量化。
功能
- 支持多维数组。
- 支持64/32/16位浮点之间的编码和解码 数字和N位无符号规范化整数。
- 支持64/32/16位浮点之间的编码和解码 数字和n位有符号规范化整数。
- 支持三维矢量和N位无符号之间的编码和解码 整数。
- 支持四元数和n位之间的编码和解码 无符号整数。
兼容性
fpq适用于python 3.4或更高版本。
依赖性
- 努比
- numba
安装
pip install fpq
使用量
32位浮点数与5位的编解码 无符号规范化整数。
>>>importnumpyasnp>>>fromfpq.fpimport*>>>fp=np.array([0.,0.25,1.],dtype=np.float32)>>>enc=encode_fp_to_std_unorm(fp,dtype=np.uint8,nbits=5)>>>encarray([0,8,31],dtype=uint8)>>>dec=decode_std_unorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([0.,0.2580645,1.],dtype=float32)
32位浮点数与5位的编解码 有符号规范化整数。
>>>importnumpyasnp>>>fromfpq.fpimport*>>>fp=np.array([-1.,-0.25,-0.,0.,0.25,1.],dtype=np.float32)>>>enc=encode_fp_to_std_snorm(fp,dtype=np.uint8,nbits=5)>>>encarray([31,9,1,0,8,30],dtype=uint8)>>>dec=decode_std_snorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([-1.,-0.26666668,-0.,0.,0.26666668,1.],dtype=float32)>>>enc=encode_fp_to_ogl_snorm(fp,dtype=np.uint8,nbits=5)>>>encarray([17,28,0,0,4,15],dtype=uint8)>>>dec=decode_ogl_snorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([-1.,-0.26666668,0.,0.,0.26666668,1.],dtype=float32)
三维矢量与64位的编解码(2:20:20:22) 无符号整数。
>>>importmath>>>importrandom>>>importnumpyasnp>>>fromfpq.vectorimport*>>>v=np.array([vec_random(norm=100.)for_inrange(3)],dtype=np.float64)>>>varray([[-54.70386501,-22.45578546,-52.18237577],[-85.46791152,-5.69032986,1.21334561],[16.02886205,1.94634654,-30.35219431]])>>>enc=encode_vec_to_uint(v,dtype=np.uint64,nbits=20)>>>encarray([1313110064653969262,306332797892602581,11373476070061802081],dtype=uint64)>>>dec=decode_uint_to_vec(enc,dtype=np.float64,nbits=20)>>>decarray([[-54.69957531,-22.45404536,-52.17828412],[-85.4662517,-5.69027392,1.21334561],[16.02845595,1.94632843,-30.3514349]])
四元数与64位的编解码(2:20:20:20) 无符号整数。
>>>importnumpyasnp>>>fromfpq.quaternionimport*>>>q=np.array([quat_random()for_inrange(3)],dtype=np.float64)>>>qarray([[0.25679071,-0.15512517,0.88804262,0.34838917],[0.71399177,0.05729705,-0.69728753,-0.02688697],[-0.66527338,-0.62596543,-0.40672262,-0.01246296]])>>>enc=encode_quat_to_uint(q,dtype=np.uint64)>>>encarray([2724532880236077588,93422189206870975,1020620101889574962],dtype=uint64)>>>dec=decode_uint_to_quat(enc,dtype=np.float64)>>>decarray([[0.25679011,-0.15512497,0.88804308,0.34838854],[0.71399243,0.0572969,-0.69728688,-0.02688637],[0.66527395,0.62596484,0.40672258,0.01246335]])
Here是 很少有例子。
文件
对于用户,文档现在可以在https://hasenpfote.github.io/fpq/获得。
许可证
此软件是在麻省理工学院的许可下发布的,请参阅许可证。