foscat 3.0.22__py3-none-any.whl → 3.0.24__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.
foscat/FoCUS.py CHANGED
@@ -32,7 +32,7 @@ class FoCUS:
32
32
  mpi_size=1,
33
33
  mpi_rank=0):
34
34
 
35
- self.__version__ = '3.0.22'
35
+ self.__version__ = '3.0.24'
36
36
  # P00 coeff for normalization for scat_cov
37
37
  self.TMPFILE_VERSION=TMPFILE_VERSION
38
38
  self.P1_dic = None
foscat/scat_cov.py CHANGED
@@ -34,6 +34,9 @@ class scat_cov:
34
34
  self.idx2 = None
35
35
 
36
36
  def numpy(self):
37
+ if self.BACKEND=='numpy':
38
+ return self
39
+
37
40
  if self.S1 is None:
38
41
  s1 = None
39
42
  else:
@@ -688,11 +691,18 @@ class scat_cov:
688
691
  return scat_cov(self.P00,self.C01,self.C11,s1=self.S1,c10=self.C10,backend=self.backend)
689
692
 
690
693
  if self.S1 is not None:
691
- s1=self.S1.numpy()
694
+ if self.BACKEND=='numpy':
695
+ s1=self.S1
696
+ else:
697
+ s1=self.S1.numpy()
692
698
  else:
693
699
  s1=self.S1
694
700
 
695
- p0=self.P00.numpy()
701
+ if self.BACKEND=='numpy':
702
+ p0=self.P00
703
+ else:
704
+ p0=self.P00.numpy()
705
+
696
706
  for k in range(nscale):
697
707
  if constant:
698
708
  if self.S1 is not None:
@@ -706,10 +716,16 @@ class scat_cov:
706
716
  j1,j2=self.get_j_idx()
707
717
 
708
718
  if self.C10 is not None:
709
- c10=self.C10.numpy()
719
+ if self.BACKEND=='numpy':
720
+ c10=self.C10
721
+ else:
722
+ c10=self.C10.numpy()
710
723
  else:
711
724
  c10=self.C10
712
- c01=self.C01.numpy()
725
+ if self.BACKEND=='numpy':
726
+ c01=self.C01
727
+ else:
728
+ c01=self.C01.numpy()
713
729
 
714
730
  for k in range(nscale):
715
731
 
@@ -724,8 +740,12 @@ class scat_cov:
724
740
  c10[:,:,i0]=np.exp(2*np.log(c10[:,:,i1])-np.log(c10[:,:,i2]))
725
741
  c01[:,:,i0]=np.exp(2*np.log(c01[:,:,i1])-np.log(c01[:,:,i2]))
726
742
 
727
-
728
- c11=self.C11.numpy()
743
+
744
+ if self.BACKEND=='numpy':
745
+ c11=self.C11
746
+ else:
747
+ c11=self.C11.numpy()
748
+
729
749
  j1,j2,j3=self.get_jc11_idx()
730
750
 
731
751
  for k in range(nscale):
@@ -835,7 +855,7 @@ class scat_cov:
835
855
  for i4 in range(tmp.shape[4]):
836
856
  dtmp=tmp[i0,i1,j1==i2,i3,i4]
837
857
  if norm:
838
- dtmp=dtmp/ntmp[i0,i1,i2,i3]
858
+ dtmp=dtmp/(ntmp[i0,i1,i2,i3]*ntmp[i0,i1,j2[j1==i2],i3])
839
859
  if j2[j1==i2].shape[0]==1:
840
860
  ax1.plot(j2[j1==i2]+n,dtmp,'.', \
841
861
  color=color, lw=lw)
@@ -859,7 +879,7 @@ class scat_cov:
859
879
  for i3 in range(tmp.shape[3]):
860
880
  dtmp=tmp[i0,i1,j1==i2,i3]
861
881
  if norm:
862
- dtmp=dtmp/ntmp[i0,i1,i2]
882
+ dtmp=dtmp/(ntmp[i0,i1,i2]*ntmp[i0,i1,j2[j1==i2]])
863
883
  if j2[j1==i2].shape[0]==1:
864
884
  ax1.plot(j2[j1==i2]+n,dtmp,'.', \
865
885
  color=color, lw=lw)
@@ -914,7 +934,7 @@ class scat_cov:
914
934
  tabnx=[]
915
935
  tab2x=[]
916
936
  tab2nx=[]
917
- ntmp=ntmp*ntmp
937
+ ntmp=ntmp
918
938
  if len(tmp.shape)>4:
