foscat 3.0.19__py3-none-any.whl → 3.0.20__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 +1 -1
- foscat/Synthesis.py +1 -2
- foscat/scat.py +40 -28
- foscat/scat1D.py +4 -0
- foscat/scat_cov.py +67 -41
- foscat/scat_cov1D.py +40 -27
- {foscat-3.0.19.dist-info → foscat-3.0.20.dist-info}/METADATA +1 -1
- {foscat-3.0.19.dist-info → foscat-3.0.20.dist-info}/RECORD +10 -10
- {foscat-3.0.19.dist-info → foscat-3.0.20.dist-info}/WHEEL +0 -0
- {foscat-3.0.19.dist-info → foscat-3.0.20.dist-info}/top_level.txt +0 -0
foscat/FoCUS.py
CHANGED
foscat/Synthesis.py
CHANGED
foscat/scat.py
CHANGED
|
@@ -9,6 +9,7 @@ import sys
|
|
|
9
9
|
tf_defined = 'tensorflow' in sys.modules
|
|
10
10
|
|
|
11
11
|
if tf_defined:
|
|
12
|
+
import tensorflow as tf
|
|
12
13
|
tf_function = tf.function # Facultatif : si vous voulez utiliser TensorFlow dans ce script
|
|
13
14
|
else:
|
|
14
15
|
def tf_function(func):
|
|
@@ -64,44 +65,55 @@ class scat:
|
|
|
64
65
|
self.j1 , \
|
|
65
66
|
self.j2 ,backend=self.backend)
|
|
66
67
|
|
|
68
|
+
|
|
67
69
|
def domult(self,x,y):
|
|
68
|
-
|
|
70
|
+
try:
|
|
69
71
|
return x*y
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
except:
|
|
73
|
+
if x.dtype==y.dtype:
|
|
74
|
+
return x*y
|
|
75
|
+
if self.backend.bk_is_complex(x):
|
|
76
|
+
|
|
77
|
+
return self.backend.bk_complex(self.backend.bk_real(x)*y,self.backend.bk_imag(x)*y)
|
|
78
|
+
else:
|
|
79
|
+
return self.backend.bk_complex(self.backend.bk_real(y)*x,self.backend.bk_imag(y)*x)
|
|
80
|
+
|
|
77
81
|
def dodiv(self,x,y):
|
|
78
|
-
|
|
82
|
+
try:
|
|
79
83
|
return x/y
|
|
80
|
-
|
|
84
|
+
except:
|
|
85
|
+
if x.dtype==y.dtype:
|
|
86
|
+
return x/y
|
|
87
|
+
if self.backend.bk_is_complex(x):
|
|
81
88
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
return self.backend.bk_complex(self.backend.bk_real(x)/y,self.backend.bk_imag(x)/y)
|
|
90
|
+
else:
|
|
91
|
+
return self.backend.bk_complex(x/self.backend.bk_real(y),x/self.backend.bk_imag(y))
|
|
85
92
|
|
|
86
93
|
def domin(self,x,y):
|
|
87
|
-
|
|
94
|
+
try:
|
|
88
95
|
return x-y
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
except:
|
|
97
|
+
if x.dtype==y.dtype:
|
|
98
|
+
return x-y
|
|
99
|
+
|
|
100
|
+
if self.backend.bk_is_complex(x):
|
|
101
|
+
|
|
102
|
+
return self.backend.bk_complex(self.backend.bk_real(x)-y,self.backend.bk_imag(x)-y)
|
|
103
|
+
else:
|
|
104
|
+
return self.backend.bk_complex(x-self.backend.bk_real(y),x-self.backend.bk_imag(y))
|
|
95
105
|
|
|
96
106
|
def doadd(self,x,y):
|
|
97
|
-
|
|
107
|
+
try:
|
|
98
108
|
return x+y
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
109
|
+
except:
|
|
110
|
+
if x.dtype==y.dtype:
|
|
111
|
+
return x+y
|
|
112
|
+
if self.backend.bk_is_complex(x):
|
|
113
|
+
|
|
114
|
+
return self.backend.bk_complex(self.backend.bk_real(x)+y,self.backend.bk_imag(x)+y)
|
|
115
|
+
else:
|
|
116
|
+
return self.backend.bk_complex(x+self.backend.bk_real(y),x+self.backend.bk_imag(y))
|
|
105
117
|
|
|
106
118
|
def relu(self):
|
|
107
119
|
|
|
@@ -337,7 +349,7 @@ class scat:
|
|
|
337
349
|
if len(tmp.shape)==4:
|
|
338
350
|
for k in range(tmp.shape[3]):
|
|
339
351
|
for i1 in range(tmp.shape[0]):
|
|
340
|
-
for i2 in range(tmp.shape[
|
|
352
|
+
for i2 in range(tmp.shape[1]):
|
|
341
353
|
if test is None:
|
|
342
354
|
test=1
|
|
343
355
|
plt.plot(tmp[i1,i2,:,k],color=color, label=r'%s $P_{00}$' % (name), lw=lw)
|
foscat/scat1D.py
CHANGED
|
@@ -8,6 +8,7 @@ import sys
|
|
|
8
8
|
tf_defined = 'tensorflow' in sys.modules
|
|
9
9
|
|
|
10
10
|
if tf_defined:
|
|
11
|
+
import tensorflow as tf
|
|
11
12
|
tf_function = tf.function # Facultatif : si vous voulez utiliser TensorFlow dans ce script
|
|
12
13
|
else:
|
|
13
14
|
def tf_function(func):
|
|
@@ -62,6 +63,7 @@ class scat1D:
|
|
|
62
63
|
def domult(self,x,y):
|
|
63
64
|
if x.dtype==y.dtype:
|
|
64
65
|
return x*y
|
|
66
|
+
|
|
65
67
|
if self.backend.bk_is_complex(x):
|
|
66
68
|
|
|
67
69
|
return self.backend.bk_complex(self.backend.bk_real(x)*y,self.backend.bk_imag(x)*y)
|
|
@@ -80,6 +82,7 @@ class scat1D:
|
|
|
80
82
|
def domin(self,x,y):
|
|
81
83
|
if x.dtype==y.dtype:
|
|
82
84
|
return x-y
|
|
85
|
+
|
|
83
86
|
if self.backend.bk_is_complex(x):
|
|
84
87
|
|
|
85
88
|
return self.backend.bk_complex(self.backend.bk_real(x)-y,self.backend.bk_imag(x)-y)
|
|
@@ -89,6 +92,7 @@ class scat1D:
|
|
|
89
92
|
def doadd(self,x,y):
|
|
90
93
|
if x.dtype==y.dtype:
|
|
91
94
|
return x+y
|
|
95
|
+
|
|
92
96
|
if self.backend.bk_is_complex(x):
|
|
93
97
|
|
|
94
98
|
return self.backend.bk_complex(self.backend.bk_real(x)+y,self.backend.bk_imag(x)+y)
|
foscat/scat_cov.py
CHANGED
|
@@ -9,6 +9,7 @@ import sys
|
|
|
9
9
|
tf_defined = 'tensorflow' in sys.modules
|
|
10
10
|
|
|
11
11
|
if tf_defined:
|
|
12
|
+
import tensorflow as tf
|
|
12
13
|
tf_function = tf.function # Facultatif : si vous voulez utiliser TensorFlow dans ce script
|
|
13
14
|
else:
|
|
14
15
|
def tf_function(func):
|
|
@@ -576,41 +577,53 @@ class scat_cov:
|
|
|
576
577
|
s1=s1, c10=c10,backend=self.backend)
|
|
577
578
|
|
|
578
579
|
def domult(self,x,y):
|
|
579
|
-
|
|
580
|
+
try:
|
|
580
581
|
return x*y
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
582
|
+
except:
|
|
583
|
+
if x.dtype==y.dtype:
|
|
584
|
+
return x*y
|
|
585
|
+
if self.backend.bk_is_complex(x):
|
|
586
|
+
|
|
587
|
+
return self.backend.bk_complex(self.backend.bk_real(x)*y,self.backend.bk_imag(x)*y)
|
|
588
|
+
else:
|
|
589
|
+
return self.backend.bk_complex(self.backend.bk_real(y)*x,self.backend.bk_imag(y)*x)
|
|
586
590
|
|
|
587
591
|
def dodiv(self,x,y):
|
|
588
|
-
|
|
592
|
+
try:
|
|
589
593
|
return x/y
|
|
590
|
-
|
|
594
|
+
except:
|
|
595
|
+
if x.dtype==y.dtype:
|
|
596
|
+
return x/y
|
|
597
|
+
if self.backend.bk_is_complex(x):
|
|
591
598
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
599
|
+
return self.backend.bk_complex(self.backend.bk_real(x)/y,self.backend.bk_imag(x)/y)
|
|
600
|
+
else:
|
|
601
|
+
return self.backend.bk_complex(x/self.backend.bk_real(y),x/self.backend.bk_imag(y))
|
|
595
602
|
|
|
596
603
|
def domin(self,x,y):
|
|
597
|
-
|
|
604
|
+
try:
|
|
598
605
|
return x-y
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
606
|
+
except:
|
|
607
|
+
if x.dtype==y.dtype:
|
|
608
|
+
return x-y
|
|
609
|
+
|
|
610
|
+
if self.backend.bk_is_complex(x):
|
|
611
|
+
|
|
612
|
+
return self.backend.bk_complex(self.backend.bk_real(x)-y,self.backend.bk_imag(x)-y)
|
|
613
|
+
else:
|
|
614
|
+
return self.backend.bk_complex(x-self.backend.bk_real(y),x-self.backend.bk_imag(y))
|
|
605
615
|
|
|
606
616
|
def doadd(self,x,y):
|
|
607
|
-
|
|
617
|
+
try:
|
|
608
618
|
return x+y
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
619
|
+
except:
|
|
620
|
+
if x.dtype==y.dtype:
|
|
621
|
+
return x+y
|
|
622
|
+
if self.backend.bk_is_complex(x):
|
|
623
|
+
|
|
624
|
+
return self.backend.bk_complex(self.backend.bk_real(x)+y,self.backend.bk_imag(x)+y)
|
|
625
|
+
else:
|
|
626
|
+
return self.backend.bk_complex(x+self.backend.bk_real(y),x+self.backend.bk_imag(y))
|
|
614
627
|
|
|
615
628
|
|
|
616
629
|
def __mul__(self, other):
|
|
@@ -735,7 +748,7 @@ class scat_cov:
|
|
|
735
748
|
return scat_cov(self.S0,self.backend.constant(p0),self.backend.constant(c01),
|
|
736
749
|
self.backend.constant(c11),s1=s1,c10=c10,backend=self.backend)
|
|
737
750
|
|
|
738
|
-
def plot(self, name=None, hold=True, color='blue', lw=1, legend=True):
|
|
751
|
+
def plot(self, name=None, hold=True, color='blue', lw=1, legend=True,norm=False):
|
|
739
752
|
|
|
740
753
|
import matplotlib.pyplot as plt
|
|
741
754
|
|
|
@@ -754,7 +767,7 @@ class scat_cov:
|
|
|
754
767
|
if len(tmp.shape)>3:
|
|
755
768
|
for k in range(tmp.shape[3]):
|
|
756
769
|
for i1 in range(tmp.shape[0]):
|
|
757
|
-
for i2 in range(tmp.shape[
|
|
770
|
+
for i2 in range(tmp.shape[1]):
|
|
758
771
|
if test is None:
|
|
759
772
|
test=1
|
|
760
773
|
plt.plot(tmp[i1,i2,:,k],color=color, label=r'%s $S_1$' % (name), lw=lw)
|
|
@@ -762,7 +775,7 @@ class scat_cov:
|
|
|
762
775
|
plt.plot(tmp[i1,i2,:,k],color=color, lw=lw)
|
|
763
776
|
else:
|
|
764
777
|
for i1 in range(tmp.shape[0]):
|
|
765
|
-
for i2 in range(tmp.shape[
|
|
778
|
+
for i2 in range(tmp.shape[1]):
|
|
766
779
|
if test is None:
|
|
767
780
|
test=1
|
|
768
781
|
plt.plot(tmp[i1,i2,:],color=color, label=r'%s $S_1$' % (name), lw=lw)
|
|
@@ -776,10 +789,11 @@ class scat_cov:
|
|
|
776
789
|
test=None
|
|
777
790
|
plt.subplot(2, 2, 2)
|
|
778
791
|
tmp=abs(self.get_np(self.P00))
|
|
792
|
+
ntmp=np.sqrt(tmp)
|
|
779
793
|
if len(tmp.shape)>3:
|
|
780
794
|
for k in range(tmp.shape[3]):
|
|
781
795
|
for i1 in range(tmp.shape[0]):
|
|
782
|
-
for i2 in range(tmp.shape[
|
|
796
|
+
for i2 in range(tmp.shape[1]):
|
|
783
797
|
if test is None:
|
|
784
798
|
test=1
|
|
785
799
|
plt.plot(tmp[i1,i2,:,k],color=color, label=r'%s $P_{00}$' % (name), lw=lw)
|
|
@@ -787,7 +801,7 @@ class scat_cov:
|
|
|
787
801
|
plt.plot(tmp[i1,i2,:,k],color=color, lw=lw)
|
|
788
802
|
else:
|
|
789
803
|
for i1 in range(tmp.shape[0]):
|
|
790
|
-
for i2 in range(tmp.shape[
|
|
804
|
+
for i2 in range(tmp.shape[1]):
|
|
791
805
|
if test is None:
|
|
792
806
|
test=1
|
|
793
807
|
plt.plot(tmp[i1,i2,:],color=color, label=r'%s $P_{00}$' % (name), lw=lw)
|
|
@@ -819,15 +833,18 @@ class scat_cov:
|
|
|
819
833
|
for i2 in range(j1.max()+1):
|
|
820
834
|
for i3 in range(tmp.shape[3]):
|
|
821
835
|
for i4 in range(tmp.shape[4]):
|
|
836
|
+
dtmp=tmp[i0,i1,j1==i2,i3,i4]
|
|
837
|
+
if norm:
|
|
838
|
+
dtmp=dtmp/ntmp[i0,i1,i2,i3]
|
|
822
839
|
if j2[j1==i2].shape[0]==1:
|
|
823
|
-
ax1.plot(j2[j1==i2]+n,
|
|
840
|
+
ax1.plot(j2[j1==i2]+n,dtmp,'.', \
|
|
824
841
|
color=color, lw=lw)
|
|
825
842
|
else:
|
|
826
843
|
if legend and test is None:
|
|
827
|
-
ax1.plot(j2[j1==i2]+n,
|
|
844
|
+
ax1.plot(j2[j1==i2]+n,dtmp, \
|
|
828
845
|
color=color, label=lname, lw=lw)
|
|
829
846
|
test=1
|
|
830
|
-
ax1.plot(j2[j1==i2]+n,
|
|
847
|
+
ax1.plot(j2[j1==i2]+n,dtmp, \
|
|
831
848
|
color=color, lw=lw)
|
|
832
849
|
tabnx=tabnx+[r'%d'%(k) for k in j2[j1==i2]]
|
|
833
850
|
tabx=tabx+[k+n for k in j2[j1==i2]]
|
|
@@ -840,15 +857,18 @@ class scat_cov:
|
|
|
840
857
|
for i1 in range(tmp.shape[1]):
|
|
841
858
|
for i2 in range(j1.max()+1):
|
|
842
859
|
for i3 in range(tmp.shape[3]):
|
|
860
|
+
dtmp=tmp[i0,i1,j1==i2,i3]
|
|
861
|
+
if norm:
|
|
862
|
+
dtmp=dtmp/ntmp[i0,i1,i2]
|
|
843
863
|
if j2[j1==i2].shape[0]==1:
|
|
844
|
-
ax1.plot(j2[j1==i2]+n,
|
|
864
|
+
ax1.plot(j2[j1==i2]+n,dtmp,'.', \
|
|
845
865
|
color=color, lw=lw)
|
|
846
866
|
else:
|
|
847
867
|
if legend and test is None:
|
|
848
|
-
ax1.plot(j2[j1==i2]+n,
|
|
868
|
+
ax1.plot(j2[j1==i2]+n,dtmp, \
|
|
849
869
|
color=color, label=lname, lw=lw)
|
|
850
870
|
test=1
|
|
851
|
-
ax1.plot(j2[j1==i2]+n,
|
|
871
|
+
ax1.plot(j2[j1==i2]+n,dtmp, \
|
|
852
872
|
color=color, lw=lw)
|
|
853
873
|
tabnx=tabnx+[r'%d'%(k) for k in j2[j1==i2]]
|
|
854
874
|
tabx=tabx+[k+n for k in j2[j1==i2]]
|
|
@@ -904,15 +924,18 @@ class scat_cov:
|
|
|
904
924
|
for i3 in range(tmp.shape[3]):
|
|
905
925
|
for i4 in range(tmp.shape[4]):
|
|
906
926
|
for i5 in range(tmp.shape[5]):
|
|
927
|
+
dtmp=tmp[i0,i1,idx,i3,i4,i5]
|
|
928
|
+
if norm:
|
|
929
|
+
dtmp=dtmp/ntmp[i0,i1,i2,i3]
|
|
907
930
|
if len(idx)==1:
|
|
908
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
931
|
+
ax1.plot(np.arange(len(idx))+n,dtmp,'.', \
|
|
909
932
|
color=color, lw=lw)
|
|
910
933
|
else:
|
|
911
934
|
if legend and test is None:
|
|
912
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
935
|
+
ax1.plot(np.arange(len(idx))+n,dtmp, \
|
|
913
936
|
color=color, label=lname, lw=lw)
|
|
914
937
|
test=1
|
|
915
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
938
|
+
ax1.plot(np.arange(len(idx))+n,dtmp, \
|
|
916
939
|
color=color, lw=lw)
|
|
917
940
|
tabnx=tabnx+[r'%d,%d'%(j2[k],j3[k]) for k in idx]
|
|
918
941
|
tabx=tabx+[k+n for k in range(len(idx))]
|
|
@@ -928,15 +951,18 @@ class scat_cov:
|
|
|
928
951
|
for i2b in range(j2[j1==i2].max()+1):
|
|
929
952
|
idx=np.where((j1==i2)*(j2==i2b))[0]
|
|
930
953
|
for i3 in range(tmp.shape[3]):
|
|
954
|
+
dtmp=tmp[i0,i1,idx,i3]
|
|
955
|
+
if norm:
|
|
956
|
+
dtmp=dtmp/ntmp[i0,i1,i2]
|
|
931
957
|
if len(idx)==1:
|
|
932
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
958
|
+
ax1.plot(np.arange(len(idx))+n,dtmp,'.', \
|
|
933
959
|
color=color, lw=lw)
|
|
934
960
|
else:
|
|
935
961
|
if legend and test is None:
|
|
936
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
962
|
+
ax1.plot(np.arange(len(idx))+n,dtmp, \
|
|
937
963
|
color=color, label=lname, lw=lw)
|
|
938
964
|
test=1
|
|
939
|
-
ax1.plot(np.arange(len(idx))+n,
|
|
965
|
+
ax1.plot(np.arange(len(idx))+n,dtmp, \
|
|
940
966
|
color=color, lw=lw)
|
|
941
967
|
tabnx=tabnx+[r'%d,%d'%(j2[k],j3[k]) for k in idx]
|
|
942
968
|
tabx=tabx+[k+n for k in range(len(idx))]
|
foscat/scat_cov1D.py
CHANGED
|
@@ -10,6 +10,7 @@ import sys
|
|
|
10
10
|
tf_defined = 'tensorflow' in sys.modules
|
|
11
11
|
|
|
12
12
|
if tf_defined:
|
|
13
|
+
import tensorflow as tf
|
|
13
14
|
tf_function = tf.function # Facultatif : si vous voulez utiliser TensorFlow dans ce script
|
|
14
15
|
else:
|
|
15
16
|
def tf_function(func):
|
|
@@ -374,42 +375,54 @@ class scat_cov1D:
|
|
|
374
375
|
(self.C01 - other),
|
|
375
376
|
c11,
|
|
376
377
|
s1=s1, c10=c10,backend=self.backend)
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
if x.dtype==y.dtype:
|
|
378
|
+
def domult(self,x,y):
|
|
379
|
+
try:
|
|
380
380
|
return x*y
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
381
|
+
except:
|
|
382
|
+
if x.dtype==y.dtype:
|
|
383
|
+
return x*y
|
|
384
|
+
if self.backend.bk_is_complex(x):
|
|
385
|
+
|
|
386
|
+
return self.backend.bk_complex(self.backend.bk_real(x)*y,self.backend.bk_imag(x)*y)
|
|
387
|
+
else:
|
|
388
|
+
return self.backend.bk_complex(self.backend.bk_real(y)*x,self.backend.bk_imag(y)*x)
|
|
389
|
+
|
|
387
390
|
def dodiv(self,x,y):
|
|
388
|
-
|
|
391
|
+
try:
|
|
389
392
|
return x/y
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
393
|
+
except:
|
|
394
|
+
if x.dtype==y.dtype:
|
|
395
|
+
return x/y
|
|
396
|
+
if self.backend.bk_is_complex(x):
|
|
397
|
+
|
|
398
|
+
return self.backend.bk_complex(self.backend.bk_real(x)/y,self.backend.bk_imag(x)/y)
|
|
399
|
+
else:
|
|
400
|
+
return self.backend.bk_complex(x/self.backend.bk_real(y),x/self.backend.bk_imag(y))
|
|
395
401
|
|
|
396
402
|
def domin(self,x,y):
|
|
397
|
-
|
|
403
|
+
try:
|
|
398
404
|
return x-y
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
405
|
+
except:
|
|
406
|
+
if x.dtype==y.dtype:
|
|
407
|
+
return x-y
|
|
408
|
+
|
|
409
|
+
if self.backend.bk_is_complex(x):
|
|
410
|
+
|
|
411
|
+
return self.backend.bk_complex(self.backend.bk_real(x)-y,self.backend.bk_imag(x)-y)
|
|
412
|
+
else:
|
|
413
|
+
return self.backend.bk_complex(x-self.backend.bk_real(y),x-self.backend.bk_imag(y))
|
|
404
414
|
|
|
405
415
|
def doadd(self,x,y):
|
|
406
|
-
|
|
416
|
+
try:
|
|
407
417
|
return x+y
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
418
|
+
except:
|
|
419
|
+
if x.dtype==y.dtype:
|
|
420
|
+
return x+y
|
|
421
|
+
if self.backend.bk_is_complex(x):
|
|
422
|
+
|
|
423
|
+
return self.backend.bk_complex(self.backend.bk_real(x)+y,self.backend.bk_imag(x)+y)
|
|
424
|
+
else:
|
|
425
|
+
return self.backend.bk_complex(x+self.backend.bk_real(y),x+self.backend.bk_imag(y))
|
|
413
426
|
|
|
414
427
|
|
|
415
428
|
def __mul__(self, other):
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
foscat/CircSpline.py,sha256=610sgsWeZzRXYh7gYEqUmGQVrXoHSaFGKjH5mCdh4jU,1684
|
|
2
|
-
foscat/FoCUS.py,sha256=
|
|
2
|
+
foscat/FoCUS.py,sha256=dcWz86Xt_ZjiRYFZTuhK1gFbDns2hDeg9fJhG1tNsz8,67309
|
|
3
3
|
foscat/GCNN.py,sha256=TEW81DGRM4WL7RzH50VKQ-_oHbl5i3iQKuhdkkgKEO8,3831
|
|
4
4
|
foscat/GetGPUinfo.py,sha256=6sJWKO_OeiA0SoGQQdCT_h3D8rZtrv_4hpBc8H3nZls,731
|
|
5
5
|
foscat/Softmax.py,sha256=aCghstI2fchd8FHsBUcmPR4FGlCH9DglS7XMEWlKr8A,2709
|
|
6
6
|
foscat/Spline1D.py,sha256=9oeM8SSHjpfUE5z72YxGt1RVt22vJYM1zhHbNBW8phw,1232
|
|
7
|
-
foscat/Synthesis.py,sha256=
|
|
7
|
+
foscat/Synthesis.py,sha256=oYtHFVTqalVzBQs5okJBnP4pzXFhBMds-pytdEm4Bqs,12611
|
|
8
8
|
foscat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
foscat/backend.py,sha256=BJkx5CRxUHZr8WH4rvApuE8dIo1Y61fbtyfYhGByIIk,30402
|
|
10
10
|
foscat/backend_tens.py,sha256=zEFZ71j0nMNP9_91tz21ZVBTayr75l-sfONOLkJ8DyI,1432
|
|
11
11
|
foscat/loss_backend_tens.py,sha256=WbGC4vy1pBg_bxUXnlCRiXX9WszN6MaUWUc_lUvZNvQ,1667
|
|
12
12
|
foscat/loss_backend_torch.py,sha256=Fj_W3VwGgeD79eQ4jOxOmhZ548UKDRUb3JjUo2-gSWM,1755
|
|
13
|
-
foscat/scat.py,sha256=
|
|
14
|
-
foscat/scat1D.py,sha256=
|
|
13
|
+
foscat/scat.py,sha256=A7xk0o3-wHh-IuXeKSkapvo2J9Hs5yMQZVuGx1FE7A8,60077
|
|
14
|
+
foscat/scat1D.py,sha256=mSM_xDoQNoGYMV6JDmmfIX8n-Ulm6Ru8HtWqP8XTKqw,43914
|
|
15
15
|
foscat/scat2D.py,sha256=Xtisjc5KsbLQAlbn71P0Xg1UIu3r1gUKXoYG2vIMK1M,523
|
|
16
|
-
foscat/scat_cov.py,sha256=
|
|
17
|
-
foscat/scat_cov1D.py,sha256=
|
|
16
|
+
foscat/scat_cov.py,sha256=36Exeac1pXlnVzOWPBX0bSMMEyoUlzwK7kShDPeaF_s,107984
|
|
17
|
+
foscat/scat_cov1D.py,sha256=inAy_TWtUwJr6l9hX3u7r2Jud7DGy_CkjCfcjaUIdJI,58885
|
|
18
18
|
foscat/scat_cov2D.py,sha256=8_XvC-lOEVUWP9vT3Wx10G_ATeVeh0SdrSWuBV7Xf5k,536
|
|
19
19
|
foscat/scat_cov_map.py,sha256=ocU2xd41GtJhiU9S3dEv38KfPCvz0tJKY2f8lPxpm5c,2729
|
|
20
20
|
foscat/scat_cov_map2D.py,sha256=t4llIt7DVIyU1b_u-dJSX4lBr2FhDict8RnNnHpRvHM,2754
|
|
21
|
-
foscat-3.0.
|
|
22
|
-
foscat-3.0.
|
|
23
|
-
foscat-3.0.
|
|
24
|
-
foscat-3.0.
|
|
21
|
+
foscat-3.0.20.dist-info/METADATA,sha256=8A09buj_rHwPPsvJndDfgU4ecsQFcXzTel2RIuRZx3g,1013
|
|
22
|
+
foscat-3.0.20.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
23
|
+
foscat-3.0.20.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
|
|
24
|
+
foscat-3.0.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|