bin16.py
59 lines
| 910 B
| text/x-python
|
PythonLexer
/ SRC / bin16.py
Alexis Jeandet
|
r0 | import math | ||
def quant16(x,liminf,limsup): | ||||
p = 1.0/pow(2,16) * (limsup - liminf) | ||||
x_quant = int(round(x/p)) | ||||
return x_quant | ||||
def quantN(x,liminf,limsup,N): | ||||
p = 1.0/pow(2,N) * (limsup - liminf) | ||||
x_quant = int(round(x/p)) | ||||
return x_quant | ||||
def trunc16(x): | ||||
if x > (pow(2,15) - 1): | ||||
z = pow(2,15) - 1 | ||||
z = int(z) | ||||
return z | ||||
if x < (-1 * pow(2,15)): | ||||
z = -1 * pow(2,15) | ||||
z = int(z) | ||||
return z | ||||
return x | ||||
def truncN(x,N,signed = 0): | ||||
if signed == 0: | ||||
if x > (pow(2,N)): | ||||
z = pow(2,N) - 1 | ||||
z = int(z) | ||||
return z | ||||
if x < 0: | ||||
z = 0 | ||||
return z | ||||
return x | ||||
if signed == 1: | ||||
if x > (pow(2,N-1) - 1): | ||||
z = pow(2,N-1) - 1 | ||||
z = int(z) | ||||
return z | ||||
if x < (-1 * pow(2,N-1)): | ||||
z = -1 * pow(2,N-1) | ||||
z = int(z) | ||||
return z | ||||
return x | ||||
def add16(x,y): | ||||
z = x + y | ||||
z = trunc16(z) | ||||
return z | ||||
def prod16(x,y): | ||||
z = x * y | ||||
z = trunc16(z) | ||||
return z | ||||
def div16(x,y): | ||||
z = x/y | ||||
z = trunc16(z) | ||||
return z | ||||