919
939
  for i0 in range(tmp.shape[0]):
920
940
  for i1 in range(tmp.shape[1]):
@@ -927,7 +947,7 @@ class scat_cov:
927
947
  for i5 in range(tmp.shape[5]):
928
948
  dtmp=tmp[i0,i1,idx,i3,i4,i5]
929
949
  if norm:
930
- dtmp=dtmp/ntmp[i0,i1,i2,i3]
950
+ dtmp=dtmp/(ntmp[i0,i1,i2,i3]*ntmp[i0,i1,i2b,i3])
931
951
  if len(idx)==1:
932
952
  ax1.plot(np.arange(len(idx))+n,dtmp,'.', \
933
953
  color=color, lw=lw)
@@ -954,7 +974,7 @@ class scat_cov:
954
974
  for i3 in range(tmp.shape[3]):
955
975
  dtmp=tmp[i0,i1,idx,i3]
956
976
  if norm:
957
- dtmp=dtmp/ntmp[i0,i1,i2]
977
+ dtmp=dtmp/(ntmp[i0,i1,i2]*ntmp[i0,i1,i2b])
958
978
  if len(idx)==1:
959
979
  ax1.plot(np.arange(len(idx))+n,dtmp,'.', \
960
980
  color=color, lw=lw)
@@ -1329,14 +1349,20 @@ class scat_cov:
1329
1349
 
1330
1350
  inscale=self.P00.shape[2]
1331
1351
  p00=np.zeros([self.P00.shape[0],self.P00.shape[1],nscale,self.P00.shape[3]],dtype='complex')
1332
- p00[:,:,noff:,:]=self.P00.numpy()
1352
+ if self.BACKEND=='numpy':
1353
+ p00[:,:,noff:,:]=self.P00
1354
+ else:
1355
+ p00[:,:,noff:,:]=self.P00.numpy()
1333
1356
  for i in range(self.P00.shape[0]):
1334
1357
  for j in range(self.P00.shape[1]):
1335
1358
  for k in range(self.P00.shape[3]):
1336
1359
  p00[i,j,0:noff,k]=self.add_data_from_log_slope(p00[i,j,noff:,k],noff,ds=ds)
1337
1360
 
1338
1361
  s1=np.zeros([self.S1.shape[0],self.S1.shape[1],nscale,self.S1.shape[3]])
1339
- s1[:,:,noff:,:]=self.S1.numpy()
1362
+ if self.BACKEND=='numpy':
1363
+ s1[:,:,noff:,:]=self.S1
1364
+ else:
1365
+ s1[:,:,noff:,:]=self.S1.numpy()
1340
1366
  for i in range(self.S1.shape[0]):
1341
1367
  for j in range(self.S1.shape[1]):
1342
1368
  for k in range(self.S1.shape[3]):
@@ -1373,8 +1399,12 @@ class scat_cov:
1373
1399
  for l in range(self.C01.shape[4]):
1374
1400
  for ij in range(noff+1,nscale):
1375
1401
  idx=np.where(jo2==ij)[0]
1376
- c01[i,j,idx[noff:],k,l]=self.C01.numpy()[i,j,j2==ij-noff,k,l]
1377
- c01[i,j,idx[:noff],k,l]=self.add_data_from_slope(self.C01.numpy()[i,j,j2==ij-noff,k,l],noff,ds=ds)
1402
+ if self.BACKEND=='numpy':
1403
+ c01[i,j,idx[noff:],k,l]=self.C01[i,j,j2==ij-noff,k,l]
1404
+ c01[i,j,idx[:noff],k,l]=self.add_data_from_slope(self.C01[i,j,j2==ij-noff,k,l],noff,ds=ds)
1405
+ else:
1406
+ c01[i,j,idx[noff:],k,l]=self.C01.numpy()[i,j,j2==ij-noff,k,l]
1407
+ c01[i,j,idx[:noff],k,l]=self.add_data_from_slope(self.C01.numpy()[i,j,j2==ij-noff,k,l],noff,ds=ds)
1378
1408
 
1379
1409
  for ij in range(nscale):
1380
1410
  idx=np.where(jo1==ij)[0]
@@ -1432,8 +1462,12 @@ class scat_cov:
1432
1462
  for k in range(self.C11.shape[3]):
1433
1463
  for l in range(self.C11.shape[4]):
1434
1464
  for m in range(self.C11.shape[5]):
