schubmult 2.0.2__py3-none-any.whl → 2.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. schubmult/__init__.py +1 -1
  2. schubmult/_base_argparse.py +35 -6
  3. schubmult/_tests.py +9 -0
  4. schubmult/sage_integration/__init__.py +1 -0
  5. schubmult/sage_integration/_fast_double_schubert_polynomial_ring.py +68 -11
  6. schubmult/sage_integration/_fast_schubert_polynomial_ring.py +43 -5
  7. schubmult/sage_integration/_indexing.py +11 -4
  8. schubmult/schubmult_double/__init__.py +6 -2
  9. schubmult/schubmult_double/__main__.py +1 -1
  10. schubmult/schubmult_double/_funcs.py +112 -32
  11. schubmult/schubmult_double/_script.py +109 -51
  12. schubmult/schubmult_py/__init__.py +5 -2
  13. schubmult/schubmult_py/__main__.py +1 -1
  14. schubmult/schubmult_py/_funcs.py +54 -9
  15. schubmult/schubmult_py/_script.py +33 -52
  16. schubmult/schubmult_q/__init__.py +1 -0
  17. schubmult/schubmult_q/__main__.py +1 -1
  18. schubmult/schubmult_q/_funcs.py +21 -37
  19. schubmult/schubmult_q/_script.py +19 -16
  20. schubmult/schubmult_q_double/__init__.py +1 -0
  21. schubmult/schubmult_q_double/__main__.py +1 -1
  22. schubmult/schubmult_q_double/_funcs.py +57 -24
  23. schubmult/schubmult_q_double/_script.py +200 -139
  24. {schubmult-2.0.2.dist-info → schubmult-2.0.3.dist-info}/METADATA +4 -4
  25. schubmult-2.0.3.dist-info/RECORD +30 -0
  26. {schubmult-2.0.2.dist-info → schubmult-2.0.3.dist-info}/WHEEL +1 -1
  27. schubmult-2.0.3.dist-info/entry_points.txt +5 -0
  28. {schubmult-2.0.2.dist-info → schubmult-2.0.3.dist-info}/top_level.txt +0 -1
  29. schubmult/schubmult_double/_vars.py +0 -18
  30. schubmult/schubmult_py/_vars.py +0 -3
  31. schubmult/schubmult_q/_vars.py +0 -18
  32. schubmult/schubmult_q_double/_vars.py +0 -21
  33. schubmult-2.0.2.dist-info/RECORD +0 -36
  34. schubmult-2.0.2.dist-info/entry_points.txt +0 -5
  35. tests/__init__.py +0 -0
  36. tests/test_fast_double_schubert.py +0 -145
  37. tests/test_fast_schubert.py +0 -38
  38. {schubmult-2.0.2.dist-info → schubmult-2.0.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,12 @@
1
1
  import sys
2
2
  import numpy as np
3
- from ._vars import var_x, var2, var3, var2_t, var3_t
4
- from ._funcs import schubmult, schubmult_db, mult_poly, nil_hecke, factor_out_q_keep_factored
3
+ from schubmult.schubmult_q_double._funcs import (
4
+ schubmult,
5
+ schubmult_db,
6
+ # mult_poly,
7
+ nil_hecke,
8
+ factor_out_q_keep_factored,
9
+ )
5
10
  from schubmult.schubmult_double import compute_positive_rep, posify, div_diff
6
11
  from symengine import expand, sympify, symarray
7
12
  from schubmult.perm_lib import (
@@ -23,9 +28,40 @@ from schubmult.perm_lib import (
23
28
  omega,
24
29
  )
25
30
  from schubmult._base_argparse import schub_argparse
31
+ from functools import cached_property
32
+
33
+
34
+ class _gvars:
35
+ @cached_property
36
+ def n(self):
37
+ return 100
38
+
39
+ # @cached_property
40
+ # def fvar(self):
41
+ # return 100
42
+
43
+ @cached_property
44
+ def var1(self):
45
+ return tuple(symarray("x", self.n).tolist())
46
+
47
+ @cached_property
48
+ def var2(self):
49
+ return tuple(symarray("y", self.n).tolist())
50
+
51
+ @cached_property
52
+ def var3(self):
53
+ return tuple(symarray("z", self.n).tolist())
54
+
55
+ @cached_property
56
+ def var_r(self):
57
+ return symarray("r", 100)
58
+
26
59
 
60
+ _vars = _gvars()
27
61
 
28
- def _display_full(coeff_dict, args, formatter, posified=None, var2=var2, var3=var3):
62
+
63
+ def _display_full(coeff_dict, args, formatter, posified=None, var2=_vars.var2, var3=_vars.var3):
64
+ raw_result_dict = {}
29
65
  mult = args.mult
30
66
 
31
67
  perms = args.perms
@@ -37,12 +73,17 @@ def _display_full(coeff_dict, args, formatter, posified=None, var2=var2, var3=va
37
73
  display_positive = args.display_positive
38
74
  expa = args.expa
39
75
  slow = args.slow
40
- nilhecke_apply = False
76
+ nilhecke_apply = False
77
+ subs_dict2 = {}
78
+ for i in range(1, 100):
79
+ sm = var2[1]
80
+ for j in range(1, i):
81
+ sm += _vars.var_r[j]
82
+ subs_dict2[var2[i]] = sm
41
83
 
42
84
  coeff_perms = list(coeff_dict.keys())
43
85
  coeff_perms.sort(key=lambda x: (inv(x), *x))
44
86
 
45
- var_r = symarray("r", 100)
46
87
  for perm in coeff_perms:
47
88
  val = coeff_dict[perm]
48
89
  if expand(val) != 0:
@@ -50,81 +91,85 @@ def _display_full(coeff_dict, args, formatter, posified=None, var2=var2, var3=va
50
91
  int(val)
51
92
  except Exception:
52
93
  val2 = 0
53
- if display_positive and not posified and not same:
94
+ if display_positive and not posified:
54
95
  q_dict = factor_out_q_keep_factored(val)
55
96
  for q_part in q_dict:
56
97
  try:
57
98
  val2 += q_part * int(q_dict[q_part])
58
99
  except Exception:
59
- try:
60
- if len(perms) == 2:
61
- u = tuple(permtrim([*perms[0]]))
62
- v = tuple(permtrim([*perms[1]]))
63
- if (
64
- len(perms) == 2
65
- and code(inverse(perms[1])) == medium_theta(inverse(perms[1]))
66
- and not mult
67
- and not slow
68
- and not nilhecke_apply
69
- ):
70
- val2 += q_part * q_dict[q_part]
71
- else:
72
- q_part2 = q_part
73
- if not mult and not nilhecke_apply and len(perms) == 2:
74
- qv = q_vector(q_part)
75
- u2, v2, w2 = u, v, perm
76
- u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
77
- while did_one:
100
+ if same:
101
+ to_add = q_part * expand(sympify(q_dict[q_part]).xreplace(subs_dict2))
102
+ val2 += to_add
103
+ else:
104
+ try:
105
+ if len(perms) == 2:
106
+ u = tuple(permtrim([*perms[0]]))
107
+ v = tuple(permtrim([*perms[1]]))
108
+ if (
109
+ len(perms) == 2
110
+ and code(inverse(perms[1])) == medium_theta(inverse(perms[1]))
111
+ and not mult
112
+ and not slow
113
+ and not nilhecke_apply
114
+ ):
115
+ val2 += q_part * q_dict[q_part]
116
+ else:
117
+ q_part2 = q_part
118
+ if not mult and not nilhecke_apply and len(perms) == 2:
119
+ qv = q_vector(q_part)
120
+ u2, v2, w2 = u, v, perm
78
121
  u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
79
- q_part2 = np.prod(
80
- [q_var[i + 1] ** qv[i] for i in range(len(qv))]
81
- )
82
- if q_part2 == 1:
83
- # reduced to classical coefficient
84
- val2 += q_part * posify(
85
- q_dict[q_part],
86
- u2,
87
- v2,
88
- w2,
89
- var2_t,
90
- var3_t,
91
- msg,
92
- False,
122
+ while did_one:
123
+ u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
124
+ q_part2 = np.prod(
125
+ [q_var[i + 1] ** qv[i] for i in range(len(qv))]
93
126
  )
127
+ if q_part2 == 1:
128
+ # reduced to classical coefficient
129
+ val2 += q_part * posify(
130
+ q_dict[q_part],
131
+ u2,
132
+ v2,
133
+ w2,
134
+ var2,
135
+ var3,
136
+ msg,
137
+ False,
138
+ )
139
+ else:
140
+ val2 += q_part * compute_positive_rep(
141
+ q_dict[q_part],
142
+ var2,
143
+ var3,
144
+ msg,
145
+ False,
146
+ )
94
147
  else:
95
148
  val2 += q_part * compute_positive_rep(
96
149
  q_dict[q_part],
97
- var2_t,
98
- var3_t,
150
+ var2,
151
+ var3,
99
152
  msg,
100
153
  False,
101
154
  )
155
+ except Exception as e:
156
+ if mult:
157
+ print(
158
+ "warning; --display-positive is on but result is not positive",
159
+ file=sys.stderr,
160
+ )
161
+ val2 = val
162
+ break
102
163
  else:
103
- val2 += q_part * compute_positive_rep(
104
- q_dict[q_part],
105
- var2_t,
106
- var3_t,
107
- msg,
108
- False,
164
+ print(
165
+ f"error; write to schubmult@gmail.com with the case {perms=} {perm=} {val=} {coeff_dict.get(perm,0)=}"
109
166
  )
110
- except Exception as e:
111
- if mult:
112
- print(
113
- "warning; --display-positive is on but result is not positive",
114
- file=sys.stderr,
115
- )
116
- val2 = val
117
- break
118
- else:
119
- print(
120
- f"error; write to schubmult@gmail.com with the case {perms=} {perm=} {val=} {coeff_dict.get(perm,0)=}"
121
- )
122
- print(f"Exception: {e}")
123
- import traceback
167
+ print(f"Exception: {e}")
168
+ import traceback
124
169
 
125
- traceback.print_exc()
126
- exit(1)
127
- if check and expand(val - val2) != 0:
170
+ traceback.print_exc()
171
+ exit(1)
172
+ if not same and check and expand(val - val2) != 0:
128
173
  if mult:
129
174
  val2 = val
130
175
  else:
@@ -133,26 +178,25 @@ def _display_full(coeff_dict, args, formatter, posified=None, var2=var2, var3=va
133
178
  )
134
179
  exit(1)
135
180
  val = val2
136
- if same and display_positive:
137
- if same:
138
- subs_dict = {}
139
- for i in range(1, 100):
140
- sm = var2[1]
141
- for j in range(1, i):
142
- sm += var_r[j]
143
- subs_dict[var2[i]] = sm
144
- val = sympify(coeff_dict[perm]).subs(subs_dict)
145
- elif expa:
181
+ if expa:
146
182
  val = expand(val)
147
183
  if val != 0:
148
184
  if ascode:
149
- print(f"{str(trimcode(perm))} {formatter(val)}")
185
+ raw_result_dict[tuple(trimcode(perm))] = val
186
+ if formatter:
187
+ print(f"{str(trimcode(perm))} {formatter(val)}")
150
188
  else:
151
- print(f"{str(perm)} {formatter(val)}")
189
+ raw_result_dict[tuple(perm)] = val
190
+ if formatter:
191
+ print(f"{str(perm)} {formatter(val)}")
192
+ return raw_result_dict
152
193
 
153
194
 
154
- def main():
155
- global var2, var3
195
+ def main(argv=None):
196
+ if argv is None:
197
+ argv = sys.argv
198
+ var2 = tuple(symarray("y", 100))
199
+ var3 = tuple(symarray("z", 100))
156
200
  try:
157
201
  sys.setrecursionlimit(1000000)
158
202
 
@@ -161,17 +205,24 @@ def main():
161
205
  "Compute coefficients of products of quantum double Schubert polynomials in the same or different sets of coefficient variables",
162
206
  yz=True,
163
207
  quantum=True,
208
+ argv=argv[1:],
164
209
  )
210
+ subs_dict2 = {}
211
+ for i in range(1, 100):
212
+ sm = var2[1]
213
+ for j in range(1, i):
214
+ sm += _vars.var_r[j]
215
+ subs_dict2[var2[i]] = sm
165
216
 
166
- mult = args.mult
167
- mulstring = args.mulstring
217
+ mult = args.mult # noqa: F841
218
+ mulstring = args.mulstring # noqa: F841
168
219
 
169
220
  perms = args.perms
170
221
 
171
222
  ascode = args.ascode
172
223
  msg = args.msg
173
224
  display_positive = args.display_positive
174
- pr = args.pr
225
+ pr = args.pr
175
226
  parabolic_index = [int(s) for s in args.parabolic]
176
227
  parabolic = len(parabolic_index) != 0
177
228
  slow = args.slow
@@ -212,18 +263,18 @@ def main():
212
263
  coeff_dict = schubmult_db(coeff_dict, perm, var2, var3)
213
264
  else:
214
265
  coeff_dict = schubmult(coeff_dict, perm, var2, var3)
215
- if mult:
216
- for v in var2:
217
- globals()[str(v)] = v
218
- for v in var3:
219
- globals()[str(v)] = v
220
- for v in var_x:
221
- globals()[str(v)] = v
222
- for v in q_var:
223
- globals()[str(v)] = v
224
-
225
- mul_exp = eval(mulstring)
226
- coeff_dict = mult_poly(coeff_dict, mul_exp)
266
+ # if mult:
267
+ # for v in var2:
268
+ # globals()[str(v)] = v
269
+ # for v in var3:
270
+ # globals()[str(v)] = v
271
+ # for v in var_x:
272
+ # globals()[str(v)] = v
273
+ # for v in q_var:
274
+ # globals()[str(v)] = v
275
+
276
+ # mul_exp = eval(mulstring)
277
+ # coeff_dict = mult_poly(coeff_dict, mul_exp)
227
278
 
228
279
  posified = False
229
280
  if parabolic:
@@ -271,67 +322,77 @@ def main():
271
322
  except Exception:
272
323
  pass
273
324
  q_val_part = q_dict[q_part]
274
- if display_positive and not same:
325
+ if display_positive:
275
326
  try:
276
327
  q_val_part = int(q_val_part)
277
328
  except Exception:
278
- try:
279
- if len(perms) == 2 and q_part == 1:
280
- u = permtrim([*perms[0]])
281
- v = permtrim([*perms[1]])
282
- q_val_part = posify(
283
- q_dict[q_part],
284
- tuple(u),
285
- tuple(v),
286
- w_1,
287
- var2_t,
288
- var3_t,
289
- msg,
290
- False,
291
- )
292
- else:
293
- qv = q_vector(q_part)
294
- u2, v2, w2 = perms[0], perms[1], w_1
295
- u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
296
- while did_one:
297
- u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
298
- q_part2 = np.prod(
299
- [q_var[i + 1] ** qv[i] for i in range(len(qv))]
300
- )
301
- if q_part2 == 1:
329
+ if same:
330
+ q_val_part = expand(sympify(q_val_part).xreplace(subs_dict2))
331
+ else:
332
+ try:
333
+ if len(perms) == 2 and q_part == 1:
334
+ u = permtrim([*perms[0]])
335
+ v = permtrim([*perms[1]])
302
336
  q_val_part = posify(
303
337
  q_dict[q_part],
304
- u2,
305
- v2,
306
- w2,
307
- var2_t,
308
- var3_t,
338
+ tuple(u),
339
+ tuple(v),
340
+ w_1,
341
+ var2,
342
+ var3,
309
343
  msg,
310
344
  False,
311
345
  )
312
346
  else:
313
- q_val_part = compute_positive_rep(
314
- q_dict[q_part],
315
- var2_t,
316
- var3_t,
317
- msg,
318
- False,
347
+ qv = q_vector(q_part)
348
+ u2, v2, w2 = perms[0], perms[1], w_1
349
+ u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
350
+ while did_one:
351
+ u2, v2, w2, qv, did_one = reduce_q_coeff(u2, v2, w2, qv)
352
+ q_part2 = np.prod(
353
+ [q_var[i + 1] ** qv[i] for i in range(len(qv))]
319
354
  )
320
- except Exception as e:
321
- print(
322
- f"error; write to schubmult@gmail.com with the case {perms=} {perm=} {q_part*q_val_part=} {coeff_dict.get(w_1,0)=}"
323
- )
324
- print(f"Exception: {e}")
325
- exit(1)
326
- coeff_dict_update[w] = coeff_dict_update.get(w, 0) + new_q_part * q_val_part
355
+ if q_part2 == 1:
356
+ q_val_part = posify(
357
+ q_dict[q_part],
358
+ u2,
359
+ v2,
360
+ w2,
361
+ var2,
362
+ var3,
363
+ msg,
364
+ False,
365
+ )
366
+ else:
367
+ q_val_part = compute_positive_rep(
368
+ q_dict[q_part],
369
+ var2,
370
+ var3,
371
+ msg,
372
+ False,
373
+ )
374
+ except Exception as e:
375
+ print(
376
+ f"error; write to schubmult@gmail.com with the case {perms=} {perm=} {q_part*q_val_part=} {coeff_dict.get(w_1,0)=}"
377
+ )
378
+ print(f"Exception: {e}")
379
+ exit(1)
380
+ coeff_dict_update[w] = (
381
+ coeff_dict_update.get(w, 0) + new_q_part * q_val_part
382
+ )
327
383
 
328
384
  coeff_dict = coeff_dict_update
329
385
 
330
- if pr:
331
- _display_full(coeff_dict, args, formatter, posified)
386
+ raw_result_dict = {}
387
+ if pr or formatter is None:
388
+ raw_result_dict = _display_full(coeff_dict, args, formatter, posified)
389
+ if formatter is None:
390
+ return raw_result_dict
332
391
  except BrokenPipeError:
333
392
  pass
334
393
 
335
394
 
336
395
  if __name__ == "__main__":
337
- main()
396
+ import sys
397
+
398
+ main(sys.argv)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: schubmult
3
- Version: 2.0.2
3
+ Version: 2.0.3
4
4
  Summary: Package for algebraic computation with single, double, and quantum Schubert polynomials
5
5
  Author-email: Matt Samuel <schubmult@gmail.com>
6
6
  Maintainer-email: Matt Samuel <schubmult@gmail.com>
@@ -18,7 +18,7 @@ Requires-Dist: sympy>=1.12
18
18
  Requires-Dist: psutil
19
19
  Requires-Dist: cachetools
20
20
  Requires-Dist: sortedcontainers
21
- Requires-Dist: setuptools>=71.0.0
21
+ Requires-Dist: setuptools
22
22
  Provides-Extra: sage
23
23
  Requires-Dist: sagemath-standard; extra == "sage"
24
24
  Dynamic: license-file
@@ -207,8 +207,8 @@ This will install the [sagemath-standard](https://pypi.org/project/sagemath-stan
207
207
  ## Basic sage example
208
208
 
209
209
  ```python
210
- sage: from schubmult.sage_integration import FastSchubertPolynomial, FastDoubleSchubertPolynomialRing,
211
- FastQuantumSchubertPolynomial, FastQuantumDoubleSchubertPolynomialRing
210
+ sage: from schubmult.sage_integration import FastSchubertPolynomialRing, FastDoubleSchubertPolynomialRing,
211
+ FastQuantumSchubertPolynomialRing, FastQuantumDoubleSchubertPolynomialRing
212
212
  sage: SingleRing = FastSchubertPolynomialRing(ZZ, 100, "x")
213
213
  sage: SingleRing([3,4,1,2])
214
214
  Sx[3, 4, 1, 2]
@@ -0,0 +1,30 @@
1
+ schubmult/__init__.py,sha256=HFL2NgNf74s56viRPRlgp_rAmKP1MzrtnJeQ8LxF_8M,21
2
+ schubmult/_base_argparse.py,sha256=m6Ffzb2Ec7kxdH_bH9iFtIOTjKR6bpyFXccPnviFlq4,6213
3
+ schubmult/_tests.py,sha256=SmN_w9FsUDXZKttuzrfAeiP2zLUtF5M5pIH3DLoKOa8,260
4
+ schubmult/perm_lib.py,sha256=Q2Z_8fIDzBE2Y-f9BMEqmxyxRWw-Auu2vuyjO02v5-k,31815
5
+ schubmult/sage_integration/__init__.py,sha256=YMco9u--i3SYl4KXeO_EqS4zKIIqZo0mCVccm3KsbNk,799
6
+ schubmult/sage_integration/_fast_double_schubert_polynomial_ring.py,sha256=RxzBGprT1fOeail4e6V90hMDrbM2RSJc4p5LvA8qDds,22068
7
+ schubmult/sage_integration/_fast_schubert_polynomial_ring.py,sha256=Nv9lWTuUfPRTOAu_Ge-lTBa_2vzCoOZXpVIb-Txw6WE,14156
8
+ schubmult/sage_integration/_indexing.py,sha256=EYRkGaOIwftC3huvto8toqdVrnjezdzmVhego6RDmQ4,2007
9
+ schubmult/schubmult_double/__init__.py,sha256=Cc-yVBj53VXxe20KdyVdF-W1LsPU_mRutXUy6yN-xh4,307
10
+ schubmult/schubmult_double/__main__.py,sha256=xi7dE5cpRZzkK-LVOGAGyaNDBdC-YGzUJJPcuB6T2rQ,99
11
+ schubmult/schubmult_double/_funcs.py,sha256=znzIKO4yGw7LOTWc_yaiFGCoQQ8tGQScgeYeSrmtzQw,53819
12
+ schubmult/schubmult_double/_script.py,sha256=i8HCnub_VGgCuolZiPNxFaNtYF2auUwyqVpew59eNtg,17360
13
+ schubmult/schubmult_py/__init__.py,sha256=wdzFhh9fdNl_uSaPtyfXf1D6EfjJE7ycOoEkKi-8j8Y,142
14
+ schubmult/schubmult_py/__main__.py,sha256=xi7dE5cpRZzkK-LVOGAGyaNDBdC-YGzUJJPcuB6T2rQ,99
15
+ schubmult/schubmult_py/_funcs.py,sha256=tGmJTz3FT7AAL4iwnpBEXJhdTVbwlr3dY1ddJkWrnvo,4803
16
+ schubmult/schubmult_py/_script.py,sha256=oiKOKLe8EicpesZTeFucJSuKoG-u7oceexCY6Fn0f9Q,3270
17
+ schubmult/schubmult_q/__init__.py,sha256=OIDt8M_rWHZdKMl38NKyxCXJrBZhNiD0WpqxDjZU1Eg,141
18
+ schubmult/schubmult_q/__main__.py,sha256=xi7dE5cpRZzkK-LVOGAGyaNDBdC-YGzUJJPcuB6T2rQ,99
19
+ schubmult/schubmult_q/_funcs.py,sha256=tf1eNFs1gdrrmzut0CHMO675j518cGRjHiQYzkkRmbA,10131
20
+ schubmult/schubmult_q/_script.py,sha256=ZznlsTfih_4MgFnTnpkLkaIm00lQwK2fvBjZr4hS-to,5018
21
+ schubmult/schubmult_q_double/__init__.py,sha256=IGDsxBS5mHTbPXXJ6Pra9LUmIm2HfhnAAU0EJKxMOOc,255
22
+ schubmult/schubmult_q_double/__main__.py,sha256=xi7dE5cpRZzkK-LVOGAGyaNDBdC-YGzUJJPcuB6T2rQ,99
23
+ schubmult/schubmult_q_double/_funcs.py,sha256=HAD4DajZbGvmrAS66C9haUHA0B7Bdb4SN652GAeQgzY,19218
24
+ schubmult/schubmult_q_double/_script.py,sha256=6bSkcpMoYjCktJzXz3N80as01teBtw4ZuAvJ5m6Vusw,16478
25
+ schubmult-2.0.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
26
+ schubmult-2.0.3.dist-info/METADATA,sha256=MrrmzKDk_lc_WypnLh8HM-oR0v4LeROQ-JXGCKSyJSM,32373
27
+ schubmult-2.0.3.dist-info/WHEEL,sha256=L0N565qmK-3nM2eBoMNFszYJ_MTx03_tQ0CQu1bHLYo,91
28
+ schubmult-2.0.3.dist-info/entry_points.txt,sha256=_W_Xff08pmbrTZGBhRrU4n9jOIMaco9S_cqE17Tb4r4,240
29
+ schubmult-2.0.3.dist-info/top_level.txt,sha256=IkujyjRu8lbpoSTdPE8DmMJ9sbyXHpo9L0RHL7nOzM0,10
30
+ schubmult-2.0.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (77.0.3)
2
+ Generator: setuptools (78.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,5 @@
1
+ [console_scripts]
2
+ schubmult_double = schubmult.schubmult_double._script:main
3
+ schubmult_py = schubmult.schubmult_py._script:main
4
+ schubmult_q = schubmult.schubmult_q._script:main
5
+ schubmult_q_double = schubmult.schubmult_q_double._script:main
@@ -1,18 +0,0 @@
1
- from symengine import symarray
2
-
3
- n = 100
4
- fvar = 0
5
-
6
- var = tuple(symarray("x", n).tolist())
7
- var2 = tuple(symarray("y", n).tolist())
8
- var3 = tuple(symarray("z", n).tolist())
9
-
10
- var_x = symarray("x", 100).tolist()
11
- var_y = var2
12
- var_z = var3
13
-
14
- x = var_x
15
- y = var_y
16
- z = var_z
17
-
18
- var_r = symarray("r", 100)
@@ -1,3 +0,0 @@
1
- from symengine import symarray
2
-
3
- var_x = symarray("x", 100).tolist()
@@ -1,18 +0,0 @@
1
- from symengine import symarray
2
-
3
- n = 100
4
-
5
- var = symarray("x", n)
6
- var2 = symarray("y", n)
7
- var3 = var2
8
- var_r = symarray("r", n)
9
-
10
- subs_dict = {}
11
-
12
- var_x = symarray("x", 100).tolist()
13
-
14
- for i in range(1, n):
15
- sm = var_r[0]
16
- for j in range(1, i):
17
- sm += var_r[j]
18
- subs_dict[var2[i]] = sm
@@ -1,21 +0,0 @@
1
- from symengine import symarray
2
- from schubmult.perm_lib import q_var
3
-
4
- var2 = symarray("y", 100)
5
- var3 = symarray("z", 100)
6
-
7
- var_y = var2.tolist()
8
- var_z = var3.tolist()
9
- var_x = symarray("x", 100).tolist()
10
-
11
- x = var_x
12
- y = var_y
13
- z = var_z
14
-
15
- q_var2 = q_var.tolist()
16
-
17
- var2_t = tuple(var2.tolist())
18
- var3_t = tuple(var3.tolist())
19
-
20
- n = 100
21
-
@@ -1,36 +0,0 @@
1
- schubmult/__init__.py,sha256=xARS6PXiulA1Bog5UZUM6hqQfydeRzKLyWtOyUBL-Ss,21
2
- schubmult/_base_argparse.py,sha256=Gpr2rKcjmXH4Ufl84e0s7mX-ezDrMUZSUiZ5PPg2ndY,5523
3
- schubmult/perm_lib.py,sha256=Q2Z_8fIDzBE2Y-f9BMEqmxyxRWw-Auu2vuyjO02v5-k,31815
4
- schubmult/sage_integration/__init__.py,sha256=_EeNYfhM92qVbabAPJ9jdwedhD750D--EpIhWzkAP1o,797
5
- schubmult/sage_integration/_fast_double_schubert_polynomial_ring.py,sha256=mtlcjrqrOuJm0jXPlkDL49Kt3y4zalBZ7YcSgWBtsUw,20067
6
- schubmult/sage_integration/_fast_schubert_polynomial_ring.py,sha256=V2x2IEezPtNyn1Xh9KPW2Ajm1slRK_6i_CrGT9dDBK4,12957
7
- schubmult/sage_integration/_indexing.py,sha256=29zYqbylKJZz9XqYGfJXFfeaYa3ifXtxpEQIvAQEfI4,1576
8
- schubmult/schubmult_double/__init__.py,sha256=2-mZz_moyqcq1ncx7_YB6FNtztNycHZvGiJjtRlLPiE,256
9
- schubmult/schubmult_double/__main__.py,sha256=qhN6z5Evi4PakpzTM4wXHsYCSwfA0T-M2RYDzVcmNdE,91
10
- schubmult/schubmult_double/_funcs.py,sha256=XMf3b1RZEus10zM0zE1gQU8iHJIreYeAhEmNCVTVtds,51551
11
- schubmult/schubmult_double/_script.py,sha256=I_IAvlpVeleYJj3uaWe8-vZWLTfAvLRJ2WrU9vRnMgI,15180
12
- schubmult/schubmult_double/_vars.py,sha256=YjtEmP7TEx64WFq8PIE2Zfx62fOALGwynunnOapSKPI,290
13
- schubmult/schubmult_py/__init__.py,sha256=WCH_afeTqjjozAFkqJDyO1t62U0PRXsZF8r8JKNjs7s,102
14
- schubmult/schubmult_py/__main__.py,sha256=qhN6z5Evi4PakpzTM4wXHsYCSwfA0T-M2RYDzVcmNdE,91
15
- schubmult/schubmult_py/_funcs.py,sha256=G9nw3GNLIiY09Xq6L0nZVOwWx9C8q1FN2-7jhn-3_0M,3440
16
- schubmult/schubmult_py/_script.py,sha256=Y4qkqTaq1v0YZV3cUURUS9YIvRrwpeJWN3f59HrM3-g,3930
17
- schubmult/schubmult_py/_vars.py,sha256=10b7uZhrKg65eMdInI_74CMnhGOXMxInxhMqKbp_hco,68
18
- schubmult/schubmult_q/__init__.py,sha256=9RA1-qRIe1A5EumnXTygFrasdeJZHh9o-WESZJ9X3tw,140
19
- schubmult/schubmult_q/__main__.py,sha256=qhN6z5Evi4PakpzTM4wXHsYCSwfA0T-M2RYDzVcmNdE,91
20
- schubmult/schubmult_q/_funcs.py,sha256=RQZG-zKQtpjWmlxcSmvUzOBA6Vh0zWPq4muDqc2uTQE,10453
21
- schubmult/schubmult_q/_script.py,sha256=lRdScEcdSFPa8oJvxJkkfpnXPLTL3X6acbuGaRhvEEg,4870
22
- schubmult/schubmult_q/_vars.py,sha256=dU1f9CgMersgRpP9dld7ViRkyLA76sqx7ejq0JM1ECs,295
23
- schubmult/schubmult_q_double/__init__.py,sha256=WuCChjSQM5f7bzaHbyKOyCtdl8mBLav1T-ycGpY87Uc,254
24
- schubmult/schubmult_q_double/__main__.py,sha256=qhN6z5Evi4PakpzTM4wXHsYCSwfA0T-M2RYDzVcmNdE,91
25
- schubmult/schubmult_q_double/_funcs.py,sha256=cmxKSCkmBAan0W9FNXJA1NIZiK4iC7mrQJjDMXv8gbM,18388
26
- schubmult/schubmult_q_double/_script.py,sha256=dzTIljHMv7B-YUk6l99SxuUWRxpWW69k12xVZ17Q5QQ,14418
27
- schubmult/schubmult_q_double/_vars.py,sha256=JPL4kUPRtxkBJU9FkjA4mThNMbNVev5w_SmTcEsGvoM,329
28
- schubmult-2.0.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
29
- tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- tests/test_fast_double_schubert.py,sha256=TGzjZ4kbsGpRncwHI-KNQlwOVo76ESQdCWuQxM3z0v4,4980
31
- tests/test_fast_schubert.py,sha256=cF1Wckg-FBycCxv0KYASIpAPQ7AOYqmtGJl9Q_puKXA,1315
32
- schubmult-2.0.2.dist-info/METADATA,sha256=Su5rRAogn-dOzhLLACjSm7Jd1ngrsbE3O_VbVjnlhu4,32373
33
- schubmult-2.0.2.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
34
- schubmult-2.0.2.dist-info/entry_points.txt,sha256=FN_a2Ct5ZWBWWjST2GKx1h-VjU_c0UIkpnNeyevHPuo,244
35
- schubmult-2.0.2.dist-info/top_level.txt,sha256=zYdC9Gl5JX_FHOKDElw9g21WKiJTL2-cGBAXbC92Lo8,16
36
- schubmult-2.0.2.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- [console_scripts]
2
- schubmult_double = schubmult.schubmult_double.__main__:main
3
- schubmult_py = schubmult.schubmult_py.__main__:main
4
- schubmult_q = schubmult.schubmult_q.__main__:main
5
- schubmult_q_double = schubmult.schubmult_q_double.__main__:main
tests/__init__.py DELETED
File without changes