schubmult 1.4.1__tar.gz → 1.4.2__tar.gz

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 (31) hide show
  1. {schubmult-1.4.1 → schubmult-1.4.2}/PKG-INFO +1 -1
  2. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/perm_lib.py +16 -0
  3. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_yz/schubmult_q_yz.py +1 -1
  4. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_yz/schubmult_yz.py +49 -49
  5. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/PKG-INFO +1 -1
  6. {schubmult-1.4.1 → schubmult-1.4.2}/setup.py +1 -1
  7. {schubmult-1.4.1 → schubmult-1.4.2}/LICENSE +0 -0
  8. {schubmult-1.4.1 → schubmult-1.4.2}/README.md +0 -0
  9. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/__init__.py +0 -0
  10. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_double/__init__.py +0 -0
  11. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_double/__main__.py +0 -0
  12. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_double/schubmult_double.py +0 -0
  13. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_py/__init__.py +0 -0
  14. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_py/__main__.py +0 -0
  15. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_py/schubmult_py.py +0 -0
  16. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q/__init__.py +0 -0
  17. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q/__main__.py +0 -0
  18. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q/schubmult_q.py +0 -0
  19. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_double/__init__.py +0 -0
  20. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_double/__main__.py +0 -0
  21. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_double/schubmult_q_double.py +0 -0
  22. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_yz/__init__.py +0 -0
  23. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_q_yz/__main__.py +0 -0
  24. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_yz/__init__.py +0 -0
  25. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult/schubmult_yz/__main__.py +0 -0
  26. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/SOURCES.txt +0 -0
  27. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/dependency_links.txt +0 -0
  28. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/entry_points.txt +0 -0
  29. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/requires.txt +0 -0
  30. {schubmult-1.4.1 → schubmult-1.4.2}/schubmult.egg-info/top_level.txt +0 -0
  31. {schubmult-1.4.1 → schubmult-1.4.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: schubmult
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Computing Littlewood-Richardson coefficients of Schubert polynomials
5
5
  Home-page: https://github.com/matthematics/schubmult
6
6
  Author: Matt Samuel
@@ -307,6 +307,22 @@ def reduce_q_coeff(u, v, w, qv):
307
307
  if i>=len(w)-1 or w[i]<w[i+1]:
308
308
  qv_ret[i] -= 1
309
309
  return tuple(permtrim(ret_u)), v, tuple(permtrim(ret_w)), qv_ret, True
310
+ elif i<len(u)-1 and u[i]>u[i+1] and (i>=len(v)-1 or v[i]<v[i+1]) and sg(i,w)==1 and omega(i+1,qv) == 0:
311
+ ret_u = [*u]
312
+ ret_u[i], ret_u[i+1] = ret_u[i+1], ret_u[i]
313
+ ret_w = [*w] + [j+1 for j in range(len(w),i+2)]
314
+ ret_w[i], ret_w[i+1] = ret_w[i+1], ret_w[i]
315
+ qv_ret = [*qv]
316
+ #print("Blop u")
317
+ return tuple(permtrim(ret_u)), v, tuple(permtrim(ret_w)), qv_ret, True
318
+ elif i<len(v)-1 and v[i]>v[i+1] and (i>=len(u)-1 or u[i]<u[i+1]) and sg(i,w) == 1 and omega(i+1,qv) == 0:
319
+ ret_v = [*v]
320
+ ret_v[i], ret_v[i+1] = ret_v[i+1], ret_v[i]
321
+ ret_w = [*w] + [j+1 for j in range(len(w),i+2)]
322
+ ret_w[i], ret_w[i+1] = ret_w[i+1], ret_w[i]
323
+ qv_ret = qv
324
+ #print("Blop v")
325
+ return u, tuple(permtrim(ret_v)), tuple(permtrim(ret_w)), qv_ret, True
310
326
  return u, v, w, qv, False
311
327
 
312
328
  # perms and inversion diff
@@ -524,7 +524,7 @@ def main():
524
524
  q_part2 = np.prod([q_var[i+1]**qv[i] for i in range(len(qv))])
525
525
  if q_part2 == 1:
526
526
  #if q_part != q_part2:
527
- # print("Posified q part")
527
+ # print(f"Posified q part {q_part} {q_dict[q_part]=}")
528
528
  val2 += q_part*posify(q_dict[q_part],u2,v2,w2,var2_t,var3_t,msg,False)
529
529
  else:
530
530
  val2 += q_part*compute_positive_rep(q_dict[q_part],var2_t,var3_t,msg,False)
@@ -1315,55 +1315,55 @@ def posify(val,u2,v2,w2,var2=var2,var3=var3,msg=False,do_pos_neg=True,sign_only=
1315
1315
  val2 = schubmult_one(tuple(permtrim(u3)),tuple(permtrim(v3)),var2,var3).get(tuple(permtrim(w3)),0)
1316
1316
  val2 = posify(val2,u3,tuple(permtrim(v3)),w3,var2,var3,msg,do_pos_neg)
1317
1317
  val += tomul*shiftsub(val2)
1318
- elif inv(w)-inv(u)==2 and len(trimcode(u)) == len(trimcode(w)):
1319
- indices = []
1320
- for i in range(len(w)):
1321
- if i>=len(u) or u[i]!=w[i]:
1322
- indices += [i+1]
1323
- arr = [[[],v]]
1324
- d = -1
1325
- for i in range(len(v)-1):
1326
- if v[i]>v[i+1]:
1327
- d = i + 1
1328
- for i in range(d):
1329
- arr2 = []
1330
-
1331
- if i+1 in indices:
1332
- continue
1333
- i2 = 1
1334
- i2 += len([aa for aa in indices if i+1>aa])
1335
- for vr, v2 in arr:
1336
- dpret = pull_out_var(i2,[*v2])
1337
- for v3r, v3 in dpret:
1338
- arr2 += [[vr + [(v3r,i+1)],v3]]
1339
- arr = arr2
1340
- val = 0
1341
-
1342
- for L in arr:
1343
- v3 = [*L[-1]]
1344
- tomul = 1
1345
- toadd = 1
1346
- for i in range(len(L[0])):
1347
- var_index = L[0][i][1]
1348
- oaf = L[0][i][0]
1349
- if var_index-1>=len(w):
1350
- yv = var_index
1351
- else:
1352
- yv = w[var_index-1]
1353
- for j in range(len(oaf)):
1354
- toadd*= var2[yv] - var3[oaf[j]]
1355
- pooly = skew_div_diff(u,w,schubpoly(v3,[0,*[var2[a] for a in indices]],var3))
1356
- if toadd == 0:
1357
- continue
1358
- if pooly !=0:
1359
- coeff = compute_positive_rep(pooly,var2,var3,msg,False)
1360
- else:
1361
- coeff = 0
1362
- if coeff == -1:
1363
- return -1
1364
- tomul = sympify(coeff)
1365
- toadd*=tomul#.subs(subs_dict3)
1366
- val += toadd
1318
+ #elif inv(w)-inv(u)==2 and len(trimcode(u)) == len(trimcode(w)):
1319
+ # indices = []
1320
+ # for i in range(len(w)):
1321
+ # if i>=len(u) or u[i]!=w[i]:
1322
+ # indices += [i+1]
1323
+ # arr = [[[],v]]
1324
+ # d = -1
1325
+ # for i in range(len(v)-1):
1326
+ # if v[i]>v[i+1]:
1327
+ # d = i + 1
1328
+ # for i in range(d):
1329
+ # arr2 = []
1330
+ #
1331
+ # if i+1 in indices:
1332
+ # continue
1333
+ # i2 = 1
1334
+ # i2 += len([aa for aa in indices if i+1>aa])
1335
+ # for vr, v2 in arr:
1336
+ # dpret = pull_out_var(i2,[*v2])
1337
+ # for v3r, v3 in dpret:
1338
+ # arr2 += [[vr + [(v3r,i+1)],v3]]
1339
+ # arr = arr2
1340
+ # val = 0
1341
+ #
1342
+ # for L in arr:
1343
+ # v3 = [*L[-1]]
1344
+ # tomul = 1
1345
+ # toadd = 1
1346
+ # for i in range(len(L[0])):
1347
+ # var_index = L[0][i][1]
1348
+ # oaf = L[0][i][0]
1349
+ # if var_index-1>=len(w):
1350
+ # yv = var_index
1351
+ # else:
1352
+ # yv = w[var_index-1]
1353
+ # for j in range(len(oaf)):
1354
+ # toadd*= var2[yv] - var3[oaf[j]]
1355
+ # pooly = skew_div_diff(u,w,schubpoly(v3,[0,*[var2[a] for a in indices]],var3))
1356
+ # if toadd == 0:
1357
+ # continue
1358
+ # if pooly !=0:
1359
+ # coeff = compute_positive_rep(pooly,var2,var3,msg,False)
1360
+ # else:
1361
+ # coeff = 0
1362
+ # if coeff == -1:
1363
+ # return -1
1364
+ # tomul = sympify(coeff)
1365
+ # toadd*=tomul#.subs(subs_dict3)
1366
+ # val += toadd
1367
1367
  else:
1368
1368
  if not sign_only:
1369
1369
  if inv(u)+inv(v)-inv(w)==1:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: schubmult
3
- Version: 1.4.1
3
+ Version: 1.4.2
4
4
  Summary: Computing Littlewood-Richardson coefficients of Schubert polynomials
5
5
  Home-page: https://github.com/matthematics/schubmult
6
6
  Author: Matt Samuel
@@ -6,7 +6,7 @@ long_description = (this_directory / "README.md").read_text()
6
6
 
7
7
  setup(
8
8
  name="schubmult",
9
- version="1.4.1",
9
+ version="1.4.2",
10
10
  description="Computing Littlewood-Richardson coefficients of Schubert polynomials",
11
11
  long_description=long_description,
12
12
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes