DGCV 0.2.3__tar.gz → 0.2.4__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.
Potentially problematic release.
This version of DGCV might be problematic. Click here for more details.
- dgcv-0.2.4/PKG-INFO +79 -0
- dgcv-0.2.4/README.md +65 -0
- dgcv-0.2.4/pyproject.toml +26 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/setup.cfg +1 -1
- {dgcv-0.2.3 → dgcv-0.2.4}/setup.py +2 -2
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/CRGeometry.py +39 -13
- dgcv-0.2.3/src/DGCV/DGCore.py → dgcv-0.2.4/src/DGCV/DGCVCore.py +91 -150
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/DGCVFormatter.py +5 -3
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/RiemannianGeometry.py +93 -78
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/_DGCV_display.py +14 -16
- dgcv-0.2.4/src/DGCV/__init__.py +334 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/_safeguards.py +36 -3
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/populator.ipynb +4 -3
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/combinatorics.py +0 -1
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/complexStructures.py +50 -37
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/coordinateMaps.py +8 -6
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/finiteDimAlgebras.py +319 -173
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/polynomials.py +18 -21
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/vectorFieldsAndDifferentialForms.py +50 -64
- dgcv-0.2.4/src/DGCV.egg-info/PKG-INFO +79 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV.egg-info/SOURCES.txt +1 -1
- dgcv-0.2.3/PKG-INFO +0 -46
- dgcv-0.2.3/README.md +0 -32
- dgcv-0.2.3/pyproject.toml +0 -36
- dgcv-0.2.3/src/DGCV/__init__.py +0 -192
- dgcv-0.2.3/src/DGCV.egg-info/PKG-INFO +0 -46
- {dgcv-0.2.3 → dgcv-0.2.4}/LICENSE.txt +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/MANIFEST.in +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/__init__.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Black.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Black.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Bold.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Bold.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-ExtraBold.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-ExtraBold.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Medium.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Medium.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Regular.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-Regular.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-SemiBold.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/Orbitron-SemiBold.woff2 +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/PatrickHand-Regular.ttf +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/fonts/fonts.css +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/__init__.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_2x2.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_3x3.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_4x4.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_5x5.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_6x6.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/assets/inversions/precomputed_7x7.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/config.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV/styles.py +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV.egg-info/dependency_links.txt +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV.egg-info/requires.txt +0 -0
- {dgcv-0.2.3 → dgcv-0.2.4}/src/DGCV.egg-info/top_level.txt +0 -0
dgcv-0.2.4/PKG-INFO
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: DGCV
|
|
3
|
+
Version: 0.2.4
|
|
4
|
+
Summary: Differential Geometry with Complex Variables
|
|
5
|
+
Author: David Sykes
|
|
6
|
+
Author-email: David Sykes <david@realandimaginary.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
Requires-Python: >=3.6
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
License-File: LICENSE.txt
|
|
11
|
+
Requires-Dist: sympy>=1.9
|
|
12
|
+
Requires-Dist: pandas>=1.0
|
|
13
|
+
Requires-Dist: ipython>=7.0
|
|
14
|
+
|
|
15
|
+
# DGCV: Differential Geometry with Complex Variables
|
|
16
|
+
|
|
17
|
+
DGCV is an open-source Python package providing basic tools for differential geometry integrated with systematic organization of structures accompanying complex variables, in short, Differential Geometry with Complex Variables.
|
|
18
|
+
|
|
19
|
+
At its core are fully featured symbolic representations of standard DG objects such as vector fields and differential forms, defined relative to standard or complex coordinate systems. As systems of differential geometric objects constructed from complex variables inherit natural relationships from the underlying complex structure, DGCV tracks these relationships across the constructions. Immediate advantages of the uniform integration are seen in smooth switching between real and holomorphic coordinate representations of mathematical objects. In computations, DGCV classes dynamically manage this format switching on their own so that typical complex variables formulas can be written plainly and will simply work. Some examples of this: In coordinates $z_j = x_j + iy_j$, expressions such as $\frac{\partial}{\partial x_j}|z_j|^2$ or $d z_j \wedge d \overline{z_j} \left( \frac{\partial}{\partial z_j}, \frac{\partial}{\partial y_j} \right)$ are correctly parsed without needing to convert everything to a uniform variable format. Retrieving objects' complex structure-related attributes, like the holomorphic part of a vector field or pluriharmonic terms from a polynomial is straightforward. Complexified cotangent bundles and their exterior algebras are easily decomposed into components from the Dolbeault complex and Dolbeault operators themselves can be applied to functions and k-forms in either coordinate format.
|
|
20
|
+
|
|
21
|
+
DGCV was developed using Python 3.12, with dependencies on the SymPy and Pandas libraries in addition to base Python. Its classes integrate SymPy objects within their data structures and subclass from SymPy.Basic, thereby inheriting much of SymPy’s functionality. For instance, one can apply sympy.simplify() directly to most DGCV class objects. Developing complete compatibility with SymPy is a goal still in progress. Pandas is used to format and display data in a more readable manner.
|
|
22
|
+
|
|
23
|
+
## Features
|
|
24
|
+
- Fully featured symbolic representations of vector fields, differential forms, and tensor fields
|
|
25
|
+
- Intuitive interactions with complex structures from holomorphic coordinate systems: DGCV objects dynamically manage coordinate transformations between real and holomorphic coordinates during computation as necessary, so objects can be represented in and freely converted between either coordinate format at any time.
|
|
26
|
+
- Dedicated python classes for representing common differential geometric structures including Riemannian metrics, Kahler structures, and more
|
|
27
|
+
- Custom LaTeX rendering for clean visual representation of mathematical objects, ideal for sharing mathematical ideas through clear Jupyter notebooks.
|
|
28
|
+
|
|
29
|
+
## Installation
|
|
30
|
+
|
|
31
|
+
You can install DGCV directly from PyPI with pip:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install DGCV
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Note, depending on the operating system, a command like `python3` (for macOS/ Linux) or `py` (for windows) should proceed `pip`.
|
|
38
|
+
|
|
39
|
+
## Tutorials
|
|
40
|
+
|
|
41
|
+
Two Jupyter Notebook tutorials are available to help getting started with DGCV:
|
|
42
|
+
|
|
43
|
+
1. **DGCV Introduction**: An introduction to the key concepts and setup
|
|
44
|
+
- [View DGCV Introduction Tutorial](https://www.realandimaginary.com/dgcv/tutorials/DGCV_introduction/)
|
|
45
|
+
|
|
46
|
+
2. **DGCV in Action**: A quick tour through examples from some of the library's more elaborate functions
|
|
47
|
+
- [View DGCV in Action Tutorial](https://www.realandimaginary.com/dgcv/tutorials/DGCV_in_action/)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### Running the Tutorials Locally
|
|
51
|
+
|
|
52
|
+
If you clone the DGCV github repository, you can run the tutorials locally with Jupyter:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
git clone https://github.com/YikesItsSykes/DGCV.git
|
|
56
|
+
cd DGCV/tutorials
|
|
57
|
+
jupyter notebook DGCV_introduction.ipynb
|
|
58
|
+
jupyter notebook DGCV_in_action.ipynb
|
|
59
|
+
```
|
|
60
|
+
Or download the tutorials individually from the repository [DGCV github repo](https://github.com/YikesItsSykes/DGCV).
|
|
61
|
+
|
|
62
|
+
## Documentation
|
|
63
|
+
DGCV documentation is hosted at [https://www.realandimaginary.com/dgcv/](https://www.realandimaginary.com/dgcv/), with documentation pages for each function in the library and more. Full documentation is under development, so for now, refer to the docstrings within the code for more information on available classes/methods and functions.
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
DGCV is licensed under the MIT License. See the `LICENSE.txt` file for more information.
|
|
67
|
+
|
|
68
|
+
## Author
|
|
69
|
+
DGCV was created and is maintained by [David Sykes](https://www.realandimaginary.com).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### Future Development
|
|
74
|
+
The current (0.x.x) version of DGCV is foundation on which a lot more can be built. Many additions for future updates are planned, including:
|
|
75
|
+
- Extending complex variable handling and dynamic coordinate-type conversion automations. The simple goal is to fully automate handling of complex variable formats, allowing input to be formatted freely with any coordinate type, with features to fully control coordinate type formatting or let the sytems automate the process. The current API meets this goal for interactions with DGCV's core classes, but it is not fully extended to some ancillary classes. For example, full coordinate conversion features are implemented for differential forms but not yet for general tensor fields.
|
|
76
|
+
- Expanding libraries dedicated to specialized areas of differential geometry including, Symplect/Contact Hamiltonian formalism, CR structures, Riemannian and Kahler, Sasakian, etc.
|
|
77
|
+
|
|
78
|
+
Contributions and feedback from anyone interested are warmly welcomed.
|
|
79
|
+
Stay tuned for more updates!
|
dgcv-0.2.4/README.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# DGCV: Differential Geometry with Complex Variables
|
|
2
|
+
|
|
3
|
+
DGCV is an open-source Python package providing basic tools for differential geometry integrated with systematic organization of structures accompanying complex variables, in short, Differential Geometry with Complex Variables.
|
|
4
|
+
|
|
5
|
+
At its core are fully featured symbolic representations of standard DG objects such as vector fields and differential forms, defined relative to standard or complex coordinate systems. As systems of differential geometric objects constructed from complex variables inherit natural relationships from the underlying complex structure, DGCV tracks these relationships across the constructions. Immediate advantages of the uniform integration are seen in smooth switching between real and holomorphic coordinate representations of mathematical objects. In computations, DGCV classes dynamically manage this format switching on their own so that typical complex variables formulas can be written plainly and will simply work. Some examples of this: In coordinates $z_j = x_j + iy_j$, expressions such as $\frac{\partial}{\partial x_j}|z_j|^2$ or $d z_j \wedge d \overline{z_j} \left( \frac{\partial}{\partial z_j}, \frac{\partial}{\partial y_j} \right)$ are correctly parsed without needing to convert everything to a uniform variable format. Retrieving objects' complex structure-related attributes, like the holomorphic part of a vector field or pluriharmonic terms from a polynomial is straightforward. Complexified cotangent bundles and their exterior algebras are easily decomposed into components from the Dolbeault complex and Dolbeault operators themselves can be applied to functions and k-forms in either coordinate format.
|
|
6
|
+
|
|
7
|
+
DGCV was developed using Python 3.12, with dependencies on the SymPy and Pandas libraries in addition to base Python. Its classes integrate SymPy objects within their data structures and subclass from SymPy.Basic, thereby inheriting much of SymPy’s functionality. For instance, one can apply sympy.simplify() directly to most DGCV class objects. Developing complete compatibility with SymPy is a goal still in progress. Pandas is used to format and display data in a more readable manner.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
- Fully featured symbolic representations of vector fields, differential forms, and tensor fields
|
|
11
|
+
- Intuitive interactions with complex structures from holomorphic coordinate systems: DGCV objects dynamically manage coordinate transformations between real and holomorphic coordinates during computation as necessary, so objects can be represented in and freely converted between either coordinate format at any time.
|
|
12
|
+
- Dedicated python classes for representing common differential geometric structures including Riemannian metrics, Kahler structures, and more
|
|
13
|
+
- Custom LaTeX rendering for clean visual representation of mathematical objects, ideal for sharing mathematical ideas through clear Jupyter notebooks.
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
You can install DGCV directly from PyPI with pip:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install DGCV
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Note, depending on the operating system, a command like `python3` (for macOS/ Linux) or `py` (for windows) should proceed `pip`.
|
|
24
|
+
|
|
25
|
+
## Tutorials
|
|
26
|
+
|
|
27
|
+
Two Jupyter Notebook tutorials are available to help getting started with DGCV:
|
|
28
|
+
|
|
29
|
+
1. **DGCV Introduction**: An introduction to the key concepts and setup
|
|
30
|
+
- [View DGCV Introduction Tutorial](https://www.realandimaginary.com/dgcv/tutorials/DGCV_introduction/)
|
|
31
|
+
|
|
32
|
+
2. **DGCV in Action**: A quick tour through examples from some of the library's more elaborate functions
|
|
33
|
+
- [View DGCV in Action Tutorial](https://www.realandimaginary.com/dgcv/tutorials/DGCV_in_action/)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Running the Tutorials Locally
|
|
37
|
+
|
|
38
|
+
If you clone the DGCV github repository, you can run the tutorials locally with Jupyter:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
git clone https://github.com/YikesItsSykes/DGCV.git
|
|
42
|
+
cd DGCV/tutorials
|
|
43
|
+
jupyter notebook DGCV_introduction.ipynb
|
|
44
|
+
jupyter notebook DGCV_in_action.ipynb
|
|
45
|
+
```
|
|
46
|
+
Or download the tutorials individually from the repository [DGCV github repo](https://github.com/YikesItsSykes/DGCV).
|
|
47
|
+
|
|
48
|
+
## Documentation
|
|
49
|
+
DGCV documentation is hosted at [https://www.realandimaginary.com/dgcv/](https://www.realandimaginary.com/dgcv/), with documentation pages for each function in the library and more. Full documentation is under development, so for now, refer to the docstrings within the code for more information on available classes/methods and functions.
|
|
50
|
+
|
|
51
|
+
## License
|
|
52
|
+
DGCV is licensed under the MIT License. See the `LICENSE.txt` file for more information.
|
|
53
|
+
|
|
54
|
+
## Author
|
|
55
|
+
DGCV was created and is maintained by [David Sykes](https://www.realandimaginary.com).
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Future Development
|
|
60
|
+
The current (0.x.x) version of DGCV is foundation on which a lot more can be built. Many additions for future updates are planned, including:
|
|
61
|
+
- Extending complex variable handling and dynamic coordinate-type conversion automations. The simple goal is to fully automate handling of complex variable formats, allowing input to be formatted freely with any coordinate type, with features to fully control coordinate type formatting or let the sytems automate the process. The current API meets this goal for interactions with DGCV's core classes, but it is not fully extended to some ancillary classes. For example, full coordinate conversion features are implemented for differential forms but not yet for general tensor fields.
|
|
62
|
+
- Expanding libraries dedicated to specialized areas of differential geometry including, Symplect/Contact Hamiltonian formalism, CR structures, Riemannian and Kahler, Sasakian, etc.
|
|
63
|
+
|
|
64
|
+
Contributions and feedback from anyone interested are warmly welcomed.
|
|
65
|
+
Stay tuned for more updates!
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
requires-python = ">=3.6"
|
|
7
|
+
name = "DGCV"
|
|
8
|
+
version = "0.2.4"
|
|
9
|
+
description = "Differential Geometry with Complex Variables"
|
|
10
|
+
authors = [{ name = "David Sykes", email = "david@realandimaginary.com" }]
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
dependencies = ["sympy>=1.9", "pandas>=1.0", "ipython>=7.0"]
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
|
|
15
|
+
[tool.ruff]
|
|
16
|
+
line-length = 88
|
|
17
|
+
select = ["F", "E", "W", "I"]
|
|
18
|
+
extend-exclude = ["_build", "buck-out", "build", "dist", "tutorials"]
|
|
19
|
+
|
|
20
|
+
[tool.ruff.lint]
|
|
21
|
+
ignore = ["E501", "Q", "W291"]
|
|
22
|
+
|
|
23
|
+
[tool.black]
|
|
24
|
+
line-length = 88
|
|
25
|
+
skip-string-normalization = false
|
|
26
|
+
target-version = ["py37", "py38", "py39", "py310", "py311"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from setuptools import
|
|
1
|
+
from setuptools import find_packages, setup
|
|
2
2
|
|
|
3
3
|
long_description = """
|
|
4
4
|
# DGCV - Differential Geometry with Complex Variables
|
|
@@ -15,7 +15,7 @@ To get started, check out the Jupyter Notebook tutorials:
|
|
|
15
15
|
|
|
16
16
|
setup(
|
|
17
17
|
name="DGCV",
|
|
18
|
-
version="0.2.
|
|
18
|
+
version="0.2.4",
|
|
19
19
|
description="Differential Geometry with Complex Variables",
|
|
20
20
|
long_description=long_description, # This shows up on PyPI
|
|
21
21
|
long_description_content_type="text/markdown",
|
|
@@ -24,15 +24,41 @@ License:
|
|
|
24
24
|
"""
|
|
25
25
|
|
|
26
26
|
############## dependencies
|
|
27
|
-
from sympy import eye, expand, Matrix, numer, poly_from_expr, solve, Transpose, Symbol
|
|
28
27
|
from functools import reduce
|
|
29
|
-
from .config import _cached_caller_globals
|
|
30
|
-
from .combinatorics import *
|
|
31
|
-
from .DGCore import *
|
|
32
|
-
from .vectorFieldsAndDifferentialForms import *
|
|
33
|
-
from .polynomials import *
|
|
34
|
-
from ._safeguards import retrieve_passkey
|
|
35
28
|
|
|
29
|
+
from sympy import (
|
|
30
|
+
I,
|
|
31
|
+
Matrix,
|
|
32
|
+
Rational,
|
|
33
|
+
Symbol,
|
|
34
|
+
Transpose,
|
|
35
|
+
conjugate,
|
|
36
|
+
expand,
|
|
37
|
+
eye,
|
|
38
|
+
im,
|
|
39
|
+
numer,
|
|
40
|
+
poly_from_expr,
|
|
41
|
+
simplify,
|
|
42
|
+
solve,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
from ._safeguards import retrieve_passkey
|
|
46
|
+
from .config import _cached_caller_globals
|
|
47
|
+
from .DGCVCore import (
|
|
48
|
+
VFClass,
|
|
49
|
+
addVF,
|
|
50
|
+
allToReal,
|
|
51
|
+
clearVar,
|
|
52
|
+
holToReal,
|
|
53
|
+
holVF_coeffs,
|
|
54
|
+
listVar,
|
|
55
|
+
realPartOfVF,
|
|
56
|
+
scaleVF,
|
|
57
|
+
symToReal,
|
|
58
|
+
variableProcedure,
|
|
59
|
+
)
|
|
60
|
+
from .polynomials import createPolynomial
|
|
61
|
+
from .vectorFieldsAndDifferentialForms import assembleFromHolVFC
|
|
36
62
|
|
|
37
63
|
############## CR geometry
|
|
38
64
|
|
|
@@ -213,12 +239,12 @@ def findWeightedCRSymmetries(
|
|
|
213
239
|
varLoc1.difference_update(varLoc)
|
|
214
240
|
varComp.difference_update(varLoc1)
|
|
215
241
|
variableProcedure(arg6, len(varLoc), assumeReal=True)
|
|
216
|
-
if applyNumer
|
|
242
|
+
if applyNumer:
|
|
217
243
|
if varLoc1 == set():
|
|
218
244
|
varLoc1 = set(arg2)
|
|
219
245
|
coefListLoc = poly_from_expr(expand(numer(tOLoc)), *varLoc1)[0].coeffs()
|
|
220
246
|
solLoc = solve(coefListLoc, varLoc)
|
|
221
|
-
elif simplifyingFactor
|
|
247
|
+
elif simplifyingFactor is None:
|
|
222
248
|
if varLoc1 == set():
|
|
223
249
|
varLoc1 = set(arg2)
|
|
224
250
|
coefListLoc = poly_from_expr(expand(tOLoc), *varLoc1)[0].coeffs()
|
|
@@ -233,7 +259,7 @@ def findWeightedCRSymmetries(
|
|
|
233
259
|
if solLoc == []:
|
|
234
260
|
clearVar(*listVar(temporary_only=True), report=False)
|
|
235
261
|
return "no solution"
|
|
236
|
-
elif type(solLoc)
|
|
262
|
+
elif type(solLoc) is dict:
|
|
237
263
|
VFCLoc = [j.subs(solLoc) for j in holVF_coeffs(VFLoc, arg2)]
|
|
238
264
|
subVar = sum(VFCLoc).atoms(Symbol)
|
|
239
265
|
subVar.difference_update(set(arg2))
|
|
@@ -243,12 +269,12 @@ def findWeightedCRSymmetries(
|
|
|
243
269
|
for j in VFCLoc
|
|
244
270
|
]
|
|
245
271
|
clearVar(*listVar(temporary_only=True), report=False)
|
|
246
|
-
if returnVectorFieldBasis
|
|
272
|
+
if returnVectorFieldBasis:
|
|
247
273
|
VFListLoc = []
|
|
248
274
|
for j in eval(arg6, _cached_caller_globals):
|
|
249
275
|
VFCLocTemp = [
|
|
250
276
|
k.subs(j, 1).subs(
|
|
251
|
-
[(
|
|
277
|
+
[(ll, 0) for ll in eval(arg6, _cached_caller_globals)]
|
|
252
278
|
)
|
|
253
279
|
for k in VFCLoc
|
|
254
280
|
]
|
|
@@ -306,7 +332,7 @@ def model2Nondegenerate(arg1, arg2, arg3, arg4, return_matrices=False):
|
|
|
306
332
|
* arg2
|
|
307
333
|
* arg1
|
|
308
334
|
)
|
|
309
|
-
if return_matrices
|
|
335
|
+
if return_matrices:
|
|
310
336
|
return (
|
|
311
337
|
simplify(
|
|
312
338
|
(
|