1435
- c11[i,j,idx2[noff:],k,l,m]=self.C11.numpy()[i,j,idx,k,l,m]
1436
- c11[i,j,idx2[:noff],k,l,m]=self.add_data_from_log_slope(self.C11.numpy()[i,j,idx,k,l,m],noff,ds=ds)
1465
+ if self.BACKEND=='numpy':
1466
+ c11[i,j,idx2[noff:],k,l,m]=self.C11[i,j,idx,k,l,m]
1467
+ c11[i,j,idx2[:noff],k,l,m]=self.add_data_from_log_slope(self.C11[i,j,idx,k,l,m],noff,ds=ds)
1468
+ else:
1469
+ c11[i,j,idx2[noff:],k,l,m]=self.C11.numpy()[i,j,idx,k,l,m]
1470
+ c11[i,j,idx2[:noff],k,l,m]=self.add_data_from_log_slope(self.C11.numpy()[i,j,idx,k,l,m],noff,ds=ds)
1437
1471
 
1438
1472
  idx=np.where(abs(c11[0,0,:,0,0,0])==0)[0]
1439
1473
  for iii in idx:
@@ -1476,15 +1510,25 @@ class funct(FOC.FoCUS):
1476
1510
  S0=None
1477
1511
  for k in list_scat:
1478
1512
  tmp=list_scat[k]
1479
- nS0=np.expand_dims(tmp.S0.numpy(),0)
1480
- nP00=np.expand_dims(tmp.P00.numpy(),0)
1481
- nC01=np.expand_dims(tmp.C01.numpy(),0)
1482
- nC11=np.expand_dims(tmp.C11.numpy(),0)
1483
- if tmp.C10 is not None:
1484
- nC10=np.expand_dims(tmp.C10.numpy(),0)
1485
- if tmp.S1 is not None:
1486
- nS1=np.expand_dims(tmp.S1.numpy(),0)
1487
-
1513
+ if self.BACKEND=='numpy':
1514
+ nS0=np.expand_dims(tmp.S0,0)
1515
+ nP00=np.expand_dims(tmp.P00,0)
1516
+ nC01=np.expand_dims(tmp.C01,0)
1517
+ nC11=np.expand_dims(tmp.C11,0)
1518
+ if tmp.C10 is not None:
1519
+ nC10=np.expand_dims(tmp.C10,0)
1520
+ if tmp.S1 is not None:
1521
+ nS1=np.expand_dims(tmp.S1,0)
1522
+ else:
1523
+ nS0=np.expand_dims(tmp.S0.numpy(),0)
1524
+ nP00=np.expand_dims(tmp.P00.numpy(),0)
1525
+ nC01=np.expand_dims(tmp.C01.numpy(),0)
1526
+ nC11=np.expand_dims(tmp.C11.numpy(),0)
1527
+ if tmp.C10 is not None:
1528
+ nC10=np.expand_dims(tmp.C10.numpy(),0)
1529
+ if tmp.S1 is not None:
1530
+ nS1=np.expand_dims(tmp.S1.numpy(),0)
1531
+
1488
1532
  if S0 is None:
1489
1533
  S0=nS0
1490
1534
  P00=nP00
