From: Sho Takemori <stakemorii@gmail.com>
To: 24117@debbugs.gnu.org
Subject: bug#24117: 25.1; url-http-create-request: Multibyte text in HTTP request
Date: Sun, 31 Jul 2016 17:26:37 +0900 [thread overview]
Message-ID: <CAHbQ=cVHBOcrqQxRu6Cwuhk3W3EFEQUwhv=aMsh+Xh8Re+u7=A@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 25133 bytes --]
I got an error "error in process sentinel: url-http-create-request:
Multibyte text in HTTP request" when I visited a Python file which contains
a multibyte character with `anaconda-eldoc-mode' turned on.
At first, I thought this was a bug of anaconda-mode. So I opened an issue
in github (https://github.com/proofit404/anaconda-mode/issues/189).
I guess `(= (string-bytes request) (length request))` in
`url-http-create-request' should be `(= (string-bytes url-http-data)
(length url-http-data))`, because `(= (string-bytes request) (length
request))` may be `nil' even if `(= (string-bytes url-http-data) (length
url-http-data))` is `t'.
Sho Takemori
In GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
of 2016-07-26 built on HP-500-270jp
Repository revision: 0f0b191a5324115fe9e8c438eceef4043decf209
Windowing system distributor 'The X.Org Foundation', version 11.0.11803000
System Description: Ubuntu 16.04.1 LTS
Configured using:
'configure --with-sound=no --with-modules'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK GPM DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES
Important settings:
value of $LC_MONETARY: ja_JP.UTF-8
value of $LC_NUMERIC: ja_JP.UTF-8
value of $LC_TIME: ja_JP.UTF-8
value of $LANG: ja_JP.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
diff-auto-refine-mode: t
shell-dirtrack-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
MIME-Version: 1.0
Connection: keep-alive
Extension: Security/Digest Security/SSL
Host: 127.0.0.1:9001
Accept-encoding: gzip
Accept: */*
User-Agent: URL/Emacs
Content-length: 20552
{"jsonrpc":"2.0","id":1,"method":"eldoc","params":{"source":"# -*- coding:
utf-8 -*-\nimport itertools\nfrom itertools import groupby\n\nfrom sage.all
import mul\nfrom sage.arith.all import kronecker_symbol\nfrom
sage.functions.all import ceil, floor, sgn\nfrom sage.matrix.all import
(block_diagonal_matrix, block_matrix,\n
diagonal_matrix, identity_matrix, matrix)\nfrom sage.misc.all import
cached_function\nfrom sage.quadratic_forms.all import QuadraticForm,
least_quadratic_nonresidue\nfrom sage.rings.all import QQ, ZZ,
CyclotomicField, FiniteField, PolynomialRing\n\n\ndef
_index_of_gamma_0_gl_n(alpha, p):\n ’’’\n Returns delta(a1, ..., an)
defined in Shimura, Euler products and Eisenstein\n series, pp 118,
(15.1.7).\n ’’’\n if p in ZZ:\n p = ZZ(p)\n\n def _bn(n):\n
return mul(1 - p ** (-i) for i in xrange(1, n + 1))\n\n e_r_ls =
[(k, len(list(v)))\n for k, v in groupby(sorted(alpha), lambda
x: x)]\n res = _bn(len(alpha)) / mul(_bn(r) for _, r in e_r_ls)\n for
i, (ei, ri) in enumerate(e_r_ls):\n for j, (ej, rj) in
enumerate(e_r_ls):\n if i < j:\n res *= p ** ((ej
- ei) * ri * rj)\n return res\n\n\ndef _gl2_coset_gamma0(a, p):\n w =
matrix([[0, -1],\n [1, 0]])\n for m12 in range(p ** a):\n
yield matrix([[1, m12],\n [0, 1]])\n for m21
in range(p ** (a - 1)):\n m = matrix([[1, 0],\n
[p * m21, 1]])\n yield w * m\n\n\ndef _gl3_coset_gamma0(alpha,
p):\n r’’’\n Let alpha = [a0, a1, a2] with a0 <= a1 <= a2,\n g =
diag([p^a0, p^a1, p^a2]), and Gamma0 = g^(-1) GL3(Z) g ∧ GL3(Z).\n
Return a complete set Gamma0 \\ GL3(Z).\n ’’’\n if p in ZZ:\n
p = ZZ(p)\n a0, a1, a2 = alpha\n if a0 < a1 < a2:\n return
list(__gl3_coset_gamma0_distinct(a0, a1, a2, p))\n elif a0 == a1 and a1
< a2:\n return list(__gl3_coset_gamma0_2_1(a0, a2, p))\n elif a0
< a1 and a1 == a2:\n return list(__gl3_coset_gamma0_1_2(a0, a2,
p))\n elif a0 == a1 == a2:\n return [identity_matrix(ZZ, 3)]\n
else:\n raise ValueError\n\n\ndef __gl3_coset_gamma0_2_1(a1, a3,
p):\n w23 = matrix([[1, 0, 0],\n [0, 0, 1],\n
[0, 1, 0]])\n for m13 in range(p ** (a3 - a1 - 1)):\n for
m23 in range(p ** (a3 - a1 - 1)):\n m = matrix([[1, 0, p *
m13],\n [0, 1, p * m23],\n
[0, 0, 1]])\n yield m\n\n for m32 in range(p ** (a3 -
a1)):\n m = matrix([[1, 0, 0],\n [0, 1, 0],\n
[0, m32, 1]])\n for g in _gl2_coset_gamma0(a3 - a1,
p):\n n = block_diagonal_matrix(g, matrix([[1]]))\n
yield w23 * m * n\n\n\ndef __gl3_coset_gamma0_1_2(a1, a2, p):\n w12 =
matrix([[0, 1, 0],\n [1, 0, 0],\n [0, 0,
1]])\n\n for m12 in range(p ** (a2 - a1 - 1)):\n for m13 in
range(p ** (a2 - a1 - 1)):\n m = matrix([[1, p * m12, p *
m13],\n [0, 1, 0],\n [0, 0,
1]])\n yield m\n for m21 in range(p ** (a2 - a1)):\n m
= matrix([[1, 0, 0],\n [m21, 1, 0],\n
[0, 0, 1]])\n for g in _gl2_coset_gamma0(a2 - a1, p):\n
n = block_diagonal_matrix(matrix([[1]]), g)\n yield w12 * m *
n\n\n\ndef __gl3_coset_gamma0_distinct(a1, a2, a3, p):\n\n w12 =
matrix([[0, 1, 0],\n [1, 0, 0],\n [0, 0,
1]])\n\n w23 = matrix([[1, 0, 0],\n [0, 0, 1],\n
[0, 1, 0]])\n\n w13 = matrix([[0, 0, 1],\n
[0, 1, 0],\n [1, 0, 0]])\n\n w123 = matrix([[0, 1,
0],\n [0, 0, 1],\n [1, 0, 0]])\n\n
w132 = matrix([[0, 0, 1],\n [1, 0, 0],\n
[0, 1, 0]])\n\n # w = 1\n for m12 in range(p ** (a2 - a1 - 1)):\n
for m13 in range(p ** (a3 - a1 - 1)):\n for m23 in range(p
** (a3 - a2 - 1)):\n yield matrix([[1, p * m12, p * m13],\n
[0, 1, p * m23],\n
[0, 0, 1]])\n # w = (12)\n for m13 in range(p ** (a3 - a2 - 1)):\n
for m21 in range(p ** (a2 - a1)):\n for m23 in range(p **
(a3 - a1 - 1)):\n m = matrix([[1, 0, p * m13],\n
[m21, 1, p * m23],\n [0, 0,
1]])\n yield w12 * m\n # w = (23)\n for m12 in range(p
** (a3 - a1 - 1)):\n for m13 in range(p ** (a2 - a1 - 1)):\n
for m32 in range(p ** (a3 - a2)):\n m = matrix([[1, p *
m12, p * m13],\n [0, 1, 0],\n
[0, m32, 1]])\n yield w23 * m\n\n # w = (13)\n
for m21 in range(p ** (a3 - a2)):\n for m31 in range(p ** (a3 -
a1)):\n for m32 in range(p ** (a2 - a1)):\n m =
matrix([[1, 0, 0],\n [m21, 1, 0],\n
[m31, m32, 1]])\n yield w13 * m\n\n # w =
(123)\n for m21 in range(p ** (a3 - a1)):\n for m23 in range(p **
(a2 - a1 - 1)):\n for m31 in range(p ** (a3 - a2)):\n
m = matrix([[1, 0, 0],\n [m21, 1, p *
m23],\n [m31, 0, 1]])\n yield
w123 * m\n # w = (132)\n for m12 in range(p ** (a3 - a2 - 1)):\n
for m31 in range(p ** (a2 - a1)):\n for m32 in range(p ** (a3
- a1)):\n m = matrix([[1, p * m12, 0],\n
[0, 1, 0],\n [m31, m32, 1]])\n
yield w132 * m\n\n\nclass HalfIntMatElement(object):\n\n def
__init__(self, T):\n ’’’\n :params T: half integral matrix of
size 3 or a list\n ’’’\n if isinstance(T, list):\n
a, b, c, d, e, f = [ZZ(x) for x in T]\n mat = matrix([[a, f /
2, e / 2],\n [f / 2, b, d / 2],\n
[e / 2, d / 2, c]])\n else:\n mat = T\n
self.__entries = tuple(mat.list())\n\n def __eq__(self, other):\n
if isinstance(other, HalfIntMatElement):\n return
self.__entries == other.__entries\n else:\n raise
NotImplementedError\n\n def __repr__(self):\n return
self.T.__repr__()\n\n def __hash__(self):\n return
hash(self.__entries)\n\n @property\n def T(self):\n return
matrix(3, self.__entries)\n\n def right_action(self, g):\n ’’’\n
:param g: matrix of size n\n return self[g] (Siegel’s
notation)\n ’’’\n S = g.transpose() * self.T * g\n
return HalfIntMatElement(S)\n\n def satisfy_cong_condition_tp(self, p,
alpha):\n ’’’\n Test if sum_{B mod D} exp(2pi T B D^(-1)) is
zero, where D = diag(p^a1, p^a2, a^a3),\n a1, a2, a3 = alpha.\n
’’’\n return (all(ZZ(self.T[i, i]) % p ** alpha[i] == 0 for i in
range(3)) and\n all(ZZ(self.T[i, j] * 2) % p ** alpha[i] ==
0\n for i in range(3) for j in range(i + 1, 3)))\n\n
def is_divisible_by(self, m):\n ’’’\n Test if self is
divisible by m\n :param m: integer\n ’’’\n return
_half_int_mat_is_div_by(self.T, m)\n\n def __floordiv__(self, other):\n
S = matrix(QQ, 3)\n for i in range(3):\n S[i, i] =
ZZ(self.T[i, i]) // other\n for i in range(3):\n for j in
range(i + 1, 3):\n S[i, j] = S[j, i] = (ZZ(self.T[i, j] * 2)
// other) / 2\n return HalfIntMatElement(S)\n\n\ndef
alpha_list(dl):\n ’’’\n Return a list of (a0, a1, a2) with 0 <= a0 <=
a1 <= a2 <= dl\n ’’’\n return [(a0, a1, a2) for a0 in range(dl + 1)\n
for a1 in range(a0, dl + 1) for a2 in range(a1, dl +
1)]\n\n\ndef tp_action_fourier_coeff(p, T, F):\n ’’’\n Return the Tth
Fourier coefficient of F|T(p), where F is a modular form.\n :param p: a
prime number\n :param T: a half integral matrix or an instance of
HalfIntMatElement\n :param F: a dictionary or a Siegel modular form of
degree 3\n ’’’\n p = ZZ(p)\n return
_action_fc_base(tp_action_fc_alist(p, T), F, T)\n\n\ndef
tp2_action_fourier_coeff(p, i, T, F):\n ’’’\n Similar to
tp_action_fourier_coeff for T_i(p^2).\n ’’’\n p = ZZ(p)\n return
_action_fc_base(tp2_action_fc_alist(p, T, i), F, T)\n\n\ndef
_action_fc_base(ls, F, T):\n if not isinstance(T, HalfIntMatElement):\n
T = HalfIntMatElement(T)\n res = 0\n for s, a, g in ls:\n
res = a * F[s].left_action(g) + res\n return res\n\n\ndef
hecke_eigenvalue_tp(p, F, T=None):\n ’’’\n p, F, T: same as aruments
of tp_action_fourier_coeff.\n Assuming F is an eigenform, return the
eigenvalue for T(p),\n T is used for the computation of Fourier
coefficients.\n If T is omitted, T will be set to\n matrix([[1, 1/2,
1/2], [1/2, 1, 1/2], [1/2, 1/2, 1]]).\n ’’’\n return
_hecke_eigenvalue_base(lambda s: tp_action_fourier_coeff(p, s, F), F,
T=T)\n\n\ndef hecke_eigenvalue_tp2(p, i, F, T=None):\n ’’’\n Similar
to hecke_eigenvalue_tp for T(p^2).\n ’’’\n return
_hecke_eigenvalue_base(lambda s: tp2_action_fourier_coeff(p, i, s, F), F,
T=T)\n\n\ndef spinor_l_euler_factor(p, F, t=None, T=None):\n ’’’\n F:
a dict or Siegel modular form of degree 3.\n Return a polynomial G(t) of
degree 8, s.t.\n G(p^(-s))^(-1) is the p-Euler factor of the spinor L
function of F.\n ’’’\n p = ZZ(p)\n if t is None:\n t =
PolynomialRing(QQ, 1, names=’t’, order=\"neglex\").gens()[0]\n c = {}\n
tp = hecke_eigenvalue_tp(p, F, T=T)\n tpp1, tpp2, tpp3 =
[hecke_eigenvalue_tp2(p, i, F, T=T) for i in [1, 2, 3]]\n c[0] = ZZ(1)\n
c[1] = tp\n c[2] = p * (tpp1 + (p**2 + 1) * tpp2 + (p**2 + 1)**2 *
tpp3)\n c[3] = p**3 * tp * (tpp2 + tpp3)\n c[4] = p**6 * (tp**2 *
tpp3 + tpp2**2 - 2 * p * tpp1 * tpp3 -\n 2 * (p - 1) *
tpp2 * tpp3 -\n (p**6 + 2 * p**5 + 2 * p**3 + 2 * p - 1)
* tpp3**2)\n c[5] = p**6 * tpp3 * c[3]\n c[6] = p**12 * tpp3 ** 2 *
c[2]\n c[7] = p**18 * tpp3 ** 3 * c[1]\n c[8] = p**24 * tpp3 ** 4\n
return sum((-1)**k * v * t**k for k, v in c.items())\n\n\ndef
rankin_convolution_degree1(f, g, p, name=None):\n u’’’\n f, g:
primitive forms of degree 1 and level 1.\n Return p-euler factor of the
Rankin convolution of f and g as\n a polynomial.\n ’’’\n k1 =
f.weight()\n k2 = g.weight()\n ap = f[p]\n bp = g[p]\n t =
PolynomialRing(QQ, 1, names=’t’ if name is None else name,\n
order=\"neglex\").gens()[0]\n return (1 - ap * bp * t +\n
(ap**2 * p**(k2 - 1) + bp**2 * p**(k1 - 1) - 2 * p**(k1 + k2 - 2)) *
t**2 -\n ap * bp * p**(k1 + k2 - 2) * t**3 + p**(2 * (k1 + k2 -
2)) * t**4)\n\n\ndef _hecke_eigenvalue_base(fc_func, F, T=None):\n if T
is None:\n T = HalfIntMatElement(matrix([[ZZ(1), ZZ(1) / ZZ(2),
ZZ(1) / ZZ(2)],\n [ZZ(1) / ZZ(2),
ZZ(1), ZZ(1) / ZZ(2)],\n [ZZ(1) /
ZZ(2), ZZ(1) / ZZ(2), ZZ(1)]]))\n if not isinstance(T,
HalfIntMatElement):\n T = HalfIntMatElement(T)\n v1 =
fc_func(T).vector\n v = F[T].vector\n if v == 0:\n raise
ZeroDivisionError\n else:\n i = next(i for i in range(len(v)) if
v[i] != 0)\n return v1[i] / v[i]\n\n\n@cached_function\ndef
tp_action_fc_alist(p, T):\n ’’’\n return a list of tuples (S, a, g)
s.t.\n S: an instance of HalfIntMatElement\n a: integer\n g: 3 by
3 matrix s.t.\n F|T(p) = sum(a rho(g) F[S] | (a, g, S)).\n ’’’\n
res1 = []\n for alpha in alpha_list(1):\n D = diagonal_matrix([p
** a for a in alpha])\n for V in _gl3_coset_gamma0(alpha, p):\n
M = D * V\n S = T.right_action(M.transpose())\n
if S.is_divisible_by(p):\n S = S // p\n if
S.satisfy_cong_condition_tp(p, alpha):\n # p**(-6) and p
in the third item are for normalization.\n
res1.append(\n (S, p ** (-6) * mul(p ** alpha[i]
for i in range(3) for j in range(i, 3)),\n M **
(-1) * p))\n return __convert_reduced_nonisom_matrices(res1)\n\n\ndef
__convert_reduced_nonisom_matrices(alst):\n red_res = []\n for s, a,
g in alst:\n u = _minkowski_reduction_transform_matrix(s.T)\n
t = s.right_action(u)\n red_res.append((t, a, g * u.transpose() **
(-1)))\n\n non_isoms = []\n\n for s, a, g in red_res:\n q =
QuadraticForm(ZZ, 2 * s.T)\n u = None\n for t, _, _ in
non_isoms:\n q1 = QuadraticForm(ZZ, 2 * t.T)\n if
q.det() == q1.det():\n u = q.is_globally_equivalent_to(q1,
return_matrix=True)\n if u and u.transpose() *
q.Gram_matrix_rational() * u == q1.Gram_matrix_rational():\n
break\n if u:\n non_isoms.append((s.right_action(u),
a, g * u.transpose() ** (-1)))\n else:\n
non_isoms.append((s, a, g))\n return non_isoms\n\n\n@cached_function\ndef
tp2_action_fc_alist(p, T, i):\n ’’’\n similar to tp_action_fc_alist
for T_i(p^2) for i = 0, 1, 2, 3.\n ’’’\n res1 = []\n\n for alpha
in alpha_list(2):\n D = diagonal_matrix([p ** a for a in alpha])\n
for V in _gl3_coset_gamma0(alpha, p):\n M = D * V\n
S = T.right_action(M.transpose())\n if S.is_divisible_by(p **
2):\n S = S // (p ** 2)\n res1.append((S, p
** (-12) * _expt_sum(S, p, alpha, i),\n M **
(-1) * p ** 2))\n\n return __convert_reduced_nonisom_matrices([(a, b, c)
for a, b, c in res1 if b != 0])\n\n\ndef _nearest_integer(x):\n r =
floor(x)\n if x - r > 0.5:\n return r + 1\n else:\n
return r\n\n\ndef _gaussian_reduction(b1, b2, S):\n ’’’\n b1, b2:
vectors of length 3\n S: symmetric matrix of size 3\n ’’’\n while
True:\n nb1 = b1 * S * b1\n nb2 = b2 * S * b2\n if nb2
< nb1:\n b1, b2 = b2, b1\n x = (b2 * S * b1) / (b1 * S *
b1)\n r = _nearest_integer(x)\n a = b2 - r * b1\n if a
* S * a >= b2 * S * b2:\n return (b1, b2)\n else:\n
b1, b2 = a, b1\n\n\ndef _sym_mat_gen(p, n):\n if n == 1:\n
for a in range(p):\n yield matrix([[a]])\n else:\n
for s in _sym_mat_gen(p, n - 1):\n ls = [range(p) for _ in
range(n)]\n for a in itertools.product(*ls):\n v
= matrix([a[:-1]])\n yield block_matrix([[s, v.transpose()],
[v, matrix([[a[-1]]])]])\n\n\ndef _gen_gauss_sum_direct_way(N, p, r):\n
res = 0\n K = CyclotomicField(p)\n zeta = K.gen()\n for S in
_sym_mat_gen(p, N.ncols()):\n if
S.change_ring(FiniteField(p)).rank() == r:\n res += zeta ** ((N
* S).trace())\n try:\n return QQ(res)\n except TypeError:\n
return res\n\n\ndef _generalized_gauss_sum(N, p, r):\n if r == 0:\n
return 1\n if p == 2:\n return
_gen_gauss_sum_direct_way(N, p, r)\n else:\n N_mp =
N.change_ring(FiniteField(p))\n d, _, v = N_mp.smith_form()\n
t = d.rank()\n N1 = (v.transpose() * N_mp *\n
v).matrix_from_rows_and_columns(range(t), range(t))\n eps =
kronecker_symbol(N1.det(), p)\n return _gen_gauss_sum_non_dyadic(p,
eps, N.ncols(), t, r)\n\n\ndef _half_int_mat_is_div_by(S, m):\n n =
S.ncols()\n return (all(ZZ(S[i, i]) % m == 0 for i in range(n)) and\n
all(ZZ(2 * S[i, j]) % m == 0 for i in range(n) for j in range(i +
1, n)))\n\n\n@cached_function\ndef _gen_gauss_sum_non_dyadic(p, eps, n, t,
r):\n ’’’\n cf. H. Saito, a generalization of Gauss sums\n ’’’\n\n
def parenthesis_prod(a, b, m):\n if m == 0:\n return
1\n else:\n return mul(1 - a * b ** i for i in
range(m))\n\n if (n - t) % 2 == 0:\n m = (n - t) // 2\n
else:\n m = (n - t + 1) // 2\n\n if n == r:\n if n % 2 ==
1:\n return ((-1) ** ((n - 2 * m + 1) // 2) * p ** ((n ** 2 + (2
* m) ** 2 - 1) // 4) *\n parenthesis_prod(p ** (-1), p
** (-2), m))\n elif n % 2 == t % 2 == 0:\n return
((-kronecker_symbol(-1, p)) ** ((n - 2 * m) // 2) *\n
eps * p ** ((n ** 2 + (2 * m + 1) ** 2 - 1) // 4) *\n
parenthesis_prod(p ** (-1), p ** (-2), m))\n else:\n
return 0\n else:\n diag = [1 for _ in range(t)]\n if eps
== -1:\n diag[-1] = least_quadratic_nonresidue(p)\n diag
= diag + [0 for _ in range(n - t)]\n N =
diagonal_matrix(diag).change_ring(FiniteField(p))\n return
_gen_gauss_sum_direct_way(N, p, r)\n\n\ndef _expt_sum(S, p, alpha, i):\n
’’’\n Return the exponential sum in Miyawaki’s paper, where alpha[-1]
<= 2, for T_i(p^2).\n ’’’\n a, b, c = [alpha.count(_i) for _i in
range(3)]\n S33 = S.T.matrix_from_rows_and_columns(range(a + b, 3),
range(a + b, 3))\n S22 = S.T.matrix_from_rows_and_columns(range(a, a +
b), range(a, a + b))\n S32 = S.T.matrix_from_rows_and_columns(range(a +
b, 3), range(a))\n\n if c > 0 and not _half_int_mat_is_div_by(S33, p **
2):\n return 0\n if c > 0 and b > 0 and any(x % p != 0 for x in
(S32 * ZZ(2)).change_ring(ZZ).list()):\n return 0\n\n if b == 0
and a + c == 3 - i:\n return p ** (c * (c + 1))\n elif b == 0:\n
return 0\n else:\n return p ** (c * (c + 1)) * p ** (b *
c) * _generalized_gauss_sum(S22, p, b - i)\n\n\ndef
_minkowski_reduction(b1, b2, b3, S):\n\n def inner_prod(x, y):\n
return x * S * y\n\n while True:\n b1, b2, b3 = sorted([b1, b2,
b3], key=lambda b: b * S * b)\n\n b1, b2 = _gaussian_reduction(b1,
b2, S)\n\n b11 = inner_prod(b1, b1)\n b12 = inner_prod(b1,
b2)\n b13 = inner_prod(b1, b3)\n b22 = inner_prod(b2, b2)\n
b23 = inner_prod(b2, b3)\n b33 = inner_prod(b3, b3)\n\n
y1 = - (b13 / b11 - b12 * b23 / (b11 * b22)) / \\\n (1 - b12 **
2 / (b11 * b22))\n y2 = - (b23 / b22 - b12 * b13 / (b11 * b22)) /
\\\n (1 - b12 ** 2 / (b11 * b22))\n\n # Find integers x1,
x2 so that norm(b3 + x2 * b2 + x1 * b1) is minimal.\n a_norms_alst =
[]\n\n for x1 in [floor(y1), ceil(y1)]:\n for x2 in
[floor(y2), ceil(y2)]:\n a = b3 + x2 * b2 + x1 * b1\n
a_norms_alst.append((x1, x2, a, inner_prod(a, a)))\n
_inner_prod_a = min(x[-1] for x in a_norms_alst)\n x1, x2, a, _ =
next(x for x in a_norms_alst if x[-1] == _inner_prod_a)\n\n if
_inner_prod_a >= b33:\n # Change sings of b1, b2, b3 and
terminate the alogrithm\n sngs = [sgn(b12), sgn(b13),
sgn(b23)]\n bs = [b1, b2, b3]\n try:\n
# If b12, b13 or b23 is zero, change sgns of b1, b2, b3 so that\n
# b12, b13, b23 >= 0.\n zero_i = sngs.index(0)\n
set_ls = [set([1, 2]), set([1, 3]), set([2, 3])]\n
t = set_ls[zero_i]\n _other = [x for x in [1, 2, 3] if x
not in t][0]\n for x in t:\n i =
set_ls.index(set([x, _other]))\n if sngs[i] < 0:\n
bs[x - 1] *= -1\n b1, b2, b3 = bs\n
except ValueError:\n # Else change sgns so that b12, b13
> 0\n if b12 < 0:\n b2 = -b2\n
if b13 < 0:\n b3 = -b3\n return (b1, b2,
b3)\n else:\n b3 = a\n\n\ndef
_minkowski_reduction_transform_matrix(S):\n ’’’\n Return a unimodular
matrix u such that u^t * S * u is reduced in Minkowski’s sense.\n ’’’\n
b1, b2, b3 = identity_matrix(QQ, 3).columns()\n c1, c2, c3 =
_minkowski_reduction(b1, b2, b3, S)\n return matrix([c1, c2,
c3]).transpose()\n","line":10,"column":0,"path":"/home/sho/work/sage_packages/e8theta_degree3/hecke_module.py"}}
Quit [2 times]
Load-path shadows:
/home/sho/.emacs.d/elpa/helm-20160723.2238/helm-multi-match hides
/home/sho/.emacs.d/elpa/helm-core-20160723.944/helm-multi-match
/home/sho/.emacs.d/elpa/scala-mode-20160519.731/ob-scala hides
/usr/local/share/emacs/25.1/lisp/org/ob-scala
/home/sho/.emacs.d/elpa/seq-2.16/seq hides
/usr/local/share/emacs/25.1/lisp/emacs-lisp/seq
Features:
(shadow sort mail-extr emacsbug message dired rfc822 mml mml-sec epg
mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader sendmail
mail-utils network-stream nsm starttls url-cache url-http tls gnutls
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums url-gw url-auth
anaconda-mode pythonic f url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap vc-git
diff-mode easy-mmode python tramp-sh tramp tramp-compat tramp-loaddefs
trampver shell pcomplete format-spec comint ring ansi-color finder-inf
tex-site advice edmacro kmacro gh-common gh-profile url-parse
auth-source gnus-util mm-util help-fns mail-prsvr password-cache
url-vars s ucs-normalize marshal eieio-compat cl-seq json map dash eieio
eieio-core cl-macs go-mode-autoloads rx info package epg-config seq
byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv
cl-loaddefs pcase cl-lib time-date mule-util japan-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 279045 5729)
(symbols 48 28763 0)
(miscs 40 591 109)
(strings 32 47201 10304)
(string-bytes 1 1610049)
(vectors 16 45065)
(vector-slots 8 885950 3678)
(floats 8 389 220)
(intervals 56 445 0)
(buffers 976 23)
(heap 1024 44595 2062))
[-- Attachment #2: Type: text/html, Size: 29275 bytes --]
next reply other threads:[~2016-07-31 8:26 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-31 8:26 Sho Takemori [this message]
2016-07-31 14:31 ` bug#24117: 25.1; url-http-create-request: Multibyte text in HTTP request Eli Zaretskii
2016-07-31 23:21 ` Sho Takemori
2016-08-01 13:17 ` Eli Zaretskii
2016-08-02 0:52 ` Dmitry Gutov
2016-08-02 15:25 ` Eli Zaretskii
2016-08-03 2:39 ` Dmitry Gutov
2016-08-04 17:02 ` Eli Zaretskii
2016-08-08 1:56 ` Dmitry Gutov
2016-08-08 13:32 ` Ted Zlatanov
2016-08-08 23:48 ` Katsumi Yamaoka
2016-08-08 15:33 ` Eli Zaretskii
2016-08-08 15:52 ` Lars Ingebrigtsen
2016-08-08 15:54 ` Lars Ingebrigtsen
2016-08-08 16:14 ` Eli Zaretskii
2016-08-08 16:18 ` Lars Ingebrigtsen
2016-08-08 16:33 ` Eli Zaretskii
2016-08-08 17:11 ` Andreas Schwab
2016-08-08 17:30 ` Eli Zaretskii
2016-08-08 19:16 ` Andreas Schwab
2016-08-09 2:32 ` Eli Zaretskii
2016-08-09 8:05 ` Andreas Schwab
2016-08-09 14:50 ` Eli Zaretskii
2016-08-10 7:12 ` Dmitry Gutov
2016-08-10 14:35 ` Eli Zaretskii
2016-08-11 2:52 ` Dmitry Gutov
2016-08-11 8:53 ` Ted Zlatanov
2016-08-11 12:31 ` Dmitry Gutov
2016-08-11 12:57 ` Ted Zlatanov
2016-08-11 13:00 ` Lars Ingebrigtsen
2016-08-11 13:18 ` Ted Zlatanov
2017-05-08 13:36 ` Dmitry Gutov
2017-05-08 20:57 ` Lars Ingebrigtsen
2017-05-10 0:40 ` Dmitry Gutov
2016-08-11 11:05 ` Lars Ingebrigtsen
2016-08-11 14:47 ` Eli Zaretskii
2016-08-11 14:59 ` Dmitry Gutov
2016-08-11 15:31 ` Eli Zaretskii
2016-08-11 18:07 ` Dmitry Gutov
2016-08-11 19:47 ` Eli Zaretskii
2016-08-12 21:44 ` John Wiegley
2016-08-13 0:30 ` Sho Takemori
2016-08-13 7:02 ` Eli Zaretskii
2016-08-13 7:31 ` Sho Takemori
2016-08-13 8:31 ` Eli Zaretskii
2016-08-13 13:02 ` Sho Takemori
2016-08-13 13:11 ` Eli Zaretskii
2016-08-13 15:32 ` Dmitry Gutov
2016-08-13 15:56 ` Eli Zaretskii
2016-08-08 16:21 ` Lars Ingebrigtsen
2016-08-08 16:33 ` Eli Zaretskii
2016-08-08 16:58 ` Lars Ingebrigtsen
2016-08-08 17:11 ` Eli Zaretskii
2016-08-08 19:46 ` Dmitry Gutov
2016-08-08 20:19 ` Lars Ingebrigtsen
2016-08-08 20:35 ` Dmitry Gutov
2016-08-08 20:36 ` Lars Ingebrigtsen
2016-08-09 2:13 ` Dmitry Gutov
2016-08-09 9:39 ` Lars Ingebrigtsen
2016-08-10 6:50 ` Dmitry Gutov
2016-08-11 1:31 ` Dmitry Gutov
2016-08-02 3:26 ` Sho Takemori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAHbQ=cVHBOcrqQxRu6Cwuhk3W3EFEQUwhv=aMsh+Xh8Re+u7=A@mail.gmail.com' \
--to=stakemorii@gmail.com \
--cc=24117@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.