William Booth-Clibborn commited on
Commit
6fbdb36
·
unverified ·
2 Parent(s): 8e9aba4 0805909

Merge branch 'MilesCranmer:master' into master

Browse files
.all-contributorsrc ADDED
@@ -0,0 +1,387 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "projectName": "PySR",
3
+ "projectOwner": "MilesCranmer",
4
+ "repoType": "github",
5
+ "repoHost": "https://github.com",
6
+ "files": [
7
+ "README.md",
8
+ "CONTRIBUTORS.md"
9
+ ],
10
+ "imageSize": 50,
11
+ "commit": false,
12
+ "commitConvention": "angular",
13
+ "contributors": [
14
+ {
15
+ "login": "mkitti",
16
+ "name": "Mark Kittisopikul",
17
+ "avatar_url": "https://avatars.githubusercontent.com/u/8062771?v=4",
18
+ "profile": "https://www.linkedin.com/in/markkittisopikul/",
19
+ "contributions": [
20
+ "code",
21
+ "ideas",
22
+ "infra",
23
+ "platform",
24
+ "promotion",
25
+ "review",
26
+ "tool",
27
+ "test"
28
+ ]
29
+ },
30
+ {
31
+ "login": "tttc3",
32
+ "name": "T Coxon",
33
+ "avatar_url": "https://avatars.githubusercontent.com/u/97948946?v=4",
34
+ "profile": "https://github.com/tttc3",
35
+ "contributions": [
36
+ "bug",
37
+ "code",
38
+ "plugin",
39
+ "ideas",
40
+ "infra",
41
+ "maintenance",
42
+ "review",
43
+ "tool",
44
+ "test",
45
+ "userTesting"
46
+ ]
47
+ },
48
+ {
49
+ "login": "DhananjayAshok",
50
+ "name": "Dhananjay Ashok",
51
+ "avatar_url": "https://avatars.githubusercontent.com/u/46792537?v=4",
52
+ "profile": "https://github.com/DhananjayAshok",
53
+ "contributions": [
54
+ "code",
55
+ "example",
56
+ "ideas",
57
+ "maintenance",
58
+ "test"
59
+ ]
60
+ },
61
+ {
62
+ "login": "johanbluecreek",
63
+ "name": "Johan Blåbäck",
64
+ "avatar_url": "https://avatars.githubusercontent.com/u/852554?v=4",
65
+ "profile": "https://gitlab.com/johanbluecreek",
66
+ "contributions": [
67
+ "bug",
68
+ "code",
69
+ "ideas",
70
+ "maintenance",
71
+ "promotion",
72
+ "review",
73
+ "test",
74
+ "userTesting"
75
+ ]
76
+ },
77
+ {
78
+ "login": "AlCap23",
79
+ "name": "JuliusMartensen",
80
+ "avatar_url": "https://avatars.githubusercontent.com/u/20998300?v=4",
81
+ "profile": "https://mathopt.de/people/martensen/index.php",
82
+ "contributions": [
83
+ "bug",
84
+ "code",
85
+ "doc",
86
+ "plugin",
87
+ "ideas",
88
+ "infra",
89
+ "maintenance",
90
+ "platform",
91
+ "promotion",
92
+ "review",
93
+ "tool",
94
+ "userTesting"
95
+ ]
96
+ },
97
+ {
98
+ "login": "ngam",
99
+ "name": "ngam",
100
+ "avatar_url": "https://avatars.githubusercontent.com/u/67342040?v=4",
101
+ "profile": "https://github.com/ngam",
102
+ "contributions": [
103
+ "code",
104
+ "infra",
105
+ "platform",
106
+ "review",
107
+ "tool",
108
+ "test"
109
+ ]
110
+ },
111
+ {
112
+ "login": "kazewong",
113
+ "name": "Kaze Wong",
114
+ "avatar_url": "https://avatars.githubusercontent.com/u/8803931?v=4",
115
+ "profile": "https://github.com/kazewong",
116
+ "contributions": [
117
+ "bug",
118
+ "code",
119
+ "ideas",
120
+ "infra",
121
+ "maintenance",
122
+ "promotion",
123
+ "review",
124
+ "research",
125
+ "userTesting"
126
+ ]
127
+ },
128
+ {
129
+ "login": "ChrisRackauckas",
130
+ "name": "Christopher Rackauckas",
131
+ "avatar_url": "https://avatars.githubusercontent.com/u/1814174?v=4",
132
+ "profile": "https://github.com/ChrisRackauckas",
133
+ "contributions": [
134
+ "bug",
135
+ "code",
136
+ "plugin",
137
+ "ideas",
138
+ "infra",
139
+ "promotion",
140
+ "review",
141
+ "research",
142
+ "tool",
143
+ "test",
144
+ "userTesting"
145
+ ]
146
+ },
147
+ {
148
+ "login": "patrick-kidger",
149
+ "name": "Patrick Kidger",
150
+ "avatar_url": "https://avatars.githubusercontent.com/u/33688385?v=4",
151
+ "profile": "https://kidger.site/",
152
+ "contributions": [
153
+ "bug",
154
+ "code",
155
+ "doc",
156
+ "plugin",
157
+ "ideas",
158
+ "maintenance",
159
+ "promotion",
160
+ "review",
161
+ "research",
162
+ "tool",
163
+ "test",
164
+ "userTesting"
165
+ ]
166
+ },
167
+ {
168
+ "login": "Pablo-Lemos",
169
+ "name": "Pablo Lemos",
170
+ "avatar_url": "https://avatars.githubusercontent.com/u/38078898?v=4",
171
+ "profile": "https://pablo-lemos.github.io/",
172
+ "contributions": [
173
+ "bug",
174
+ "ideas",
175
+ "promotion",
176
+ "review",
177
+ "research",
178
+ "userTesting"
179
+ ]
180
+ },
181
+ {
182
+ "login": "Moelf",
183
+ "name": "Jerry Ling",
184
+ "avatar_url": "https://avatars.githubusercontent.com/u/5306213?v=4",
185
+ "profile": "https://github.com/Moelf",
186
+ "contributions": [
187
+ "bug",
188
+ "code",
189
+ "doc",
190
+ "example",
191
+ "ideas",
192
+ "promotion",
193
+ "review",
194
+ "userTesting"
195
+ ]
196
+ },
197
+ {
198
+ "login": "CharFox1",
199
+ "name": "Charles Fox",
200
+ "avatar_url": "https://avatars.githubusercontent.com/u/35052672?v=4",
201
+ "profile": "https://github.com/CharFox1",
202
+ "contributions": [
203
+ "bug",
204
+ "code",
205
+ "ideas",
206
+ "maintenance",
207
+ "promotion",
208
+ "review",
209
+ "research",
210
+ "userTesting"
211
+ ]
212
+ },
213
+ {
214
+ "login": "johannbrehmer",
215
+ "name": "Johann Brehmer",
216
+ "avatar_url": "https://avatars.githubusercontent.com/u/17068560?v=4",
217
+ "profile": "https://github.com/johannbrehmer",
218
+ "contributions": [
219
+ "code",
220
+ "doc",
221
+ "ideas",
222
+ "promotion",
223
+ "review",
224
+ "research",
225
+ "test",
226
+ "userTesting"
227
+ ]
228
+ },
229
+ {
230
+ "login": "marius311",
231
+ "name": "Marius Millea",
232
+ "avatar_url": "https://avatars.githubusercontent.com/u/1510968?v=4",
233
+ "profile": "http://www.cosmicmar.com/",
234
+ "contributions": [
235
+ "code",
236
+ "ideas",
237
+ "promotion",
238
+ "review",
239
+ "userTesting"
240
+ ]
241
+ },
242
+ {
243
+ "login": "cobac",
244
+ "name": "Coba",
245
+ "avatar_url": "https://avatars.githubusercontent.com/u/27872944?v=4",
246
+ "profile": "https://gitlab.com/cobac",
247
+ "contributions": [
248
+ "bug",
249
+ "code",
250
+ "ideas",
251
+ "review",
252
+ "userTesting"
253
+ ]
254
+ },
255
+ {
256
+ "login": "pitmonticone",
257
+ "name": "Pietro Monticone",
258
+ "avatar_url": "https://avatars.githubusercontent.com/u/38562595?v=4",
259
+ "profile": "https://github.com/pitmonticone",
260
+ "contributions": [
261
+ "bug",
262
+ "doc",
263
+ "ideas"
264
+ ]
265
+ },
266
+ {
267
+ "login": "sheevy",
268
+ "name": "Mateusz Kubica",
269
+ "avatar_url": "https://avatars.githubusercontent.com/u/1525683?v=4",
270
+ "profile": "https://github.com/sheevy",
271
+ "contributions": [
272
+ "doc",
273
+ "ideas"
274
+ ]
275
+ },
276
+ {
277
+ "login": "JayWadekar",
278
+ "name": "Jay Wadekar",
279
+ "avatar_url": "https://avatars.githubusercontent.com/u/5493388?v=4",
280
+ "profile": "https://jaywadekar.github.io/",
281
+ "contributions": [
282
+ "bug",
283
+ "ideas",
284
+ "promotion",
285
+ "research"
286
+ ]
287
+ },
288
+ {
289
+ "login": "Jgmedina95",
290
+ "name": "Jgmedina95",
291
+ "avatar_url": "https://avatars.githubusercontent.com/u/97254349?v=4",
292
+ "profile": "https://github.com/Jgmedina95",
293
+ "contributions": [
294
+ "bug",
295
+ "ideas",
296
+ "review"
297
+ ]
298
+ },
299
+ {
300
+ "login": "mcabbott",
301
+ "name": "Michael Abbott",
302
+ "avatar_url": "https://avatars.githubusercontent.com/u/32575566?v=4",
303
+ "profile": "https://github.com/mcabbott",
304
+ "contributions": [
305
+ "code",
306
+ "ideas",
307
+ "review",
308
+ "tool"
309
+ ]
310
+ },
311
+ {
312
+ "login": "oscardssmith",
313
+ "name": "Oscar Smith",
314
+ "avatar_url": "https://avatars.githubusercontent.com/u/11729272?v=4",
315
+ "profile": "https://github.com/oscardssmith",
316
+ "contributions": [
317
+ "code",
318
+ "ideas"
319
+ ]
320
+ },
321
+ {
322
+ "login": "henriquebecker91",
323
+ "name": "Henrique Becker",
324
+ "avatar_url": "https://avatars.githubusercontent.com/u/14113435?v=4",
325
+ "profile": "https://github.com/henriquebecker91",
326
+ "contributions": [
327
+ "code",
328
+ "ideas",
329
+ "review"
330
+ ]
331
+ },
332
+ {
333
+ "login": "qwertyjl",
334
+ "name": "qwertyjl",
335
+ "avatar_url": "https://avatars.githubusercontent.com/u/110912592?v=4",
336
+ "profile": "https://github.com/qwertyjl",
337
+ "contributions": [
338
+ "bug",
339
+ "doc",
340
+ "ideas",
341
+ "userTesting"
342
+ ]
343
+ },
344
+ {
345
+ "login": "rikhuijzer",
346
+ "name": "Rik Huijzer",
347
+ "avatar_url": "https://avatars.githubusercontent.com/u/20724914?v=4",
348
+ "profile": "https://huijzer.xyz/",
349
+ "contributions": [
350
+ "ideas",
351
+ "infra"
352
+ ]
353
+ },
354
+ {
355
+ "login": "GCaptainNemo",
356
+ "name": "Hongyu Wang",
357
+ "avatar_url": "https://avatars.githubusercontent.com/u/43086239?v=4",
358
+ "profile": "https://github.com/GCaptainNemo",
359
+ "contributions": [
360
+ "ideas",
361
+ "promotion",
362
+ "research"
363
+ ]
364
+ },
365
+ {
366
+ "login": "SauravMaheshkar",
367
+ "name": "Saurav Maheshkar",
368
+ "avatar_url": "https://avatars.githubusercontent.com/u/61241031?v=4",
369
+ "profile": "https://sauravmaheshkar.github.io/",
370
+ "contributions": [
371
+ "tool"
372
+ ]
373
+ }
374
+ ],
375
+ "contributorsPerLine": 10,
376
+ "linkToUsage": false,
377
+ "types": {
378
+ "ideas": {
379
+ "symbol": "💡",
380
+ "description": "Ideas, planning, and feedback."
381
+ },
382
+ "example": {
383
+ "description": "Examples.",
384
+ "symbol": "🌍"
385
+ }
386
+ }
387
+ }
.github/ISSUE_TEMPLATE/bug_report.md DELETED
@@ -1,34 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
- title: "[BUG] *Summary of bug*"
5
- labels: bug
6
- assignees: MilesCranmer
7
-
8
- ---
9
-
10
- **Describe the bug**
11
- A clear and concise description of what the bug is.
12
-
13
- **Version (please include the following information):**
14
- - OS: [e.g. macOS]
15
- - Julia version [Run `julia --version` in the terminal]
16
- - Python version [Run `python --version` in the terminal]
17
- - Did you install with `pip` or `conda`?
18
- - PySR version [Run `python -c 'import pysr; print(pysr.__version__)'`]
19
- - Does the bug still appear with the latest version of PySR?
20
-
21
- **Configuration**
22
- - What are your PySR settings?
23
- - What dataset are you running on?
24
- - If possible, please share a minimal code example that produces the error.
25
-
26
- **Error message**
27
- Add the error message here, or whatever other information would be useful for debugging.
28
-
29
- If the error is "Couldn't find equation file...", this error indicates something
30
- went wrong with the backend. Please scroll up and copy
31
- the output of Julia, rather than the output of python.
32
-
33
- **Additional context**
34
- Add any other context about the problem here.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.github/ISSUE_TEMPLATE/bug_report.yml ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Bug report
2
+ description: File a bug report
3
+ title: "[BUG]: "
4
+ labels: ["bug"]
5
+ assignees:
6
+ - MilesCranmer
7
+
8
+ body:
9
+ - type: markdown
10
+ attributes:
11
+ value: |
12
+ Thanks for taking the time to fill out this bug report!
13
+ - type: textarea
14
+ id: what-happened
15
+ attributes:
16
+ label: What happened?
17
+ description: Also tell us, what did you expect to happen?
18
+ placeholder: Tell us what you see!
19
+ value: "A bug happened!"
20
+ validations:
21
+ required: true
22
+ - type: input
23
+ id: version
24
+ attributes:
25
+ label: Version
26
+ description: What version of PySR are you running? `python3 -c 'import pysr; print(pysr.__version__)'`. (You might want to check the latest version, in case the issue has already been fixed.)
27
+ validations:
28
+ required: true
29
+ - type: dropdown
30
+ id: os
31
+ attributes:
32
+ label: Operating System
33
+ description: What operating system do you see the issue on?
34
+ multiple: true
35
+ options:
36
+ - Windows
37
+ - macOS
38
+ - Linux
39
+ - type: dropdown
40
+ id: pkg-manager
41
+ attributes:
42
+ label: Package Manager
43
+ description: What package manager are you using to install PySR?
44
+ options:
45
+ - pip
46
+ - Conda
47
+ - Other (specify below)
48
+ - type: dropdown
49
+ id: display
50
+ attributes:
51
+ label: Interface
52
+ description: How are you running PySR?
53
+ options:
54
+ - Jupyter Notebook
55
+ - IPython Terminal
56
+ - Script (i.e., `python my_script.py`)
57
+ - Google Colab
58
+ - Other (specify below)
59
+ validations:
60
+ required: true
61
+ - type: textarea
62
+ id: logs
63
+ attributes:
64
+ label: Relevant log output
65
+ description: Please copy and paste any log output or error messages. This will be automatically formatted into code, so no need for backticks.
66
+ render: shell
67
+ - type: textarea
68
+ id: extra
69
+ attributes:
70
+ label: Extra Info
71
+ description: Please tell us any other information that you think might help. For example, what are your PySR settings? What dataset are you running on? If possible, please share a minimal code example that produces the error.
.github/ISSUE_TEMPLATE/config.yml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: PySR Forums
4
+ url: https://github.com/MilesCranmer/PySR/discussions
5
+ about: Please ask and answer questions about how to use PySR here.
.github/ISSUE_TEMPLATE/feature_request.md DELETED
@@ -1,17 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for this project
4
- title: "[Feature]"
5
- labels: enhancement
6
- assignees: MilesCranmer
7
-
8
- ---
9
-
10
- **Is your feature request related to a problem? Please describe.**
11
- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
-
13
- **Describe the solution you'd like**
14
- A clear and concise description of what you want to happen.
15
-
16
- **Additional context**
17
- Add any other context or screenshots about the feature request here.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
.github/ISSUE_TEMPLATE/feature_request.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: Feature request
2
+ description: Suggest an idea for this project
3
+ title: "[Feature]: "
4
+ labels: ["enhancement"]
5
+
6
+ body:
7
+ - type: markdown
8
+ attributes:
9
+ value: |
10
+ Thanks for taking the time to suggest a feature for PySR! Your interest in the project helps improve the software for everyone 🚀
11
+ - type: textarea
12
+ id: feature
13
+ attributes:
14
+ label: Feature Request
15
+ description: Describe your desired feature request here! The more details the better.
16
+ validations:
17
+ required: true
18
+ - type: markdown
19
+ attributes:
20
+ value: |
21
+ Be sure to check out the [PySR forums](https://github.com/MilesCranmer/PySR/discussions) to chat with other users about PySR use-cases!
22
+
.github/workflows/update_backend.yml ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: PySR backend update
2
+ on:
3
+ schedule:
4
+ - cron: '00 00 * * *'
5
+ workflow_dispatch:
6
+ jobs:
7
+ update_compat:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v3
11
+ - uses: actions/setup-python@v4
12
+ with:
13
+ python-version: 3.9
14
+ cache: pip
15
+
16
+ - name: "Install PySR"
17
+ run: |
18
+ python -m pip install --upgrade pip
19
+ pip install -r requirements.txt
20
+ python setup.py install
21
+ # Not needed:
22
+ # python -c 'import pysr; pysr.install()'
23
+
24
+ - name: "Get SymbolicRegression.jl latest version"
25
+ id: get-latest
26
+ run: |
27
+ cd $(mktemp -d)
28
+ git clone https://github.com/MilesCranmer/SymbolicRegression.jl
29
+ cd SymbolicRegression.jl
30
+ echo "version=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_OUTPUT
31
+
32
+ - name: "Get SymbolicRegression.jl version used in PySR"
33
+ id: get-current
34
+ run: |
35
+ echo "version=$(python -c 'import pysr; print(pysr.version.__symbolic_regression_jl_version__)' 2>/dev/null)" >> $GITHUB_OUTPUT
36
+
37
+ # If versions are different, we want to take our checked-out version,
38
+ # create a new branch called "update_compat_{...}", where the "..."
39
+ # is a timestamp. We then want to
40
+ # go to pysr/version.py, bump the patch version of PySR (__version__),
41
+ # set the version of __symbolic_regression_jl_version__ to the latest
42
+ # version of SymbolicRegression.jl, and then commit and push.
43
+ # Finally, we will open a PR from this branch to master.
44
+ - name: "Update versions"
45
+ if: ${{ steps.get-latest.outputs.version != steps.get-current.outputs.version }}
46
+ run: |
47
+ # Bump PySR patch number:
48
+ CURRENT_PYSR_PATCH_VERSION=$(python -c 'import pysr; print(pysr.version.__version__.split(".")[-1], end="")' 2>/dev/null)
49
+ NEW_PYSR_PATCH_VERSION=$((CURRENT_PYSR_PATCH_VERSION + 1))
50
+ sed -i "s/^__version__ = .*/__version__ = \"$(python -c 'import pysr; print(".".join(pysr.version.__version__.split(".")[:-1]), end="")' 2>/dev/null).${NEW_PYSR_PATCH_VERSION}\"/" pysr/version.py
51
+
52
+ # Set SymbolicRegression.jl version:
53
+ sed -i "s/^__symbolic_regression_jl_version__ = .*/__symbolic_regression_jl_version__ = \"${{ steps.get-latest.outputs.version }}\"/" pysr/version.py
54
+
55
+ - name: "Create PR"
56
+ uses: peter-evans/create-pull-request@v3
57
+ with:
58
+ token: ${{ secrets.REPO_SCOPED_TOKEN }}
59
+ title: "Automated update to backend: v${{ steps.get-latest.outputs.version }}"
60
+ body: |
61
+ This PR was automatically generated by the GitHub Action `.github/workflows/update-backend.yml`
62
+
63
+ It updates the backend version to v${{ steps.get-latest.outputs.version }}. For a full description of the changes, see the backend changelog: [v${{ steps.get-latest.outputs.version }}](https://github.com/MilesCranmer/SymbolicRegression.jl/releases/tag/v${{ steps.get-latest.outputs.version }}).
64
+ delete-branch: true
65
+ commit-message: "Update backend version to v${{ steps.get-latest.outputs.version }}"
66
+ add-paths: pysr/version.py
CONTRIBUTORS.md ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Welcome to PySR's contributing guide <!-- Forked from GitHub's awesome template contributing guide -->
2
+
3
+ Thank you for investing your time in contributing to our project! Any contribution you make will be reflected on the [contributors list](#contributors) :sparkles:.
4
+
5
+ In this guide you will get an overview of the contribution workflow from opening an issue, creating a PR, reviewing, and merging the PR.
6
+
7
+ ## New contributor guide
8
+
9
+ To get an overview of the project, read PySR's [README](README.md). The [PySR docs](https://astroautomata.com/PySR/) give additional information.
10
+ Here are some resources to help you get started with open source contributions in general:
11
+
12
+ - [Finding ways to contribute to open source on GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/finding-ways-to-contribute-to-open-source-on-github)
13
+ - [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
14
+ - [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow)
15
+ - [Collaborating with pull requests](https://docs.github.com/en/github/collaborating-with-pull-requests)
16
+
17
+ ### Issues
18
+
19
+ #### Create a new issue
20
+
21
+ If you spot a problem with PySR, [search if an issue already exists](https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-by-the-title-body-or-comments). If a related issue doesn't exist, you can open a new issue using a relevant [issue form](https://github.com/MilesCranmer/PySR/issues/new/choose).
22
+
23
+ #### Solve an issue
24
+
25
+ Scan through our [existing issues](https://github.com/MilesCranmer/PySR/issues) to find one that interests you (feel free to work on any!). You can narrow down the search using `labels` as filters. See [Labels](/contributing/how-to-use-labels.md) for more information. If you find an issue to work on, you are welcome to open a PR with a fix.
26
+
27
+ ### Make Changes
28
+
29
+ #### Make changes locally
30
+
31
+ 1. Fork the repository.
32
+ - Using GitHub Desktop:
33
+ - [Getting started with GitHub Desktop](https://docs.github.com/en/desktop/installing-and-configuring-github-desktop/getting-started-with-github-desktop) will guide you through setting up Desktop.
34
+ - Once Desktop is set up, you can use it to [fork the repo](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/cloning-and-forking-repositories-from-github-desktop)!
35
+
36
+ - Using the command line:
37
+ - [Fork the repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#fork-an-example-repository) so that you can make your changes without affecting the original project until you're ready to merge them.
38
+
39
+ 2. Create a working branch and start with your changes!
40
+
41
+ 3. (Optional) If you would like to make changes to PySR itself, skip to step 4. However, if you are interested in making changes to the _symbolic regression code_ itself,
42
+ check out the [guide](https://astroautomata.com/PySR/backend/) on modifying a custom SymbolicRegression.jl library.
43
+ In this case, you might instead be interested in making suggestions to the [SymbolicRegression.jl](http://github.com/MilesCranmer/SymbolicRegression.jl) library.
44
+
45
+ 4. You can install your local version of PySR with `python setup.py install`, and run tests with `python -m pysr.test main`.
46
+
47
+ ### Commit your update
48
+
49
+ Once you are happy with your changes, run `black .` to apply [Black](https://black.readthedocs.io/en/stable/) formatting to your local
50
+ version. Commit the changes once you are ready.
51
+
52
+ ### Pull Request
53
+
54
+ When you're finished with the changes, create a pull request, also known as a PR.
55
+ - Don't forget to [link PR to issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue) if you are solving one.
56
+ - Enable the checkbox to [allow maintainer edits](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork) so the branch can be updated for a merge.
57
+ Once you submit your PR, a PySR team member will review your proposal. We may ask questions or request additional information.
58
+ - We may ask for changes to be made before a PR can be merged, either using [suggested changes](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/incorporating-feedback-in-your-pull-request) or pull request comments. You can apply suggested changes directly through the UI. You can make any other changes in your fork, then commit them to your branch.
59
+ - As you update your PR and apply changes, mark each conversation as [resolved](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#resolving-conversations).
60
+ - If you run into any merge issues, checkout this [git tutorial](https://github.com/skills/resolve-merge-conflicts) to help you resolve merge conflicts and other issues.
61
+
62
+ ### Your PR is merged!
63
+
64
+ Congratulations :tada::tada: The PySR team thanks you :sparkles:.
65
+
66
+ Once your PR is merged, your contributions will be publicly visible.
67
+
68
+ Thanks for being part of the PySR community!
69
+
70
+ <div align="center">
71
+
72
+ ## Contributors
73
+
74
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
75
+ <!-- prettier-ignore-start -->
76
+ <!-- markdownlint-disable -->
77
+ <table>
78
+ <tbody>
79
+ <tr>
80
+ <td align="center" valign="top" width="10%"><a href="https://www.linkedin.com/in/markkittisopikul/"><img src="https://avatars.githubusercontent.com/u/8062771?v=4?s=50" width="50px;" alt="Mark Kittisopikul"/><br /><sub><b>Mark Kittisopikul</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=mkitti" title="Code">💻</a> <a href="#ideas-mkitti" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-mkitti" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mkitti" title="Packaging/porting to new platform">📦</a> <a href="#promotion-mkitti" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amkitti" title="Reviewed Pull Requests">👀</a> <a href="#tool-mkitti" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=mkitti" title="Tests">⚠️</a></td>
81
+ <td align="center" valign="top" width="10%"><a href="https://github.com/tttc3"><img src="https://avatars.githubusercontent.com/u/97948946?v=4?s=50" width="50px;" alt="T Coxon"/><br /><sub><b>T Coxon</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Atttc3" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=tttc3" title="Code">💻</a> <a href="#plugin-tttc3" title="Plugin/utility libraries">🔌</a> <a href="#ideas-tttc3" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-tttc3" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-tttc3" title="Maintenance">🚧</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Atttc3" title="Reviewed Pull Requests">👀</a> <a href="#tool-tttc3" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=tttc3" title="Tests">⚠️</a> <a href="#userTesting-tttc3" title="User Testing">📓</a></td>
82
+ <td align="center" valign="top" width="10%"><a href="https://github.com/DhananjayAshok"><img src="https://avatars.githubusercontent.com/u/46792537?v=4?s=50" width="50px;" alt="Dhananjay Ashok"/><br /><sub><b>Dhananjay Ashok</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=DhananjayAshok" title="Code">💻</a> <a href="#example-DhananjayAshok" title="Examples.">🌍</a> <a href="#ideas-DhananjayAshok" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-DhananjayAshok" title="Maintenance">🚧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=DhananjayAshok" title="Tests">⚠️</a></td>
83
+ <td align="center" valign="top" width="10%"><a href="https://gitlab.com/johanbluecreek"><img src="https://avatars.githubusercontent.com/u/852554?v=4?s=50" width="50px;" alt="Johan Blåbäck"/><br /><sub><b>Johan Blåbäck</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Ajohanbluecreek" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johanbluecreek" title="Code">💻</a> <a href="#ideas-johanbluecreek" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-johanbluecreek" title="Maintenance">🚧</a> <a href="#promotion-johanbluecreek" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ajohanbluecreek" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johanbluecreek" title="Tests">⚠️</a> <a href="#userTesting-johanbluecreek" title="User Testing">📓</a></td>
84
+ <td align="center" valign="top" width="10%"><a href="https://mathopt.de/people/martensen/index.php"><img src="https://avatars.githubusercontent.com/u/20998300?v=4?s=50" width="50px;" alt="JuliusMartensen"/><br /><sub><b>JuliusMartensen</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AAlCap23" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=AlCap23" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=AlCap23" title="Documentation">📖</a> <a href="#plugin-AlCap23" title="Plugin/utility libraries">🔌</a> <a href="#ideas-AlCap23" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-AlCap23" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-AlCap23" title="Maintenance">🚧</a> <a href="#platform-AlCap23" title="Packaging/porting to new platform">📦</a> <a href="#promotion-AlCap23" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AAlCap23" title="Reviewed Pull Requests">👀</a> <a href="#tool-AlCap23" title="Tools">🔧</a> <a href="#userTesting-AlCap23" title="User Testing">📓</a></td>
85
+ <td align="center" valign="top" width="10%"><a href="https://github.com/ngam"><img src="https://avatars.githubusercontent.com/u/67342040?v=4?s=50" width="50px;" alt="ngam"/><br /><sub><b>ngam</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=ngam" title="Code">💻</a> <a href="#infra-ngam" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-ngam" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Angam" title="Reviewed Pull Requests">👀</a> <a href="#tool-ngam" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ngam" title="Tests">⚠️</a></td>
86
+ <td align="center" valign="top" width="10%"><a href="https://github.com/kazewong"><img src="https://avatars.githubusercontent.com/u/8803931?v=4?s=50" width="50px;" alt="Kaze Wong"/><br /><sub><b>Kaze Wong</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Akazewong" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=kazewong" title="Code">💻</a> <a href="#ideas-kazewong" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-kazewong" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-kazewong" title="Maintenance">🚧</a> <a href="#promotion-kazewong" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Akazewong" title="Reviewed Pull Requests">👀</a> <a href="#research-kazewong" title="Research">🔬</a> <a href="#userTesting-kazewong" title="User Testing">📓</a></td>
87
+ <td align="center" valign="top" width="10%"><a href="https://github.com/ChrisRackauckas"><img src="https://avatars.githubusercontent.com/u/1814174?v=4?s=50" width="50px;" alt="Christopher Rackauckas"/><br /><sub><b>Christopher Rackauckas</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AChrisRackauckas" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ChrisRackauckas" title="Code">💻</a> <a href="#plugin-ChrisRackauckas" title="Plugin/utility libraries">🔌</a> <a href="#ideas-ChrisRackauckas" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-ChrisRackauckas" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#promotion-ChrisRackauckas" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AChrisRackauckas" title="Reviewed Pull Requests">👀</a> <a href="#research-ChrisRackauckas" title="Research">🔬</a> <a href="#tool-ChrisRackauckas" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ChrisRackauckas" title="Tests">⚠️</a> <a href="#userTesting-ChrisRackauckas" title="User Testing">📓</a></td>
88
+ <td align="center" valign="top" width="10%"><a href="https://kidger.site/"><img src="https://avatars.githubusercontent.com/u/33688385?v=4?s=50" width="50px;" alt="Patrick Kidger"/><br /><sub><b>Patrick Kidger</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Apatrick-kidger" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Documentation">📖</a> <a href="#plugin-patrick-kidger" title="Plugin/utility libraries">🔌</a> <a href="#ideas-patrick-kidger" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-patrick-kidger" title="Maintenance">🚧</a> <a href="#promotion-patrick-kidger" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Apatrick-kidger" title="Reviewed Pull Requests">👀</a> <a href="#research-patrick-kidger" title="Research">🔬</a> <a href="#tool-patrick-kidger" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Tests">⚠️</a> <a href="#userTesting-patrick-kidger" title="User Testing">📓</a></td>
89
+ <td align="center" valign="top" width="10%"><a href="https://pablo-lemos.github.io/"><img src="https://avatars.githubusercontent.com/u/38078898?v=4?s=50" width="50px;" alt="Pablo Lemos"/><br /><sub><b>Pablo Lemos</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3APablo-Lemos" title="Bug reports">🐛</a> <a href="#ideas-Pablo-Lemos" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-Pablo-Lemos" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3APablo-Lemos" title="Reviewed Pull Requests">👀</a> <a href="#research-Pablo-Lemos" title="Research">🔬</a> <a href="#userTesting-Pablo-Lemos" title="User Testing">📓</a></td>
90
+ </tr>
91
+ <tr>
92
+ <td align="center" valign="top" width="10%"><a href="https://github.com/Moelf"><img src="https://avatars.githubusercontent.com/u/5306213?v=4?s=50" width="50px;" alt="Jerry Ling"/><br /><sub><b>Jerry Ling</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AMoelf" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=Moelf" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=Moelf" title="Documentation">📖</a> <a href="#example-Moelf" title="Examples.">🌍</a> <a href="#ideas-Moelf" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-Moelf" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AMoelf" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-Moelf" title="User Testing">📓</a></td>
93
+ <td align="center" valign="top" width="10%"><a href="https://github.com/CharFox1"><img src="https://avatars.githubusercontent.com/u/35052672?v=4?s=50" width="50px;" alt="Charles Fox"/><br /><sub><b>Charles Fox</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3ACharFox1" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=CharFox1" title="Code">💻</a> <a href="#ideas-CharFox1" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-CharFox1" title="Maintenance">🚧</a> <a href="#promotion-CharFox1" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3ACharFox1" title="Reviewed Pull Requests">👀</a> <a href="#research-CharFox1" title="Research">🔬</a> <a href="#userTesting-CharFox1" title="User Testing">📓</a></td>
94
+ <td align="center" valign="top" width="10%"><a href="https://github.com/johannbrehmer"><img src="https://avatars.githubusercontent.com/u/17068560?v=4?s=50" width="50px;" alt="Johann Brehmer"/><br /><sub><b>Johann Brehmer</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Documentation">📖</a> <a href="#ideas-johannbrehmer" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-johannbrehmer" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ajohannbrehmer" title="Reviewed Pull Requests">👀</a> <a href="#research-johannbrehmer" title="Research">🔬</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Tests">⚠️</a> <a href="#userTesting-johannbrehmer" title="User Testing">📓</a></td>
95
+ <td align="center" valign="top" width="10%"><a href="http://www.cosmicmar.com/"><img src="https://avatars.githubusercontent.com/u/1510968?v=4?s=50" width="50px;" alt="Marius Millea"/><br /><sub><b>Marius Millea</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=marius311" title="Code">💻</a> <a href="#ideas-marius311" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-marius311" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amarius311" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-marius311" title="User Testing">📓</a></td>
96
+ <td align="center" valign="top" width="10%"><a href="https://gitlab.com/cobac"><img src="https://avatars.githubusercontent.com/u/27872944?v=4?s=50" width="50px;" alt="Coba"/><br /><sub><b>Coba</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Acobac" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=cobac" title="Code">💻</a> <a href="#ideas-cobac" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Acobac" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-cobac" title="User Testing">📓</a></td>
97
+ <td align="center" valign="top" width="10%"><a href="https://github.com/pitmonticone"><img src="https://avatars.githubusercontent.com/u/38562595?v=4?s=50" width="50px;" alt="Pietro Monticone"/><br /><sub><b>Pietro Monticone</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Apitmonticone" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=pitmonticone" title="Documentation">📖</a> <a href="#ideas-pitmonticone" title="Ideas, planning, and feedback.">💡</a></td>
98
+ <td align="center" valign="top" width="10%"><a href="https://github.com/sheevy"><img src="https://avatars.githubusercontent.com/u/1525683?v=4?s=50" width="50px;" alt="Mateusz Kubica"/><br /><sub><b>Mateusz Kubica</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=sheevy" title="Documentation">📖</a> <a href="#ideas-sheevy" title="Ideas, planning, and feedback.">💡</a></td>
99
+ <td align="center" valign="top" width="10%"><a href="https://jaywadekar.github.io/"><img src="https://avatars.githubusercontent.com/u/5493388?v=4?s=50" width="50px;" alt="Jay Wadekar"/><br /><sub><b>Jay Wadekar</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AJayWadekar" title="Bug reports">🐛</a> <a href="#ideas-JayWadekar" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-JayWadekar" title="Promotion">📣</a> <a href="#research-JayWadekar" title="Research">🔬</a></td>
100
+ <td align="center" valign="top" width="10%"><a href="https://github.com/Jgmedina95"><img src="https://avatars.githubusercontent.com/u/97254349?v=4?s=50" width="50px;" alt="Jgmedina95"/><br /><sub><b>Jgmedina95</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AJgmedina95" title="Bug reports">🐛</a> <a href="#ideas-Jgmedina95" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AJgmedina95" title="Reviewed Pull Requests">👀</a></td>
101
+ <td align="center" valign="top" width="10%"><a href="https://github.com/mcabbott"><img src="https://avatars.githubusercontent.com/u/32575566?v=4?s=50" width="50px;" alt="Michael Abbott"/><br /><sub><b>Michael Abbott</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=mcabbott" title="Code">💻</a> <a href="#ideas-mcabbott" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amcabbott" title="Reviewed Pull Requests">👀</a> <a href="#tool-mcabbott" title="Tools">🔧</a></td>
102
+ </tr>
103
+ <tr>
104
+ <td align="center" valign="top" width="10%"><a href="https://github.com/oscardssmith"><img src="https://avatars.githubusercontent.com/u/11729272?v=4?s=50" width="50px;" alt="Oscar Smith"/><br /><sub><b>Oscar Smith</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=oscardssmith" title="Code">💻</a> <a href="#ideas-oscardssmith" title="Ideas, planning, and feedback.">💡</a></td>
105
+ <td align="center" valign="top" width="10%"><a href="https://github.com/henriquebecker91"><img src="https://avatars.githubusercontent.com/u/14113435?v=4?s=50" width="50px;" alt="Henrique Becker"/><br /><sub><b>Henrique Becker</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=henriquebecker91" title="Code">💻</a> <a href="#ideas-henriquebecker91" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ahenriquebecker91" title="Reviewed Pull Requests">👀</a></td>
106
+ <td align="center" valign="top" width="10%"><a href="https://github.com/qwertyjl"><img src="https://avatars.githubusercontent.com/u/110912592?v=4?s=50" width="50px;" alt="qwertyjl"/><br /><sub><b>qwertyjl</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Aqwertyjl" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=qwertyjl" title="Documentation">📖</a> <a href="#ideas-qwertyjl" title="Ideas, planning, and feedback.">💡</a> <a href="#userTesting-qwertyjl" title="User Testing">📓</a></td>
107
+ <td align="center" valign="top" width="10%"><a href="https://huijzer.xyz/"><img src="https://avatars.githubusercontent.com/u/20724914?v=4?s=50" width="50px;" alt="Rik Huijzer"/><br /><sub><b>Rik Huijzer</b></sub></a><br /><a href="#ideas-rikhuijzer" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-rikhuijzer" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
108
+ <td align="center" valign="top" width="10%"><a href="https://github.com/GCaptainNemo"><img src="https://avatars.githubusercontent.com/u/43086239?v=4?s=50" width="50px;" alt="Hongyu Wang"/><br /><sub><b>Hongyu Wang</b></sub></a><br /><a href="#ideas-GCaptainNemo" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-GCaptainNemo" title="Promotion">📣</a> <a href="#research-GCaptainNemo" title="Research">🔬</a></td>
109
+ <td align="center" valign="top" width="10%"><a href="https://sauravmaheshkar.github.io/"><img src="https://avatars.githubusercontent.com/u/61241031?v=4?s=50" width="50px;" alt="Saurav Maheshkar"/><br /><sub><b>Saurav Maheshkar</b></sub></a><br /><a href="#tool-SauravMaheshkar" title="Tools">🔧</a></td>
110
+ </tr>
111
+ </tbody>
112
+ </table>
113
+
114
+ <!-- markdownlint-restore -->
115
+ <!-- prettier-ignore-end -->
116
+
117
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
118
+ </div>
README.md CHANGED
@@ -4,26 +4,76 @@
4
 
5
  https://user-images.githubusercontent.com/7593028/188328887-1b6cda72-2f41-439e-ae23-75dd3489bc24.mp4
6
 
7
- # PySR: High-Performance Symbolic Regression in Python
8
-
9
- </div>
10
 
11
  PySR uses evolutionary algorithms to search for symbolic expressions which optimize a particular objective.
12
 
13
- <div align="center">
14
-
15
  | **Docs** | **Forums** | **colab demo** |
16
  |:---:|:---:|:---:|
17
  |[![Documentation](https://github.com/MilesCranmer/PySR/actions/workflows/docs.yml/badge.svg)](https://astroautomata.com/PySR/)|[![Discussions](https://img.shields.io/badge/discussions-github-informational)](https://github.com/MilesCranmer/PySR/discussions)|[![Colab](https://img.shields.io/badge/colab-notebook-yellow)](https://colab.research.google.com/github/MilesCranmer/PySR/blob/master/examples/pysr_demo.ipynb)|
 
18
  | **pip** | **conda** | **Stats** |
 
19
  |[![PyPI version](https://badge.fury.io/py/pysr.svg)](https://badge.fury.io/py/pysr)|[![Conda Version](https://img.shields.io/conda/vn/conda-forge/pysr.svg)](https://anaconda.org/conda-forge/pysr)|<div align="center">pip: [![Downloads](https://pepy.tech/badge/pysr)](https://badge.fury.io/py/pysr)<br>conda: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/pysr/badges/downloads.svg)](https://anaconda.org/conda-forge/pysr)</div>|
20
 
21
  </div>
22
 
23
- (pronounced like *py* as in python, and then *sur* as in surface)
24
-
25
  If you find PySR useful, please cite it using the citation information given in [CITATION.md](https://github.com/MilesCranmer/PySR/blob/master/CITATION.md).
26
- If you've finished a project with PySR, please submit a PR to showcase your work on the [Research Showcase page](https://astroautomata.com/PySR/papers)!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  <div align="center">
29
 
 
4
 
5
  https://user-images.githubusercontent.com/7593028/188328887-1b6cda72-2f41-439e-ae23-75dd3489bc24.mp4
6
 
7
+ # PySR: High-Performance Symbolic Regression in Python and Julia
 
 
8
 
9
  PySR uses evolutionary algorithms to search for symbolic expressions which optimize a particular objective.
10
 
 
 
11
  | **Docs** | **Forums** | **colab demo** |
12
  |:---:|:---:|:---:|
13
  |[![Documentation](https://github.com/MilesCranmer/PySR/actions/workflows/docs.yml/badge.svg)](https://astroautomata.com/PySR/)|[![Discussions](https://img.shields.io/badge/discussions-github-informational)](https://github.com/MilesCranmer/PySR/discussions)|[![Colab](https://img.shields.io/badge/colab-notebook-yellow)](https://colab.research.google.com/github/MilesCranmer/PySR/blob/master/examples/pysr_demo.ipynb)|
14
+
15
  | **pip** | **conda** | **Stats** |
16
+ | :---: | :---: | :---: |
17
  |[![PyPI version](https://badge.fury.io/py/pysr.svg)](https://badge.fury.io/py/pysr)|[![Conda Version](https://img.shields.io/conda/vn/conda-forge/pysr.svg)](https://anaconda.org/conda-forge/pysr)|<div align="center">pip: [![Downloads](https://pepy.tech/badge/pysr)](https://badge.fury.io/py/pysr)<br>conda: [![Anaconda-Server Badge](https://anaconda.org/conda-forge/pysr/badges/downloads.svg)](https://anaconda.org/conda-forge/pysr)</div>|
18
 
19
  </div>
20
 
 
 
21
  If you find PySR useful, please cite it using the citation information given in [CITATION.md](https://github.com/MilesCranmer/PySR/blob/master/CITATION.md).
22
+ If you've finished a project with PySR, please submit a PR to showcase your work on the [research showcase page](https://astroautomata.com/PySR/papers)!
23
+
24
+ <div align="center">
25
+
26
+ ### Contributors ✨
27
+
28
+ </div>
29
+
30
+ We are eager to welcome new contributors and are looking forward to get you up to speed! Check out our contributors [guide](https://github.com/MilesCranmer/PySR/blob/master/CONTRIBUTORS.md) for tips 🚀.
31
+ If you have an idea for a new feature, don't hesitate to share it on the [issues](https://github.com/MilesCranmer/PySR/issues) or [discussions](https://github.com/MilesCranmer/PySR/discussions) page.
32
+
33
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
34
+ <!-- prettier-ignore-start -->
35
+ <!-- markdownlint-disable -->
36
+ <table>
37
+ <tbody>
38
+ <tr>
39
+ <td align="center" valign="top" width="10%"><a href="https://www.linkedin.com/in/markkittisopikul/"><img src="https://avatars.githubusercontent.com/u/8062771?v=4?s=50" width="50px;" alt="Mark Kittisopikul"/><br /><sub><b>Mark Kittisopikul</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=mkitti" title="Code">💻</a> <a href="#ideas-mkitti" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-mkitti" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mkitti" title="Packaging/porting to new platform">📦</a> <a href="#promotion-mkitti" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amkitti" title="Reviewed Pull Requests">👀</a> <a href="#tool-mkitti" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=mkitti" title="Tests">⚠️</a></td>
40
+ <td align="center" valign="top" width="10%"><a href="https://github.com/tttc3"><img src="https://avatars.githubusercontent.com/u/97948946?v=4?s=50" width="50px;" alt="T Coxon"/><br /><sub><b>T Coxon</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Atttc3" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=tttc3" title="Code">💻</a> <a href="#plugin-tttc3" title="Plugin/utility libraries">🔌</a> <a href="#ideas-tttc3" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-tttc3" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-tttc3" title="Maintenance">🚧</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Atttc3" title="Reviewed Pull Requests">👀</a> <a href="#tool-tttc3" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=tttc3" title="Tests">⚠️</a> <a href="#userTesting-tttc3" title="User Testing">📓</a></td>
41
+ <td align="center" valign="top" width="10%"><a href="https://github.com/DhananjayAshok"><img src="https://avatars.githubusercontent.com/u/46792537?v=4?s=50" width="50px;" alt="Dhananjay Ashok"/><br /><sub><b>Dhananjay Ashok</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=DhananjayAshok" title="Code">💻</a> <a href="#example-DhananjayAshok" title="Examples.">🌍</a> <a href="#ideas-DhananjayAshok" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-DhananjayAshok" title="Maintenance">🚧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=DhananjayAshok" title="Tests">⚠️</a></td>
42
+ <td align="center" valign="top" width="10%"><a href="https://gitlab.com/johanbluecreek"><img src="https://avatars.githubusercontent.com/u/852554?v=4?s=50" width="50px;" alt="Johan Blåbäck"/><br /><sub><b>Johan Blåbäck</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Ajohanbluecreek" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johanbluecreek" title="Code">💻</a> <a href="#ideas-johanbluecreek" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-johanbluecreek" title="Maintenance">🚧</a> <a href="#promotion-johanbluecreek" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ajohanbluecreek" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johanbluecreek" title="Tests">⚠️</a> <a href="#userTesting-johanbluecreek" title="User Testing">📓</a></td>
43
+ <td align="center" valign="top" width="10%"><a href="https://mathopt.de/people/martensen/index.php"><img src="https://avatars.githubusercontent.com/u/20998300?v=4?s=50" width="50px;" alt="JuliusMartensen"/><br /><sub><b>JuliusMartensen</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AAlCap23" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=AlCap23" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=AlCap23" title="Documentation">📖</a> <a href="#plugin-AlCap23" title="Plugin/utility libraries">🔌</a> <a href="#ideas-AlCap23" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-AlCap23" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-AlCap23" title="Maintenance">🚧</a> <a href="#platform-AlCap23" title="Packaging/porting to new platform">📦</a> <a href="#promotion-AlCap23" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AAlCap23" title="Reviewed Pull Requests">👀</a> <a href="#tool-AlCap23" title="Tools">🔧</a> <a href="#userTesting-AlCap23" title="User Testing">📓</a></td>
44
+ <td align="center" valign="top" width="10%"><a href="https://github.com/ngam"><img src="https://avatars.githubusercontent.com/u/67342040?v=4?s=50" width="50px;" alt="ngam"/><br /><sub><b>ngam</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=ngam" title="Code">💻</a> <a href="#infra-ngam" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-ngam" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Angam" title="Reviewed Pull Requests">👀</a> <a href="#tool-ngam" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ngam" title="Tests">⚠️</a></td>
45
+ <td align="center" valign="top" width="10%"><a href="https://github.com/kazewong"><img src="https://avatars.githubusercontent.com/u/8803931?v=4?s=50" width="50px;" alt="Kaze Wong"/><br /><sub><b>Kaze Wong</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Akazewong" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=kazewong" title="Code">💻</a> <a href="#ideas-kazewong" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-kazewong" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-kazewong" title="Maintenance">🚧</a> <a href="#promotion-kazewong" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Akazewong" title="Reviewed Pull Requests">👀</a> <a href="#research-kazewong" title="Research">🔬</a> <a href="#userTesting-kazewong" title="User Testing">📓</a></td>
46
+ <td align="center" valign="top" width="10%"><a href="https://github.com/ChrisRackauckas"><img src="https://avatars.githubusercontent.com/u/1814174?v=4?s=50" width="50px;" alt="Christopher Rackauckas"/><br /><sub><b>Christopher Rackauckas</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AChrisRackauckas" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ChrisRackauckas" title="Code">💻</a> <a href="#plugin-ChrisRackauckas" title="Plugin/utility libraries">🔌</a> <a href="#ideas-ChrisRackauckas" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-ChrisRackauckas" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#promotion-ChrisRackauckas" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AChrisRackauckas" title="Reviewed Pull Requests">👀</a> <a href="#research-ChrisRackauckas" title="Research">🔬</a> <a href="#tool-ChrisRackauckas" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=ChrisRackauckas" title="Tests">⚠️</a> <a href="#userTesting-ChrisRackauckas" title="User Testing">����</a></td>
47
+ <td align="center" valign="top" width="10%"><a href="https://kidger.site/"><img src="https://avatars.githubusercontent.com/u/33688385?v=4?s=50" width="50px;" alt="Patrick Kidger"/><br /><sub><b>Patrick Kidger</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Apatrick-kidger" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Documentation">📖</a> <a href="#plugin-patrick-kidger" title="Plugin/utility libraries">🔌</a> <a href="#ideas-patrick-kidger" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-patrick-kidger" title="Maintenance">🚧</a> <a href="#promotion-patrick-kidger" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Apatrick-kidger" title="Reviewed Pull Requests">👀</a> <a href="#research-patrick-kidger" title="Research">🔬</a> <a href="#tool-patrick-kidger" title="Tools">🔧</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=patrick-kidger" title="Tests">⚠️</a> <a href="#userTesting-patrick-kidger" title="User Testing">📓</a></td>
48
+ <td align="center" valign="top" width="10%"><a href="https://pablo-lemos.github.io/"><img src="https://avatars.githubusercontent.com/u/38078898?v=4?s=50" width="50px;" alt="Pablo Lemos"/><br /><sub><b>Pablo Lemos</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3APablo-Lemos" title="Bug reports">🐛</a> <a href="#ideas-Pablo-Lemos" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-Pablo-Lemos" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3APablo-Lemos" title="Reviewed Pull Requests">👀</a> <a href="#research-Pablo-Lemos" title="Research">🔬</a> <a href="#userTesting-Pablo-Lemos" title="User Testing">📓</a></td>
49
+ </tr>
50
+ <tr>
51
+ <td align="center" valign="top" width="10%"><a href="https://github.com/Moelf"><img src="https://avatars.githubusercontent.com/u/5306213?v=4?s=50" width="50px;" alt="Jerry Ling"/><br /><sub><b>Jerry Ling</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AMoelf" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=Moelf" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=Moelf" title="Documentation">📖</a> <a href="#example-Moelf" title="Examples.">🌍</a> <a href="#ideas-Moelf" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-Moelf" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AMoelf" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-Moelf" title="User Testing">📓</a></td>
52
+ <td align="center" valign="top" width="10%"><a href="https://github.com/CharFox1"><img src="https://avatars.githubusercontent.com/u/35052672?v=4?s=50" width="50px;" alt="Charles Fox"/><br /><sub><b>Charles Fox</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3ACharFox1" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=CharFox1" title="Code">💻</a> <a href="#ideas-CharFox1" title="Ideas, planning, and feedback.">💡</a> <a href="#maintenance-CharFox1" title="Maintenance">🚧</a> <a href="#promotion-CharFox1" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3ACharFox1" title="Reviewed Pull Requests">👀</a> <a href="#research-CharFox1" title="Research">🔬</a> <a href="#userTesting-CharFox1" title="User Testing">📓</a></td>
53
+ <td align="center" valign="top" width="10%"><a href="https://github.com/johannbrehmer"><img src="https://avatars.githubusercontent.com/u/17068560?v=4?s=50" width="50px;" alt="Johann Brehmer"/><br /><sub><b>Johann Brehmer</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Code">💻</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Documentation">📖</a> <a href="#ideas-johannbrehmer" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-johannbrehmer" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ajohannbrehmer" title="Reviewed Pull Requests">👀</a> <a href="#research-johannbrehmer" title="Research">🔬</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=johannbrehmer" title="Tests">⚠️</a> <a href="#userTesting-johannbrehmer" title="User Testing">📓</a></td>
54
+ <td align="center" valign="top" width="10%"><a href="http://www.cosmicmar.com/"><img src="https://avatars.githubusercontent.com/u/1510968?v=4?s=50" width="50px;" alt="Marius Millea"/><br /><sub><b>Marius Millea</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=marius311" title="Code">💻</a> <a href="#ideas-marius311" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-marius311" title="Promotion">📣</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amarius311" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-marius311" title="User Testing">📓</a></td>
55
+ <td align="center" valign="top" width="10%"><a href="https://gitlab.com/cobac"><img src="https://avatars.githubusercontent.com/u/27872944?v=4?s=50" width="50px;" alt="Coba"/><br /><sub><b>Coba</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Acobac" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=cobac" title="Code">💻</a> <a href="#ideas-cobac" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Acobac" title="Reviewed Pull Requests">👀</a> <a href="#userTesting-cobac" title="User Testing">📓</a></td>
56
+ <td align="center" valign="top" width="10%"><a href="https://github.com/pitmonticone"><img src="https://avatars.githubusercontent.com/u/38562595?v=4?s=50" width="50px;" alt="Pietro Monticone"/><br /><sub><b>Pietro Monticone</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Apitmonticone" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=pitmonticone" title="Documentation">📖</a> <a href="#ideas-pitmonticone" title="Ideas, planning, and feedback.">💡</a></td>
57
+ <td align="center" valign="top" width="10%"><a href="https://github.com/sheevy"><img src="https://avatars.githubusercontent.com/u/1525683?v=4?s=50" width="50px;" alt="Mateusz Kubica"/><br /><sub><b>Mateusz Kubica</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=sheevy" title="Documentation">📖</a> <a href="#ideas-sheevy" title="Ideas, planning, and feedback.">💡</a></td>
58
+ <td align="center" valign="top" width="10%"><a href="https://jaywadekar.github.io/"><img src="https://avatars.githubusercontent.com/u/5493388?v=4?s=50" width="50px;" alt="Jay Wadekar"/><br /><sub><b>Jay Wadekar</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AJayWadekar" title="Bug reports">🐛</a> <a href="#ideas-JayWadekar" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-JayWadekar" title="Promotion">📣</a> <a href="#research-JayWadekar" title="Research">🔬</a></td>
59
+ <td align="center" valign="top" width="10%"><a href="https://github.com/Jgmedina95"><img src="https://avatars.githubusercontent.com/u/97254349?v=4?s=50" width="50px;" alt="Jgmedina95"/><br /><sub><b>Jgmedina95</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3AJgmedina95" title="Bug reports">🐛</a> <a href="#ideas-Jgmedina95" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3AJgmedina95" title="Reviewed Pull Requests">👀</a></td>
60
+ <td align="center" valign="top" width="10%"><a href="https://github.com/mcabbott"><img src="https://avatars.githubusercontent.com/u/32575566?v=4?s=50" width="50px;" alt="Michael Abbott"/><br /><sub><b>Michael Abbott</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=mcabbott" title="Code">💻</a> <a href="#ideas-mcabbott" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Amcabbott" title="Reviewed Pull Requests">👀</a> <a href="#tool-mcabbott" title="Tools">🔧</a></td>
61
+ </tr>
62
+ <tr>
63
+ <td align="center" valign="top" width="10%"><a href="https://github.com/oscardssmith"><img src="https://avatars.githubusercontent.com/u/11729272?v=4?s=50" width="50px;" alt="Oscar Smith"/><br /><sub><b>Oscar Smith</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=oscardssmith" title="Code">💻</a> <a href="#ideas-oscardssmith" title="Ideas, planning, and feedback.">💡</a></td>
64
+ <td align="center" valign="top" width="10%"><a href="https://github.com/henriquebecker91"><img src="https://avatars.githubusercontent.com/u/14113435?v=4?s=50" width="50px;" alt="Henrique Becker"/><br /><sub><b>Henrique Becker</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/commits?author=henriquebecker91" title="Code">💻</a> <a href="#ideas-henriquebecker91" title="Ideas, planning, and feedback.">💡</a> <a href="https://github.com/MilesCranmer/PySR/pulls?q=is%3Apr+reviewed-by%3Ahenriquebecker91" title="Reviewed Pull Requests">👀</a></td>
65
+ <td align="center" valign="top" width="10%"><a href="https://github.com/qwertyjl"><img src="https://avatars.githubusercontent.com/u/110912592?v=4?s=50" width="50px;" alt="qwertyjl"/><br /><sub><b>qwertyjl</b></sub></a><br /><a href="https://github.com/MilesCranmer/PySR/issues?q=author%3Aqwertyjl" title="Bug reports">🐛</a> <a href="https://github.com/MilesCranmer/PySR/commits?author=qwertyjl" title="Documentation">📖</a> <a href="#ideas-qwertyjl" title="Ideas, planning, and feedback.">💡</a> <a href="#userTesting-qwertyjl" title="User Testing">📓</a></td>
66
+ <td align="center" valign="top" width="10%"><a href="https://huijzer.xyz/"><img src="https://avatars.githubusercontent.com/u/20724914?v=4?s=50" width="50px;" alt="Rik Huijzer"/><br /><sub><b>Rik Huijzer</b></sub></a><br /><a href="#ideas-rikhuijzer" title="Ideas, planning, and feedback.">💡</a> <a href="#infra-rikhuijzer" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
67
+ <td align="center" valign="top" width="10%"><a href="https://github.com/GCaptainNemo"><img src="https://avatars.githubusercontent.com/u/43086239?v=4?s=50" width="50px;" alt="Hongyu Wang"/><br /><sub><b>Hongyu Wang</b></sub></a><br /><a href="#ideas-GCaptainNemo" title="Ideas, planning, and feedback.">💡</a> <a href="#promotion-GCaptainNemo" title="Promotion">📣</a> <a href="#research-GCaptainNemo" title="Research">🔬</a></td>
68
+ <td align="center" valign="top" width="10%"><a href="https://sauravmaheshkar.github.io/"><img src="https://avatars.githubusercontent.com/u/61241031?v=4?s=50" width="50px;" alt="Saurav Maheshkar"/><br /><sub><b>Saurav Maheshkar</b></sub></a><br /><a href="#tool-SauravMaheshkar" title="Tools">🔧</a></td>
69
+ </tr>
70
+ </tbody>
71
+ </table>
72
+
73
+ <!-- markdownlint-restore -->
74
+ <!-- prettier-ignore-end -->
75
+
76
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
77
 
78
  <div align="center">
79
 
docs/images/cloud_cover.jpg ADDED
docs/papers.yml CHANGED
@@ -2,6 +2,21 @@
2
  # information to generate the "Research Showcase"
3
 
4
  papers:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  - title: Modeling assembly bias with machine learning and symbolic regression
6
  authors:
7
  - Digvijay Wadekar (1)
@@ -151,7 +166,7 @@ papers:
151
  4: Columbia University
152
  5: Cornell University
153
  6: University of Connecticut
154
- 7: Havard University
155
  link: https://arxiv.org/abs/2201.01305
156
  abstract: "Complex systems (stars, supernovae, galaxies, and clusters) often exhibit low scatter relations between observable properties (e.g., luminosity, velocity dispersion, oscillation period, temperature). These scaling relations can illuminate the underlying physics and can provide observational tools for estimating masses and distances. Machine learning can provide a fast and systematic way to search for new scaling relations (or for simple extensions to existing relations) in abstract high-dimensional parameter spaces. We use a machine learning tool called symbolic regression (SR), which models the patterns in a given dataset in the form of analytic equations. We focus on the Sunyaev-Zeldovich flux-cluster mass relation (Y-M), the scatter in which affects inference of cosmological parameters from cluster abundance data. Using SR on the data from the IllustrisTNG hydrodynamical simulation, we find a new proxy for cluster mass which combines $Y_{SZ}$ and concentration of ionized gas (cgas): $M \\propto Y_{\\text{conc}}^{3/5} \\equiv Y_{SZ}^{3/5} (1 - A c_\\text{gas})$. Yconc reduces the scatter in the predicted M by ~ 20 - 30% for large clusters ($M > 10^{14} M_{\\odot}/h$) at both high and low redshifts, as compared to using just $Y_{SZ}$. We show that the dependence on cgas is linked to cores of clusters exhibiting larger scatter than their outskirts. Finally, we test Yconc on clusters from simulations of the CAMELS project and show that Yconc is robust against variations in cosmology, astrophysics, subgrid physics, and cosmic variance. Our results and methodology can be useful for accurate multiwavelength cluster mass estimation from current and upcoming CMB and X-ray surveys like ACT, SO, SPT, eROSITA and CMB-S4."
157
  image: SyReg_GasConc.png
@@ -177,7 +192,7 @@ papers:
177
  5: Flatiron Institute
178
  6: Yale University
179
  7: University of Connecticut
180
- 8: Havard University
181
  link: https://arxiv.org/abs/2209.02075
182
  abstract: "Ionized gas in the halo circumgalactic medium leaves an imprint on the cosmic microwave background via the thermal Sunyaev-Zeldovich (tSZ) effect. Feedback from active galactic nuclei (AGN) and supernovae can affect the measurements of the integrated tSZ flux of halos ($Y_{SZ}$) and cause its relation with the halo mass ($Y_{SZ}-M$) to deviate from the self-similar power-law prediction of the virial theorem. We perform a comprehensive study of such deviations using CAMELS, a suite of hydrodynamic simulations with extensive variations in feedback prescriptions. We use a combination of two machine learning tools (random forest and symbolic regression) to search for analogues of the $Y-M$ relation which are more robust to feedback processes for low masses ($M \\leq 10^{14} M_{\\odot}/h$); we find that simply replacing $Y \\rightarrow Y(1+M_\\ast/M_{\\text{gas}})$ in the relation makes it remarkably self-similar. This could serve as a robust multiwavelength mass proxy for low-mass clusters and galaxy groups. Our methodology can also be generally useful to improve the domain of validity of other astrophysical scaling relations. We also forecast that measurements of the Y-M relation could provide percent-level constraints on certain combinations of feedback parameters and/or rule out a major part of the parameter space of supernova and AGN feedback models used in current state-of-the-art hydrodynamic simulations. Our results can be useful for using upcoming SZ surveys (e.g. SO, CMB-S4) and galaxy surveys (e.g. DESI and Rubin) to constrain the nature of baryonic feedback. Finally, we find that the an alternative relation, $Y-M_{\\ast}$, provides complementary information on feedback than $Y-M$."
183
  image: Y_Mgal_Simba.png
 
2
  # information to generate the "Research Showcase"
3
 
4
  papers:
5
+ - title: Data-Driven Equation Discovery of a Cloud Cover Parameterization
6
+ authors:
7
+ - Arthur Grundner (1,2)
8
+ - Tom Beucler (3)
9
+ - Pierre Gentine (2,3)
10
+ - Veronika Eyring (1,4)
11
+ affiliations:
12
+ 1: Institut für Physik der Atmosphäre, Deutsches Zentrum für Luft- und Raumfahrt
13
+ 2: Center for Learning the Earth with Artificial Intelligence And Physics, Columbia University
14
+ 3: Institute of Earth Surface Dynamics, University of Lausanne
15
+ 4: Institute of Environmental Physics, University of Bremen
16
+ link: https://arxiv.org/abs/2304.08063
17
+ abstract: "A promising method for improving the representation of clouds in climate models, and hence climate projections, is to develop machine learning-based parameterizations using output from global storm-resolving models. While neural networks can achieve state-of-the-art performance, they are typically climate model-specific, require post-hoc tools for interpretation, and struggle to predict outside of their training distribution. To avoid these limitations, we combine symbolic regression, sequential feature selection, and physical constraints in a hierarchical modeling framework. This framework allows us to discover new equations diagnosing cloud cover from coarse-grained variables of global storm-resolving model simulations. These analytical equations are interpretable by construction and easily transferable to other grids or climate models. Our best equation balances performance and complexity, achieving a performance comparable to that of neural networks ($R^2=0.94$) while remaining simple (with only 13 trainable parameters). It reproduces cloud cover distributions more accurately than the Xu-Randall scheme across all cloud regimes (Hellinger distances $<0.09$), and matches neural networks in condensate-rich regimes. When applied and fine-tuned to the ERA5 reanalysis, the equation exhibits superior transferability to new data compared to all other optimal cloud cover schemes. Our findings demonstrate the effectiveness of symbolic regression in discovering interpretable, physically-consistent, and nonlinear equations to parameterize cloud cover."
18
+ image: cloud_cover.jpg
19
+ date: 2023-04-17
20
  - title: Modeling assembly bias with machine learning and symbolic regression
21
  authors:
22
  - Digvijay Wadekar (1)
 
166
  4: Columbia University
167
  5: Cornell University
168
  6: University of Connecticut
169
+ 7: Harvard University
170
  link: https://arxiv.org/abs/2201.01305
171
  abstract: "Complex systems (stars, supernovae, galaxies, and clusters) often exhibit low scatter relations between observable properties (e.g., luminosity, velocity dispersion, oscillation period, temperature). These scaling relations can illuminate the underlying physics and can provide observational tools for estimating masses and distances. Machine learning can provide a fast and systematic way to search for new scaling relations (or for simple extensions to existing relations) in abstract high-dimensional parameter spaces. We use a machine learning tool called symbolic regression (SR), which models the patterns in a given dataset in the form of analytic equations. We focus on the Sunyaev-Zeldovich flux-cluster mass relation (Y-M), the scatter in which affects inference of cosmological parameters from cluster abundance data. Using SR on the data from the IllustrisTNG hydrodynamical simulation, we find a new proxy for cluster mass which combines $Y_{SZ}$ and concentration of ionized gas (cgas): $M \\propto Y_{\\text{conc}}^{3/5} \\equiv Y_{SZ}^{3/5} (1 - A c_\\text{gas})$. Yconc reduces the scatter in the predicted M by ~ 20 - 30% for large clusters ($M > 10^{14} M_{\\odot}/h$) at both high and low redshifts, as compared to using just $Y_{SZ}$. We show that the dependence on cgas is linked to cores of clusters exhibiting larger scatter than their outskirts. Finally, we test Yconc on clusters from simulations of the CAMELS project and show that Yconc is robust against variations in cosmology, astrophysics, subgrid physics, and cosmic variance. Our results and methodology can be useful for accurate multiwavelength cluster mass estimation from current and upcoming CMB and X-ray surveys like ACT, SO, SPT, eROSITA and CMB-S4."
172
  image: SyReg_GasConc.png
 
192
  5: Flatiron Institute
193
  6: Yale University
194
  7: University of Connecticut
195
+ 8: Harvard University
196
  link: https://arxiv.org/abs/2209.02075
197
  abstract: "Ionized gas in the halo circumgalactic medium leaves an imprint on the cosmic microwave background via the thermal Sunyaev-Zeldovich (tSZ) effect. Feedback from active galactic nuclei (AGN) and supernovae can affect the measurements of the integrated tSZ flux of halos ($Y_{SZ}$) and cause its relation with the halo mass ($Y_{SZ}-M$) to deviate from the self-similar power-law prediction of the virial theorem. We perform a comprehensive study of such deviations using CAMELS, a suite of hydrodynamic simulations with extensive variations in feedback prescriptions. We use a combination of two machine learning tools (random forest and symbolic regression) to search for analogues of the $Y-M$ relation which are more robust to feedback processes for low masses ($M \\leq 10^{14} M_{\\odot}/h$); we find that simply replacing $Y \\rightarrow Y(1+M_\\ast/M_{\\text{gas}})$ in the relation makes it remarkably self-similar. This could serve as a robust multiwavelength mass proxy for low-mass clusters and galaxy groups. Our methodology can also be generally useful to improve the domain of validity of other astrophysical scaling relations. We also forecast that measurements of the Y-M relation could provide percent-level constraints on certain combinations of feedback parameters and/or rule out a major part of the parameter space of supernova and AGN feedback models used in current state-of-the-art hydrodynamic simulations. Our results can be useful for using upcoming SZ surveys (e.g. SO, CMB-S4) and galaxy surveys (e.g. DESI and Rubin) to constrain the nature of baryonic feedback. Finally, we find that the an alternative relation, $Y-M_{\\ast}$, provides complementary information on feedback than $Y-M$."
198
  image: Y_Mgal_Simba.png
docs/param_groupings.yml CHANGED
@@ -71,6 +71,7 @@
71
  - precision
72
  - fast_cycle
73
  - turbo
 
74
  - random_state
75
  - deterministic
76
  - warm_start
 
71
  - precision
72
  - fast_cycle
73
  - turbo
74
+ - enable_autodiff
75
  - random_state
76
  - deterministic
77
  - warm_start
pysr/sr.py CHANGED
@@ -525,6 +525,11 @@ class PySRRegressor(MultiOutputMixin, RegressorMixin, BaseEstimator):
525
  If you pass complex data, the corresponding complex precision
526
  will be used (i.e., `64` for complex128, `32` for complex64).
527
  Default is `32`.
 
 
 
 
 
528
  random_state : int, Numpy RandomState instance or None
529
  Pass an int for reproducible results across multiple function calls.
530
  See :term:`Glossary <random_state>`.
@@ -747,6 +752,7 @@ class PySRRegressor(MultiOutputMixin, RegressorMixin, BaseEstimator):
747
  fast_cycle=False,
748
  turbo=False,
749
  precision=32,
 
750
  random_state=None,
751
  deterministic=False,
752
  warm_start=False,
@@ -839,6 +845,7 @@ class PySRRegressor(MultiOutputMixin, RegressorMixin, BaseEstimator):
839
  self.fast_cycle = fast_cycle
840
  self.turbo = turbo
841
  self.precision = precision
 
842
  self.random_state = random_state
843
  self.deterministic = deterministic
844
  self.warm_start = warm_start
@@ -1623,6 +1630,7 @@ class PySRRegressor(MultiOutputMixin, RegressorMixin, BaseEstimator):
1623
  maxdepth=maxdepth,
1624
  fast_cycle=self.fast_cycle,
1625
  turbo=self.turbo,
 
1626
  migration=self.migration,
1627
  hof_migration=self.hof_migration,
1628
  fraction_replaced_hof=self.fraction_replaced_hof,
 
525
  If you pass complex data, the corresponding complex precision
526
  will be used (i.e., `64` for complex128, `32` for complex64).
527
  Default is `32`.
528
+ enable_autodiff : bool
529
+ Whether to create derivative versions of operators for automatic
530
+ differentiation. This is only necessary if you wish to compute
531
+ the gradients of an expression within a custom loss function.
532
+ Default is `False`.
533
  random_state : int, Numpy RandomState instance or None
534
  Pass an int for reproducible results across multiple function calls.
535
  See :term:`Glossary <random_state>`.
 
752
  fast_cycle=False,
753
  turbo=False,
754
  precision=32,
755
+ enable_autodiff=False,
756
  random_state=None,
757
  deterministic=False,
758
  warm_start=False,
 
845
  self.fast_cycle = fast_cycle
846
  self.turbo = turbo
847
  self.precision = precision
848
+ self.enable_autodiff = enable_autodiff
849
  self.random_state = random_state
850
  self.deterministic = deterministic
851
  self.warm_start = warm_start
 
1630
  maxdepth=maxdepth,
1631
  fast_cycle=self.fast_cycle,
1632
  turbo=self.turbo,
1633
+ enable_autodiff=self.enable_autodiff,
1634
  migration=self.migration,
1635
  hof_migration=self.hof_migration,
1636
  fraction_replaced_hof=self.fraction_replaced_hof,
pysr/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "0.12.1"
2
- __symbolic_regression_jl_version__ = "0.16.2"
 
1
+ __version__ = "0.12.3"
2
+ __symbolic_regression_jl_version__ = "0.17.1"
setup.py CHANGED
@@ -1,7 +1,7 @@
1
  import setuptools
2
 
3
  try:
4
- with open("README.md", "r") as fh:
5
  long_description = fh.read()
6
  except FileNotFoundError:
7
  long_description = ""
 
1
  import setuptools
2
 
3
  try:
4
+ with open("README.md", "r", encoding="utf8") as fh:
5
  long_description = fh.read()
6
  except FileNotFoundError:
7
  long_description = ""