@@ -1560,7 +1604,12 @@ class funct(FOC.FoCUS):
1560
1604
  ll_nside=int(np.sqrt(tmp.shape[1]//12))
1561
1605
  cc=self.up_grade(cc,ll_nside)
1562
1606
  ss=self.up_grade(ss,ll_nside)
1563
- phase=np.fmod(np.arctan2(ss.numpy(),cc.numpy())+2*np.pi,2*np.pi)
1607
+
1608
+ if self.BACKEND=='numpy':
1609
+ phase=np.fmod(np.arctan2(ss,cc)+2*np.pi,2*np.pi)
1610
+ else:
1611
+ phase=np.fmod(np.arctan2(ss.numpy(),cc.numpy())+2*np.pi,2*np.pi)
1612
+
1564
1613
  iph=(4*phase/(2*np.pi)).astype('int')
1565
1614
  alpha=(4*phase/(2*np.pi)-iph)
1566
1615
  mat=np.zeros([sim.shape[1],4*4])
@@ -1590,7 +1639,10 @@ class funct(FOC.FoCUS):
1590
1639
  cc=self.up_grade(cc,ll_nside)
1591
1640
  ss=self.up_grade(ss,ll_nside)
1592
1641
 
1593
- phase=np.fmod(np.arctan2(ss.numpy(),cc.numpy())+2*np.pi,2*np.pi)
1642
+ if self.BACKEND=='numpy':
1643
+ phase=np.fmod(np.arctan2(ss,cc)+2*np.pi,2*np.pi)
1644
+ else:
1645
+ phase=np.fmod(np.arctan2(ss.numpy(),cc.numpy())+2*np.pi,2*np.pi)
1594
1646
  """
1595
1647
  for k in range(4):
1596
1648
  hp.mollview(np.fmod(phase+np.pi,2*np.pi),cmap='jet',nest=True,hold=False,sub=(2,2,1+k))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: foscat
3
- Version: 3.0.22
3
+ Version: 3.0.24
4
4
  Summary: Generate synthetic Healpix or 2D data using Cross Scattering Transform
5
5
  Home-page: https://github.com/jmdelouis/FOSCAT
6
6
  Author: Jean-Marc DELOUIS
@@ -1,6 +1,6 @@
1
1
  foscat/CNN.py,sha256=BVf-uD5K-_Tb_Q9xdckLF7PZq-Wcs6qexP9J2K8KCq0,4231
2
2
  foscat/CircSpline.py,sha256=610sgsWeZzRXYh7gYEqUmGQVrXoHSaFGKjH5mCdh4jU,1684
3
- foscat/FoCUS.py,sha256=DcEX8X3CY6lc3j1XYtNmP-zIOsuRg9ohkDVhRBr_Io0,67309
3
+ foscat/FoCUS.py,sha256=QtMhh92kZ66BLEAjusZiuoBHz-qccwwuYU3h5DjUUvs,67309
4
4
  foscat/GCNN.py,sha256=TEW81DGRM4WL7RzH50VKQ-_oHbl5i3iQKuhdkkgKEO8,3831
5
5
  foscat/GetGPUinfo.py,sha256=6sJWKO_OeiA0SoGQQdCT_h3D8rZtrv_4hpBc8H3nZls,731
6
6
  foscat/Softmax.py,sha256=aCghstI2fchd8FHsBUcmPR4FGlCH9DglS7XMEWlKr8A,2709
@@ -14,12 +14,12 @@ foscat/loss_backend_torch.py,sha256=Fj_W3VwGgeD79eQ4jOxOmhZ548UKDRUb3JjUo2-gSWM,
14
14
  foscat/scat.py,sha256=Ht_xyo7XKJJrUIbQIeucjhIrJo4RGrE63EyhTH8IYig,60061
15
15
  foscat/scat1D.py,sha256=7egOWL7GXcJEenl8r1DSdArpE1Yvywgo-vxHAQ1gMzY,46269
16
16
  foscat/scat2D.py,sha256=Xtisjc5KsbLQAlbn71P0Xg1UIu3r1gUKXoYG2vIMK1M,523
17
- foscat/scat_cov.py,sha256=k_fx8aajqaBCAPmaABM1h9dg96j4QckUFvYaGG2vufQ,108007
17
+ foscat/scat_cov.py,sha256=uST8ij9o1sJh2AKhFffxMUr0WFQX9vz3VK4LGfiSOlE,110188
18
18
  foscat/scat_cov1D.py,sha256=inAy_TWtUwJr6l9hX3u7r2Jud7DGy_CkjCfcjaUIdJI,58885
19
19
  foscat/scat_cov2D.py,sha256=8_XvC-lOEVUWP9vT3Wx10G_ATeVeh0SdrSWuBV7Xf5k,536
20
20
  foscat/scat_cov_map.py,sha256=ocU2xd41GtJhiU9S3dEv38KfPCvz0tJKY2f8lPxpm5c,2729
21
21
  foscat/scat_cov_map2D.py,sha256=t4llIt7DVIyU1b_u-dJSX4lBr2FhDict8RnNnHpRvHM,2754
22
- foscat-3.0.22.dist-info/METADATA,sha256=ZCArmUPZoiAWE1AqaS3Eb_FDrcVoixDvK7VZfnAS_Gg,1013
23
- foscat-3.0.22.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
24
- foscat-3.0.22.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
25
- foscat-3.0.22.dist-info/RECORD,,
22
+ foscat-3.0.24.dist-info/METADATA,sha256=Ia5RjnEHMVUIHvkeO8cpYM1_1QI1V4-LLUO2rAO65QU,1013
23
+ foscat-3.0.24.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
24
+ foscat-3.0.24.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
25
+ foscat-3.0.24.dist-info/RECORD,,