"""Hensel encoder/decoder module."""
import ast
from tropic.common.const import oo
def encode(inp, base):
"""Hensel decoding function.
Args:
inp (list): list of p-adic coefficients
base (int): base of p-adic encoding
Returns:
int: hensel code
"""
rinp = enumerate(reversed(inp))
monomials = [coef * base ** power for power, coef in rinp]
return sum(monomials)
def decode(inp, base, prec=-1):
"""Hensel decoding function.
Args:
inp (int): scalar to be represented as hensel code
base (int): base of encoding
prec (int): positive integer, the p-adic precision of the root
Returns:
list: list of coefficients of hensel code
"""
out = []
if inp in {0, 1}:
out += [inp]
elif abs(inp) == oo:
out += [inp]
else:
while inp:
out += [int(abs(inp) % base)]
inp //= base
out.reverse()
pads = [0 for _ in range(prec - len(out))]
return pads + out
def num2str(inp):
"""Hensel decode function.
Args:
inp (int): scalar to be represented as hensel code
Returns:
str: list of coefficients of hensel code
"""
sgn = '-' if inp < 0 else '+'
pinp = abs(inp)
return ''.join([sgn, 'oo']) if pinp == oo else str(inp)
def str2num(inp):
"""Hensel decode function.
Args:
inp (int): scalar to be represented as hensel code
Returns:
float: list of coefficients of hensel code
"""
sgn = '-' if inp < 0 else ''
inf = ''.join([sgn, 'oo'])
return inf if abs(inp) == oo else str(inp)
def lst2str(inp, sep='.'):
"""Hensel decode function.
Args:
inp (int): scalar to be represented as hensel code
sep (str): base of encoding
Returns:
str: list of coefficients of hensel code
"""
return sep.join(map(str, inp))
def str2lst(inp):
"""Hensel decode function.
Args:
inp (str): scalar to be represented as hensel code
Returns:
str: list of coefficients of hensel code
"""
return map(float, ast.literal_eval(inp))
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
tropic-0.2.2.tar.gz (11个子文件)
tropic-0.2.2
PKG-INFO 323B
tropic
linalg
mlmatrix.py 1KB
__init__.py 32B
common
const.py 43B
logger.py 192B
__init__.py 21B
codecs
__init__.py 26B
hensel.py 2KB
pyproject.toml 357B
LICENSE 1KB
setup.py 662B
共 11 条
- 1
资源评论
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python课设-学生信息管理系统
- 广东省2021年普通高考音乐表演-器乐类总分分数段统计表(含本、专科层次加分)
- ubuntu20.04安装教程.md
- 广东省2021年普通高考音乐表演-声乐类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考音乐学类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考舞蹈类总分分数段统计表(含本、专科层次加分)
- Python教程-快速入门基础必看课程10-函数基础
- tensorflow-2.9.2-cp39-cp39-win-amd64.whl
- tensorflow-2.9.2-cp37-cp37m-win-amd64.whl
- 广东省2021年普通高考体育类总分分数段统计表(含本、专科层次加分)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功