pygeoinf 1.2.9__py3-none-any.whl → 1.3.0__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.
- pygeoinf/__init__.py +67 -0
- pygeoinf/backus_gilbert.py +0 -2
- pygeoinf/checks/nonlinear_operators.py +1 -1
- pygeoinf/direct_sum.py +0 -2
- pygeoinf/gaussian_measure.py +7 -1
- pygeoinf/linear_forms.py +1 -1
- pygeoinf/linear_operators.py +1 -2
- pygeoinf/nonlinear_forms.py +0 -1
- pygeoinf/nonlinear_operators.py +2 -2
- pygeoinf/symmetric_space/sphere.py +3 -1
- pygeoinf/symmetric_space/symmetric_space.py +1 -1
- {pygeoinf-1.2.9.dist-info → pygeoinf-1.3.0.dist-info}/METADATA +4 -2
- pygeoinf-1.3.0.dist-info/RECORD +28 -0
- {pygeoinf-1.2.9.dist-info → pygeoinf-1.3.0.dist-info}/WHEEL +1 -1
- pygeoinf-1.2.9.dist-info/RECORD +0 -28
- {pygeoinf-1.2.9.dist-info → pygeoinf-1.3.0.dist-info/licenses}/LICENSE +0 -0
pygeoinf/__init__.py
CHANGED
|
@@ -85,3 +85,70 @@ from .backus_gilbert import HyperEllipsoid
|
|
|
85
85
|
from .nonlinear_optimisation import (
|
|
86
86
|
ScipyUnconstrainedOptimiser,
|
|
87
87
|
)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
__all__ = [
|
|
91
|
+
# random_matrix
|
|
92
|
+
"fixed_rank_random_range",
|
|
93
|
+
"variable_rank_random_range",
|
|
94
|
+
"random_range",
|
|
95
|
+
"random_svd",
|
|
96
|
+
"random_eig",
|
|
97
|
+
"random_cholesky",
|
|
98
|
+
"random_diagonal",
|
|
99
|
+
# hilbert_space
|
|
100
|
+
"HilbertSpace",
|
|
101
|
+
"DualHilbertSpace",
|
|
102
|
+
"EuclideanSpace",
|
|
103
|
+
"HilbertModule",
|
|
104
|
+
"MassWeightedHilbertSpace",
|
|
105
|
+
"MassWeightedHilbertModule",
|
|
106
|
+
# nonlinear_forms
|
|
107
|
+
"NonLinearForm",
|
|
108
|
+
# linear_forms
|
|
109
|
+
"LinearForm",
|
|
110
|
+
# nonlinear_operators
|
|
111
|
+
"NonLinearOperator",
|
|
112
|
+
# linear_operators
|
|
113
|
+
"LinearOperator",
|
|
114
|
+
"MatrixLinearOperator",
|
|
115
|
+
"DenseMatrixLinearOperator",
|
|
116
|
+
"SparseMatrixLinearOperator",
|
|
117
|
+
"DiagonalSparseMatrixLinearOperator",
|
|
118
|
+
"NormalSumOperator",
|
|
119
|
+
# gaussian_measure
|
|
120
|
+
"GaussianMeasure",
|
|
121
|
+
# direct_sum
|
|
122
|
+
"HilbertSpaceDirectSum",
|
|
123
|
+
"BlockStructure",
|
|
124
|
+
"BlockLinearOperator",
|
|
125
|
+
"ColumnLinearOperator",
|
|
126
|
+
"RowLinearOperator",
|
|
127
|
+
"BlockDiagonalLinearOperator",
|
|
128
|
+
# linear_solvers
|
|
129
|
+
"LinearSolver",
|
|
130
|
+
"DirectLinearSolver",
|
|
131
|
+
"LUSolver",
|
|
132
|
+
"CholeskySolver",
|
|
133
|
+
"EigenSolver",
|
|
134
|
+
"IterativeLinearSolver",
|
|
135
|
+
"ScipyIterativeSolver",
|
|
136
|
+
"CGMatrixSolver",
|
|
137
|
+
"BICGMatrixSolver",
|
|
138
|
+
"BICGStabMatrixSolver",
|
|
139
|
+
"GMRESMatrixSolver",
|
|
140
|
+
"CGSolver",
|
|
141
|
+
# forward_problem
|
|
142
|
+
"ForwardProblem",
|
|
143
|
+
"LinearForwardProblem",
|
|
144
|
+
# linear_optimisation
|
|
145
|
+
"LinearLeastSquaresInversion",
|
|
146
|
+
"LinearMinimumNormInversion",
|
|
147
|
+
# linear_bayesian
|
|
148
|
+
"LinearBayesianInversion",
|
|
149
|
+
"LinearBayesianInference",
|
|
150
|
+
# backus_gilbert
|
|
151
|
+
"HyperEllipsoid",
|
|
152
|
+
# nonlinear_optimisation
|
|
153
|
+
"ScipyUnconstrainedOptimiser",
|
|
154
|
+
]
|
pygeoinf/backus_gilbert.py
CHANGED
|
@@ -8,8 +8,6 @@ from .hilbert_space import HilbertSpace, Vector
|
|
|
8
8
|
from .linear_operators import LinearOperator
|
|
9
9
|
from .nonlinear_forms import NonLinearForm
|
|
10
10
|
|
|
11
|
-
from .forward_problem import LinearForwardProblem
|
|
12
|
-
from .inversion import LinearInference
|
|
13
11
|
|
|
14
12
|
|
|
15
13
|
class HyperEllipsoid:
|
pygeoinf/direct_sum.py
CHANGED
|
@@ -26,12 +26,10 @@ from abc import ABC, abstractmethod
|
|
|
26
26
|
from typing import List, Any
|
|
27
27
|
import numpy as np
|
|
28
28
|
from scipy.linalg import block_diag
|
|
29
|
-
from joblib import Parallel, delayed
|
|
30
29
|
|
|
31
30
|
from .hilbert_space import HilbertSpace
|
|
32
31
|
from .linear_operators import LinearOperator
|
|
33
32
|
from .linear_forms import LinearForm
|
|
34
|
-
from .parallel import parallel_compute_dense_matrix_from_scipy_op
|
|
35
33
|
|
|
36
34
|
|
|
37
35
|
class HilbertSpaceDirectSum(HilbertSpace):
|
pygeoinf/gaussian_measure.py
CHANGED
|
@@ -20,7 +20,7 @@ Key Features
|
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
22
|
from __future__ import annotations
|
|
23
|
-
from typing import Callable, Optional, Any, List,
|
|
23
|
+
from typing import Callable, Optional, Any, List, TYPE_CHECKING
|
|
24
24
|
|
|
25
25
|
import numpy as np
|
|
26
26
|
from scipy.linalg import eigh
|
|
@@ -40,6 +40,12 @@ from .direct_sum import (
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
# This block is only processed by type checkers, not at runtime.
|
|
44
|
+
if TYPE_CHECKING:
|
|
45
|
+
from .hilbert_space import HilbertSpace
|
|
46
|
+
from .typing import Vector
|
|
47
|
+
|
|
48
|
+
|
|
43
49
|
class GaussianMeasure:
|
|
44
50
|
"""
|
|
45
51
|
Represents a Gaussian measure on a Hilbert space.
|
pygeoinf/linear_forms.py
CHANGED
|
@@ -18,7 +18,7 @@ from .nonlinear_forms import NonLinearForm
|
|
|
18
18
|
|
|
19
19
|
# This block only runs for type checkers, not at runtime
|
|
20
20
|
if TYPE_CHECKING:
|
|
21
|
-
from .hilbert_space import HilbertSpace,
|
|
21
|
+
from .hilbert_space import HilbertSpace, Vector
|
|
22
22
|
from .linear_operators import LinearOperator
|
|
23
23
|
|
|
24
24
|
|
pygeoinf/linear_operators.py
CHANGED
|
@@ -25,7 +25,6 @@ from collections import defaultdict
|
|
|
25
25
|
import numpy as np
|
|
26
26
|
import scipy.sparse as sp
|
|
27
27
|
from scipy.sparse.linalg import LinearOperator as ScipyLinOp
|
|
28
|
-
from scipy.sparse import diags
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
from joblib import Parallel, delayed
|
|
@@ -46,7 +45,7 @@ from .checks.linear_operators import LinearOperatorAxiomChecks
|
|
|
46
45
|
|
|
47
46
|
# This block only runs for type checkers, not at runtime
|
|
48
47
|
if TYPE_CHECKING:
|
|
49
|
-
from .hilbert_space import HilbertSpace
|
|
48
|
+
from .hilbert_space import HilbertSpace
|
|
50
49
|
from .linear_forms import LinearForm
|
|
51
50
|
|
|
52
51
|
|
pygeoinf/nonlinear_forms.py
CHANGED
pygeoinf/nonlinear_operators.py
CHANGED
|
@@ -8,7 +8,7 @@ algebraic operations and an interface for the Frécher derivative.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
from __future__ import annotations
|
|
11
|
-
from typing import Callable,
|
|
11
|
+
from typing import Callable, Any, TYPE_CHECKING
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
from .checks.nonlinear_operators import NonLinearOperatorAxiomChecks
|
|
@@ -16,7 +16,7 @@ from .checks.nonlinear_operators import NonLinearOperatorAxiomChecks
|
|
|
16
16
|
|
|
17
17
|
# This block only runs for type checkers, not at runtime
|
|
18
18
|
if TYPE_CHECKING:
|
|
19
|
-
from .hilbert_space import HilbertSpace,
|
|
19
|
+
from .hilbert_space import HilbertSpace, Vector
|
|
20
20
|
from .linear_operators import LinearOperator
|
|
21
21
|
|
|
22
22
|
|
|
@@ -605,7 +605,9 @@ class Sobolev(SphereHelper, MassWeightedHilbertModule, AbstractInvariantSobolevS
|
|
|
605
605
|
summation = 1.0
|
|
606
606
|
l = 0
|
|
607
607
|
err = 1.0
|
|
608
|
-
|
|
608
|
+
|
|
609
|
+
def sobolev_func(deg):
|
|
610
|
+
return (1.0 + scale**2 * deg * (deg + 1)) ** order
|
|
609
611
|
|
|
610
612
|
while err > rtol:
|
|
611
613
|
l += 1
|
|
@@ -35,7 +35,7 @@ from typing import Callable, Any, List
|
|
|
35
35
|
import numpy as np
|
|
36
36
|
from scipy.sparse import diags
|
|
37
37
|
|
|
38
|
-
from pygeoinf.hilbert_space import EuclideanSpace
|
|
38
|
+
from pygeoinf.hilbert_space import EuclideanSpace
|
|
39
39
|
from pygeoinf.linear_operators import LinearOperator
|
|
40
40
|
from pygeoinf.linear_forms import LinearForm
|
|
41
41
|
from pygeoinf.gaussian_measure import GaussianMeasure
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pygeoinf
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0
|
|
4
4
|
Summary: A package for solving geophysical inference and inverse problems
|
|
5
5
|
License: BSD-3-Clause
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Author: David Al-Attar and Dan Heathcote
|
|
7
8
|
Requires-Python: >=3.11
|
|
8
9
|
Classifier: License :: OSI Approved :: BSD License
|
|
@@ -10,6 +11,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
10
11
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
13
15
|
Provides-Extra: sphere
|
|
14
16
|
Requires-Dist: joblib (>=1.5.2,<2.0.0)
|
|
15
17
|
Requires-Dist: matplotlib (>=3.0.0)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
pygeoinf/__init__.py,sha256=vAoI6Kw2EL5koHn0EP0kbLvhtWV9gxA439PowiqkQHU,3246
|
|
2
|
+
pygeoinf/backus_gilbert.py,sha256=eFi4blSwOCsg_NuH6WD4gcgjvzvu5g5WpWahGobSBdM,3694
|
|
3
|
+
pygeoinf/checks/hilbert_space.py,sha256=Kr7PcOGrNIISezty0FBj5uXavIHC91yjCp2FVGNlHeE,7931
|
|
4
|
+
pygeoinf/checks/linear_operators.py,sha256=RkmtAW6e5Zr6EuhX6GAt_pI0IWu2WZ-CrfjSBN_7dsU,4664
|
|
5
|
+
pygeoinf/checks/nonlinear_operators.py,sha256=vB12HDX9YHJ8nNSVxG9BWzsVYTg12L5rrYbW98lPYxE,5560
|
|
6
|
+
pygeoinf/direct_sum.py,sha256=7V0qrwFGj0GN-p_zzffefPrIB0dPu5dshLTxem1mQGE,19274
|
|
7
|
+
pygeoinf/forward_problem.py,sha256=NnqWp7iMfkhHa9d-jBHzYHClaAfhKmO5D058AcJLLYg,10724
|
|
8
|
+
pygeoinf/gaussian_measure.py,sha256=FezItV3QFHtVvAc_-Butr2lA4PTWjcZeKYb4I3vN7d4,23816
|
|
9
|
+
pygeoinf/hilbert_space.py,sha256=0NCCG-OOHysdXYEFUs1wtJhGgOnuKvjZCZg8NJZO-DA,25331
|
|
10
|
+
pygeoinf/inversion.py,sha256=RV0hG2bGnciWdja0oOPKPxnFhYzufqdj-mKYNr4JJ_o,6447
|
|
11
|
+
pygeoinf/linear_bayesian.py,sha256=L1cJkeHtba4fPXZ8CmiLRBtuG2fmzG228M_iEar-iP8,9643
|
|
12
|
+
pygeoinf/linear_forms.py,sha256=mgZeDRegNKo8kviE68KrxkHR4gG9bf1RgsJz1MtDMCk,9181
|
|
13
|
+
pygeoinf/linear_operators.py,sha256=Bn-uzwUXi2kkWZ7wc9Uhj3vBHtocN17hnzc_r7DAzTk,64530
|
|
14
|
+
pygeoinf/linear_optimisation.py,sha256=UbSr6AOPpR2sRYoN1Pvv24-Zu7_XlJk1zE1IhQu83hg,12428
|
|
15
|
+
pygeoinf/linear_solvers.py,sha256=v-7yjKsa67Ts5EcyJzCdpj-aF0qBrA-akq0kLe59DS4,16843
|
|
16
|
+
pygeoinf/nonlinear_forms.py,sha256=t7lk-Bha7Xdk9eiwXMmS0F47oTR6jW6qQ3HkgRGk54A,7012
|
|
17
|
+
pygeoinf/nonlinear_operators.py,sha256=AtkDTQfGDzAnfFDIgiKfdk7uPEI-j_ZA3CNvY5A3U8w,7144
|
|
18
|
+
pygeoinf/nonlinear_optimisation.py,sha256=skK1ikn9GrVYherD64Qt9WrEYHA2NAJ48msOu_J8Oig,7431
|
|
19
|
+
pygeoinf/parallel.py,sha256=VVFvNHszy4wSa9LuErIsch4NAkLaZezhdN9YpRROBJo,2267
|
|
20
|
+
pygeoinf/random_matrix.py,sha256=71l6eAXQ2pRMleaz1lXud6O1F78ugKyp3vHcRBXhdwM,17661
|
|
21
|
+
pygeoinf/symmetric_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
+
pygeoinf/symmetric_space/circle.py,sha256=7Bz9BfSkbDnoz5-HFwTsAQE4a09jUapBePwoCK0xYWw,18007
|
|
23
|
+
pygeoinf/symmetric_space/sphere.py,sha256=LN5HJsPtj7thIHAElbbtAS9F4t6HKmXEjwMUXQoGLPQ,23365
|
|
24
|
+
pygeoinf/symmetric_space/symmetric_space.py,sha256=pEIZZYWsdegrYCwUs3bo86JTz3d2LsXFWdRYFa0syFs,17963
|
|
25
|
+
pygeoinf-1.3.0.dist-info/METADATA,sha256=UFX827ttCmk0fTTiXe4XsKx8xRqeaud3AegP6eBtE9k,16365
|
|
26
|
+
pygeoinf-1.3.0.dist-info/WHEEL,sha256=M5asmiAlL6HEcOq52Yi5mmk9KmTVjY2RDPtO4p9DMrc,88
|
|
27
|
+
pygeoinf-1.3.0.dist-info/licenses/LICENSE,sha256=GrTQnKJemVi69FSbHprq60KN0OJGsOSR-joQoTq-oD8,1501
|
|
28
|
+
pygeoinf-1.3.0.dist-info/RECORD,,
|
pygeoinf-1.2.9.dist-info/RECORD
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
pygeoinf/__init__.py,sha256=pV9UXNrRXAIagU4eTmHf2Qi0CtVgOp0sqLnltgBFoKc,1650
|
|
2
|
-
pygeoinf/backus_gilbert.py,sha256=vpIWvryUIy6pHWhT9A4bVB3A9MuTll1MyN9U8zmVI5c,3783
|
|
3
|
-
pygeoinf/checks/hilbert_space.py,sha256=Kr7PcOGrNIISezty0FBj5uXavIHC91yjCp2FVGNlHeE,7931
|
|
4
|
-
pygeoinf/checks/linear_operators.py,sha256=RkmtAW6e5Zr6EuhX6GAt_pI0IWu2WZ-CrfjSBN_7dsU,4664
|
|
5
|
-
pygeoinf/checks/nonlinear_operators.py,sha256=Rn9LTftyw5eGU3akx6xYNUJVGvX9J6gyTEXVFgLfYqs,5601
|
|
6
|
-
pygeoinf/direct_sum.py,sha256=1RHPJI_PoEvSRH9AmjX-v88IkSW4uT2rPSt5pmZQEZY,19377
|
|
7
|
-
pygeoinf/forward_problem.py,sha256=NnqWp7iMfkhHa9d-jBHzYHClaAfhKmO5D058AcJLLYg,10724
|
|
8
|
-
pygeoinf/gaussian_measure.py,sha256=zYpvQ29jBpWE2tDTF1rXZQiSICDuoxizVP4ZJr1k6Fk,23665
|
|
9
|
-
pygeoinf/hilbert_space.py,sha256=0NCCG-OOHysdXYEFUs1wtJhGgOnuKvjZCZg8NJZO-DA,25331
|
|
10
|
-
pygeoinf/inversion.py,sha256=RV0hG2bGnciWdja0oOPKPxnFhYzufqdj-mKYNr4JJ_o,6447
|
|
11
|
-
pygeoinf/linear_bayesian.py,sha256=L1cJkeHtba4fPXZ8CmiLRBtuG2fmzG228M_iEar-iP8,9643
|
|
12
|
-
pygeoinf/linear_forms.py,sha256=sgynBvlQ35CaH12PKU2vWPHh9ikrmQbD5IASCUQtlbw,9197
|
|
13
|
-
pygeoinf/linear_operators.py,sha256=HToie5nllV0PQFa-QzETtIPKveWnt2dkWiaWTJa6fTw,64577
|
|
14
|
-
pygeoinf/linear_optimisation.py,sha256=UbSr6AOPpR2sRYoN1Pvv24-Zu7_XlJk1zE1IhQu83hg,12428
|
|
15
|
-
pygeoinf/linear_solvers.py,sha256=v-7yjKsa67Ts5EcyJzCdpj-aF0qBrA-akq0kLe59DS4,16843
|
|
16
|
-
pygeoinf/nonlinear_forms.py,sha256=eQudA-HfedbURvRmzVvU8HfNCxHTuWUpdDoWe_KlA4Y,7067
|
|
17
|
-
pygeoinf/nonlinear_operators.py,sha256=X4_UMV1Rn4MqorjfN4P_UTckzCb4Gy1XceR3Ix8G4F8,7170
|
|
18
|
-
pygeoinf/nonlinear_optimisation.py,sha256=skK1ikn9GrVYherD64Qt9WrEYHA2NAJ48msOu_J8Oig,7431
|
|
19
|
-
pygeoinf/parallel.py,sha256=VVFvNHszy4wSa9LuErIsch4NAkLaZezhdN9YpRROBJo,2267
|
|
20
|
-
pygeoinf/random_matrix.py,sha256=71l6eAXQ2pRMleaz1lXud6O1F78ugKyp3vHcRBXhdwM,17661
|
|
21
|
-
pygeoinf/symmetric_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
|
-
pygeoinf/symmetric_space/circle.py,sha256=7Bz9BfSkbDnoz5-HFwTsAQE4a09jUapBePwoCK0xYWw,18007
|
|
23
|
-
pygeoinf/symmetric_space/sphere.py,sha256=8mIny_KNP2MCpVxqIFKEgXc1_EIDesVz65OhUtRVsuQ,23349
|
|
24
|
-
pygeoinf/symmetric_space/symmetric_space.py,sha256=Q3KtfCtHO0_8LjsdKtH-5WVhRQurt5Bdk4yx1D2F5YY,17977
|
|
25
|
-
pygeoinf-1.2.9.dist-info/LICENSE,sha256=GrTQnKJemVi69FSbHprq60KN0OJGsOSR-joQoTq-oD8,1501
|
|
26
|
-
pygeoinf-1.2.9.dist-info/METADATA,sha256=dBoRWZKHNcr7PIhPki7pU9oIFLy0FQtJOvI6dIp39no,16292
|
|
27
|
-
pygeoinf-1.2.9.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
28
|
-
pygeoinf-1.2.9.dist-info/RECORD,,
|
|
File without changes
|