0-hero commited on
Commit
95d75a8
·
verified ·
1 Parent(s): 745e7ed

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .bashrc +107 -0
  2. .cache/pip/http-v2/0/1/f/2/0/01f2082df50502ba9492d64e69db99d1fdb5730707a16c6264b355b8 +0 -0
  3. .cache/pip/http-v2/0/2/f/8/e/02f8e820ca8231526982c4a2b93baef519d0948ff85c925acd226f06 +0 -0
  4. .cache/pip/http-v2/0/5/8/9/6/0589682f53f4c502330bc0fa01138806ce0467c549c2af469b6afb31.body +0 -0
  5. .cache/pip/http-v2/0/5/e/2/2/05e22b8b3169eed822187b7e670f3dc47b0666b777d95f87de8fb5e9 +0 -0
  6. .cache/pip/http-v2/0/5/e/2/2/05e22b8b3169eed822187b7e670f3dc47b0666b777d95f87de8fb5e9.body +0 -0
  7. .cache/pip/http-v2/0/6/7/2/6/06726d442b7e33afe35f1740674b6dee72357a95eef3aca0ef7abf21.body +0 -0
  8. .cache/pip/http-v2/0/e/a/4/f/0ea4f1b2570ca3d64073f1277e4faa435bd7c7cbadafd80723949de4 +0 -0
  9. .cache/pip/http-v2/0/e/a/4/f/0ea4f1b2570ca3d64073f1277e4faa435bd7c7cbadafd80723949de4.body +0 -0
  10. .cache/pip/http-v2/1/0/e/d/c/10edc2fedb88f9a82f91dc7f8666c74a4e7067dbd945b9923a040482.body +0 -0
  11. .cache/pip/http-v2/1/6/9/3/2/1693297fb9daf7bfe370bf51d371acfeb8ff40759bf8650dfd404ba4.body +0 -0
  12. .cache/pip/http-v2/1/8/e/e/a/18eea207de73c88bb45229bed4bcc74fbcbddadf2aa9f49e4df1f66a +0 -0
  13. .cache/pip/http-v2/1/a/9/9/5/1a995e0685d0b5c5a3f3321cda9ebcbc376a9137828d1c100a493532 +0 -0
  14. .cache/pip/http-v2/1/d/5/8/0/1d580297aa71908bf0d94823d03615447cfaaf5e778d47640756ae80 +0 -0
  15. .cache/pip/http-v2/1/d/5/8/0/1d580297aa71908bf0d94823d03615447cfaaf5e778d47640756ae80.body +0 -0
  16. .cache/pip/http-v2/1/d/8/a/2/1d8a24cdff71edbc3f733b6b4d52640c1c1129289938aa4d1c7adcf5 +0 -0
  17. .cache/pip/http-v2/1/e/2/b/1/1e2b1734fc3c57a4733131da81a6167573fc77057172172ceee83a22 +0 -0
  18. .cache/pip/http-v2/1/e/2/b/1/1e2b1734fc3c57a4733131da81a6167573fc77057172172ceee83a22.body +0 -0
  19. .cache/pip/http-v2/4/2/f/8/a/42f8a0202dbbd3a131c6443d28a5b01775c53d41dec7e7928a8b5a4c.body +140 -0
  20. .cache/pip/http-v2/4/5/9/c/7/459c78bacdedb04c7e03d152081522ecf0ff46e1d14e7503997ea6c8.body +0 -0
  21. .cache/pip/http-v2/4/a/7/8/1/4a7814588b6ac1f8145ad3d5ec0e03ad23d92f14a1ce01843a6998d7 +0 -0
  22. .cache/pip/http-v2/4/a/7/8/1/4a7814588b6ac1f8145ad3d5ec0e03ad23d92f14a1ce01843a6998d7.body +0 -0
  23. .cache/pip/http-v2/4/d/2/7/2/4d272e6453941ce8b0a37a02cdb1685fc612c33441fa74691fb40656 +0 -0
  24. .cache/pip/http-v2/7/1/b/9/d/71b9df22187d5c54f1147d4ac0849d1438ec19aedc20363a3478b854 +0 -0
  25. .cache/pip/http-v2/7/2/2/9/f/7229fb50bdca3f16cb03ca953b540cb67fb07fb971b675db32ae3239 +0 -0
  26. .cache/pip/http-v2/7/3/5/4/e/7354e15b7a2b590d713d4782bd16917fac9db3c087fa80d4d8dc0db5 +0 -0
  27. .cache/pip/http-v2/7/3/5/4/e/7354e15b7a2b590d713d4782bd16917fac9db3c087fa80d4d8dc0db5.body +212 -0
  28. .cache/pip/http-v2/7/7/6/7/2/7767287c95ec4491394e4204f2ba3be9eb9e3ed9ca0ffd45d421b772.body +0 -0
  29. .cache/pip/http-v2/7/c/4/b/8/7c4b8a19f4f69494c22868b76649cd91120de17447e4ff71fb7a7f10.body +0 -0
  30. .cache/pip/http-v2/7/e/1/d/d/7e1dd8fd372b5a4d9dab3a30df124fb3e1f8789a9ab79f867640876a.body +0 -0
  31. .cache/pip/http-v2/a/6/6/7/4/a6674e44f8dbb270324765d1fb568b86858877aed299a2428f81e802 +0 -0
  32. .cache/pip/http-v2/a/b/7/2/8/ab7286aff652f0ea3cc68322991122267ea675cbb86a9b1ccfe4ace3 +0 -0
  33. .cache/pip/http-v2/a/d/e/c/9/adec97b9b98035179c2f2a0370fc49fcf626678705d2f38c1dcdafa7 +0 -0
  34. .cache/pip/http-v2/b/6/8/7/d/b687d90e2a44328db9c9ecd9af0a9c577a4e68f9d239bbb73aebc319.body +62 -0
  35. .cache/pip/http-v2/b/8/b/f/4/b8bf4a44dbb1c5e59b2500975b68a4301d11f85878b612151a649c3d +0 -0
  36. .cache/pip/http-v2/b/f/c/a/5/bfca522eaf7404612287f82a4ec69fbc52a846f5a5757f91528163da +0 -0
  37. .cache/pip/http-v2/b/f/d/6/3/bfd6322b8f4c82d6b7ed54608512187e126478b3b0851b74973f4adc.body +0 -0
  38. .launchpadlib/api.launchpad.net/cache/api.launchpad.net,devel,-application,json,fc4e1e3a03117146fb1e9d492ab76690 +19 -0
  39. .local/share/Trash/info/train_001.bin.trashinfo +3 -0
  40. .local/share/Trash/info/train_003.bin.trashinfo +3 -0
  41. .local/share/Trash/info/train_006.bin.trashinfo +3 -0
  42. .local/share/Trash/info/train_007.bin.trashinfo +3 -0
  43. .local/share/jupyter/nbextensions/skip-traceback/icon.png +0 -0
  44. .local/share/jupyter/nbextensions/skip-traceback/skip-traceback.png +0 -0
  45. .local/share/jupyter/nbextensions/snippets_menu/main.js +292 -0
  46. .local/share/jupyter/nbextensions/snippets_menu/screenshot3.png +0 -0
  47. .local/share/jupyter/nbextensions/snippets_menu/snippets_submenu_python.js +24 -0
  48. .local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/scipy.js +620 -0
  49. .local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/scipy_special.js +2198 -0
  50. .local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/sympy_assumptions.js +109 -0
.bashrc ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ~/.bashrc: executed by bash(1) for non-login shells.
2
+ # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3
+ # for examples
4
+
5
+ # If not running interactively, don't do anything
6
+ [ -z "$PS1" ] && return
7
+
8
+ # don't put duplicate lines in the history. See bash(1) for more options
9
+ # ... or force ignoredups and ignorespace
10
+ HISTCONTROL=ignoredups:ignorespace
11
+
12
+ # append to the history file, don't overwrite it
13
+ shopt -s histappend
14
+
15
+ # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
16
+ HISTSIZE=1000
17
+ HISTFILESIZE=2000
18
+
19
+ # check the window size after each command and, if necessary,
20
+ # update the values of LINES and COLUMNS.
21
+ shopt -s checkwinsize
22
+
23
+ # make less more friendly for non-text input files, see lesspipe(1)
24
+ [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
25
+
26
+ # set variable identifying the chroot you work in (used in the prompt below)
27
+ if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
28
+ debian_chroot=$(cat /etc/debian_chroot)
29
+ fi
30
+
31
+ # set a fancy prompt (non-color, unless we know we "want" color)
32
+ case "$TERM" in
33
+ xterm-color) color_prompt=yes;;
34
+ esac
35
+
36
+ # uncomment for a colored prompt, if the terminal has the capability; turned
37
+ # off by default to not distract the user: the focus in a terminal window
38
+ # should be on the output of commands, not on the prompt
39
+ #force_color_prompt=yes
40
+
41
+ if [ -n "$force_color_prompt" ]; then
42
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
43
+ # We have color support; assume it's compliant with Ecma-48
44
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
45
+ # a case would tend to support setf rather than setaf.)
46
+ color_prompt=yes
47
+ else
48
+ color_prompt=
49
+ fi
50
+ fi
51
+
52
+ if [ "$color_prompt" = yes ]; then
53
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
54
+ else
55
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
56
+ fi
57
+ unset color_prompt force_color_prompt
58
+
59
+ # If this is an xterm set the title to user@host:dir
60
+ case "$TERM" in
61
+ xterm*|rxvt*)
62
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
63
+ ;;
64
+ *)
65
+ ;;
66
+ esac
67
+
68
+ # enable color support of ls and also add handy aliases
69
+ if [ -x /usr/bin/dircolors ]; then
70
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
71
+ alias ls='ls --color=auto'
72
+ #alias dir='dir --color=auto'
73
+ #alias vdir='vdir --color=auto'
74
+
75
+ alias grep='grep --color=auto'
76
+ alias fgrep='fgrep --color=auto'
77
+ alias egrep='egrep --color=auto'
78
+ fi
79
+
80
+ # some more ls aliases
81
+ alias ll='ls -alF'
82
+ alias la='ls -A'
83
+ alias l='ls -CF'
84
+
85
+ # Alias definitions.
86
+ # You may want to put all your additions into a separate file like
87
+ # ~/.bash_aliases, instead of adding them here directly.
88
+ # See /usr/share/doc/bash-doc/examples in the bash-doc package.
89
+
90
+ if [ -f ~/.bash_aliases ]; then
91
+ . ~/.bash_aliases
92
+ fi
93
+
94
+ # enable programmable completion features (you don't need to enable
95
+ # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
96
+ # sources /etc/bash.bashrc).
97
+ #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
98
+ # . /etc/bash_completion
99
+ #fi
100
+ cat /etc/runpod.txt
101
+ echo -e "\nFor detailed documentation and guides, please visit:\n\033[1;34mhttps://docs.runpod.io/\033[0m and \033[1;34mhttps://blog.runpod.io/\033[0m\n\n"
102
+ PATH='/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
103
+ VAST_CONTAINERLABEL="$(cat ~/.vast_containerlabel)"
104
+ PS1="\[\e]0;\u@$VAST_CONTAINERLABEL: \w\a\]\[\e[01;34m\]\u\[\e[m\e[01m\]@\[\e[01;36m\]$VAST_CONTAINERLABEL\[\e[m\e[01m\]:\[\e[01;37m\]\w\$\[\e[m\] " ; if [ ! -e "$HOME/.no_auto_tmux" ] && [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ] && [ "$TMUX_STARTED" = "" ]; then tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux; exit; elif ! [[ -z "$TMUX" ]]; then echo 'Welcome to your vast.ai container! This session is running in `tmux`.'; echo 'To disconnect without closing your processes, press ctrl+b, release, then d.'; echo 'To disable auto-tmux, run `touch ~/.no_auto_tmux` and reconnect. See also https://tmuxcheatsheet.com/'; fi;
105
+ DIRECT_PORT_START=0
106
+ DIRECT_PORT_END=0
107
+ VAST_CONTAINERLABEL=C.12728823
.cache/pip/http-v2/0/1/f/2/0/01f2082df50502ba9492d64e69db99d1fdb5730707a16c6264b355b8 ADDED
Binary file (1.13 kB). View file
 
.cache/pip/http-v2/0/2/f/8/e/02f8e820ca8231526982c4a2b93baef519d0948ff85c925acd226f06 ADDED
Binary file (1.82 kB). View file
 
.cache/pip/http-v2/0/5/8/9/6/0589682f53f4c502330bc0fa01138806ce0467c549c2af469b6afb31.body ADDED
Binary file (64.9 kB). View file
 
.cache/pip/http-v2/0/5/e/2/2/05e22b8b3169eed822187b7e670f3dc47b0666b777d95f87de8fb5e9 ADDED
Binary file (1.11 kB). View file
 
.cache/pip/http-v2/0/5/e/2/2/05e22b8b3169eed822187b7e670f3dc47b0666b777d95f87de8fb5e9.body ADDED
Binary file (24.3 kB). View file
 
.cache/pip/http-v2/0/6/7/2/6/06726d442b7e33afe35f1740674b6dee72357a95eef3aca0ef7abf21.body ADDED
Binary file (7.81 kB). View file
 
.cache/pip/http-v2/0/e/a/4/f/0ea4f1b2570ca3d64073f1277e4faa435bd7c7cbadafd80723949de4 ADDED
Binary file (1.81 kB). View file
 
.cache/pip/http-v2/0/e/a/4/f/0ea4f1b2570ca3d64073f1277e4faa435bd7c7cbadafd80723949de4.body ADDED
Binary file (66.6 kB). View file
 
.cache/pip/http-v2/1/0/e/d/c/10edc2fedb88f9a82f91dc7f8666c74a4e7067dbd945b9923a040482.body ADDED
Binary file (133 kB). View file
 
.cache/pip/http-v2/1/6/9/3/2/1693297fb9daf7bfe370bf51d371acfeb8ff40759bf8650dfd404ba4.body ADDED
Binary file (273 kB). View file
 
.cache/pip/http-v2/1/8/e/e/a/18eea207de73c88bb45229bed4bcc74fbcbddadf2aa9f49e4df1f66a ADDED
Binary file (1.19 kB). View file
 
.cache/pip/http-v2/1/a/9/9/5/1a995e0685d0b5c5a3f3321cda9ebcbc376a9137828d1c100a493532 ADDED
Binary file (1.81 kB). View file
 
.cache/pip/http-v2/1/d/5/8/0/1d580297aa71908bf0d94823d03615447cfaaf5e778d47640756ae80 ADDED
Binary file (1.82 kB). View file
 
.cache/pip/http-v2/1/d/5/8/0/1d580297aa71908bf0d94823d03615447cfaaf5e778d47640756ae80.body ADDED
Binary file (23.4 kB). View file
 
.cache/pip/http-v2/1/d/8/a/2/1d8a24cdff71edbc3f733b6b4d52640c1c1129289938aa4d1c7adcf5 ADDED
Binary file (1.15 kB). View file
 
.cache/pip/http-v2/1/e/2/b/1/1e2b1734fc3c57a4733131da81a6167573fc77057172172ceee83a22 ADDED
Binary file (1.81 kB). View file
 
.cache/pip/http-v2/1/e/2/b/1/1e2b1734fc3c57a4733131da81a6167573fc77057172172ceee83a22.body ADDED
Binary file (5.58 kB). View file
 
.cache/pip/http-v2/4/2/f/8/a/42f8a0202dbbd3a131c6443d28a5b01775c53d41dec7e7928a8b5a4c.body ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: multidict
3
+ Version: 6.1.0
4
+ Summary: multidict implementation
5
+ Home-page: https://github.com/aio-libs/multidict
6
+ Author: Andrew Svetlov
7
+ Author-email: andrew.svetlov@gmail.com
8
+ License: Apache 2
9
+ Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
10
+ Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
11
+ Project-URL: CI: GitHub, https://github.com/aio-libs/multidict/actions
12
+ Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
13
+ Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict
14
+ Project-URL: Docs: Changelog, https://multidict.aio-libs.org/en/latest/changes/
15
+ Project-URL: Docs: RTD, https://multidict.aio-libs.org
16
+ Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues
17
+ Project-URL: GitHub: repo, https://github.com/aio-libs/multidict
18
+ Classifier: Development Status :: 5 - Production/Stable
19
+ Classifier: Intended Audience :: Developers
20
+ Classifier: License :: OSI Approved :: Apache Software License
21
+ Classifier: Programming Language :: Python
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Requires-Python: >=3.8
30
+ Description-Content-Type: text/x-rst
31
+ License-File: LICENSE
32
+ Requires-Dist: typing-extensions >=4.1.0 ; python_version < "3.11"
33
+
34
+ =========
35
+ multidict
36
+ =========
37
+
38
+ .. image:: https://github.com/aio-libs/multidict/actions/workflows/ci-cd.yml/badge.svg
39
+ :target: https://github.com/aio-libs/multidict/actions
40
+ :alt: GitHub status for master branch
41
+
42
+ .. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg
43
+ :target: https://codecov.io/gh/aio-libs/multidict
44
+ :alt: Coverage metrics
45
+
46
+ .. image:: https://img.shields.io/pypi/v/multidict.svg
47
+ :target: https://pypi.org/project/multidict
48
+ :alt: PyPI
49
+
50
+ .. image:: https://readthedocs.org/projects/multidict/badge/?version=latest
51
+ :target: https://multidict.aio-libs.org
52
+ :alt: Read The Docs build status badge
53
+
54
+ .. image:: https://img.shields.io/pypi/pyversions/multidict.svg
55
+ :target: https://pypi.org/project/multidict
56
+ :alt: Python versions
57
+
58
+ .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
59
+ :target: https://matrix.to/#/%23aio-libs:matrix.org
60
+ :alt: Matrix Room — #aio-libs:matrix.org
61
+
62
+ .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
63
+ :target: https://matrix.to/#/%23aio-libs-space:matrix.org
64
+ :alt: Matrix Space — #aio-libs-space:matrix.org
65
+
66
+ Multidict is dict-like collection of *key-value pairs* where key
67
+ might occur more than once in the container.
68
+
69
+ Introduction
70
+ ------------
71
+
72
+ *HTTP Headers* and *URL query string* require specific data structure:
73
+ *multidict*. It behaves mostly like a regular ``dict`` but it may have
74
+ several *values* for the same *key* and *preserves insertion ordering*.
75
+
76
+ The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries).
77
+
78
+ ``multidict`` has four multidict classes:
79
+ ``MultiDict``, ``MultiDictProxy``, ``CIMultiDict``
80
+ and ``CIMultiDictProxy``.
81
+
82
+ Immutable proxies (``MultiDictProxy`` and
83
+ ``CIMultiDictProxy``) provide a dynamic view for the
84
+ proxied multidict, the view reflects underlying collection changes. They
85
+ implement the ``collections.abc.Mapping`` interface.
86
+
87
+ Regular mutable (``MultiDict`` and ``CIMultiDict``) classes
88
+ implement ``collections.abc.MutableMapping`` and allows them to change
89
+ their own content.
90
+
91
+
92
+ *Case insensitive* (``CIMultiDict`` and
93
+ ``CIMultiDictProxy``) assume the *keys* are case
94
+ insensitive, e.g.::
95
+
96
+ >>> dct = CIMultiDict(key='val')
97
+ >>> 'Key' in dct
98
+ True
99
+ >>> dct['Key']
100
+ 'val'
101
+
102
+ *Keys* should be ``str`` or ``istr`` instances.
103
+
104
+ The library has optional C Extensions for speed.
105
+
106
+
107
+ License
108
+ -------
109
+
110
+ Apache 2
111
+
112
+ Library Installation
113
+ --------------------
114
+
115
+ .. code-block:: bash
116
+
117
+ $ pip install multidict
118
+
119
+ The library is Python 3 only!
120
+
121
+ PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
122
+ ``multidict`` on another operating system (or *Alpine Linux* inside a Docker) the
123
+ tarball will be used to compile the library from source. It requires a C compiler and
124
+ Python headers to be installed.
125
+
126
+ To skip the compilation, please use the `MULTIDICT_NO_EXTENSIONS` environment variable,
127
+ e.g.:
128
+
129
+ .. code-block:: bash
130
+
131
+ $ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
132
+
133
+ Please note, the pure Python (uncompiled) version is about 20-50 times slower depending on
134
+ the usage scenario!!!
135
+
136
+
137
+
138
+ Changelog
139
+ ---------
140
+ See `RTD page <http://multidict.aio-libs.org/en/latest/changes>`_.
.cache/pip/http-v2/4/5/9/c/7/459c78bacdedb04c7e03d152081522ecf0ff46e1d14e7503997ea6c8.body ADDED
Binary file (508 kB). View file
 
.cache/pip/http-v2/4/a/7/8/1/4a7814588b6ac1f8145ad3d5ec0e03ad23d92f14a1ce01843a6998d7 ADDED
Binary file (1.15 kB). View file
 
.cache/pip/http-v2/4/a/7/8/1/4a7814588b6ac1f8145ad3d5ec0e03ad23d92f14a1ce01843a6998d7.body ADDED
Binary file (62.7 kB). View file
 
.cache/pip/http-v2/4/d/2/7/2/4d272e6453941ce8b0a37a02cdb1685fc612c33441fa74691fb40656 ADDED
Binary file (1.82 kB). View file
 
.cache/pip/http-v2/7/1/b/9/d/71b9df22187d5c54f1147d4ac0849d1438ec19aedc20363a3478b854 ADDED
Binary file (1.18 kB). View file
 
.cache/pip/http-v2/7/2/2/9/f/7229fb50bdca3f16cb03ca953b540cb67fb07fb971b675db32ae3239 ADDED
Binary file (1.17 kB). View file
 
.cache/pip/http-v2/7/3/5/4/e/7354e15b7a2b590d713d4782bd16917fac9db3c087fa80d4d8dc0db5 ADDED
Binary file (1.19 kB). View file
 
.cache/pip/http-v2/7/3/5/4/e/7354e15b7a2b590d713d4782bd16917fac9db3c087fa80d4d8dc0db5.body ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: pytest
3
+ Version: 8.3.3
4
+ Summary: pytest: simple powerful testing with Python
5
+ Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin, Others (See AUTHORS)
6
+ License: MIT
7
+ Project-URL: Changelog, https://docs.pytest.org/en/stable/changelog.html
8
+ Project-URL: Homepage, https://docs.pytest.org/en/latest/
9
+ Project-URL: Source, https://github.com/pytest-dev/pytest
10
+ Project-URL: Tracker, https://github.com/pytest-dev/pytest/issues
11
+ Project-URL: Twitter, https://twitter.com/pytestdotorg
12
+ Keywords: test,unittest
13
+ Classifier: Development Status :: 6 - Mature
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: MacOS
17
+ Classifier: Operating System :: Microsoft :: Windows
18
+ Classifier: Operating System :: POSIX
19
+ Classifier: Operating System :: Unix
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.8
22
+ Classifier: Programming Language :: Python :: 3.9
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Topic :: Software Development :: Libraries
27
+ Classifier: Topic :: Software Development :: Testing
28
+ Classifier: Topic :: Utilities
29
+ Requires-Python: >=3.8
30
+ Description-Content-Type: text/x-rst
31
+ License-File: LICENSE
32
+ License-File: AUTHORS
33
+ Requires-Dist: iniconfig
34
+ Requires-Dist: packaging
35
+ Requires-Dist: pluggy <2,>=1.5
36
+ Requires-Dist: exceptiongroup >=1.0.0rc8 ; python_version < "3.11"
37
+ Requires-Dist: tomli >=1 ; python_version < "3.11"
38
+ Requires-Dist: colorama ; sys_platform == "win32"
39
+ Provides-Extra: dev
40
+ Requires-Dist: argcomplete ; extra == 'dev'
41
+ Requires-Dist: attrs >=19.2 ; extra == 'dev'
42
+ Requires-Dist: hypothesis >=3.56 ; extra == 'dev'
43
+ Requires-Dist: mock ; extra == 'dev'
44
+ Requires-Dist: pygments >=2.7.2 ; extra == 'dev'
45
+ Requires-Dist: requests ; extra == 'dev'
46
+ Requires-Dist: setuptools ; extra == 'dev'
47
+ Requires-Dist: xmlschema ; extra == 'dev'
48
+
49
+ .. image:: https://github.com/pytest-dev/pytest/raw/main/doc/en/img/pytest_logo_curves.svg
50
+ :target: https://docs.pytest.org/en/stable/
51
+ :align: center
52
+ :height: 200
53
+ :alt: pytest
54
+
55
+
56
+ ------
57
+
58
+ .. image:: https://img.shields.io/pypi/v/pytest.svg
59
+ :target: https://pypi.org/project/pytest/
60
+
61
+ .. image:: https://img.shields.io/conda/vn/conda-forge/pytest.svg
62
+ :target: https://anaconda.org/conda-forge/pytest
63
+
64
+ .. image:: https://img.shields.io/pypi/pyversions/pytest.svg
65
+ :target: https://pypi.org/project/pytest/
66
+
67
+ .. image:: https://codecov.io/gh/pytest-dev/pytest/branch/main/graph/badge.svg
68
+ :target: https://codecov.io/gh/pytest-dev/pytest
69
+ :alt: Code coverage Status
70
+
71
+ .. image:: https://github.com/pytest-dev/pytest/actions/workflows/test.yml/badge.svg
72
+ :target: https://github.com/pytest-dev/pytest/actions?query=workflow%3Atest
73
+
74
+ .. image:: https://results.pre-commit.ci/badge/github/pytest-dev/pytest/main.svg
75
+ :target: https://results.pre-commit.ci/latest/github/pytest-dev/pytest/main
76
+ :alt: pre-commit.ci status
77
+
78
+ .. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
79
+ :target: https://www.codetriage.com/pytest-dev/pytest
80
+
81
+ .. image:: https://readthedocs.org/projects/pytest/badge/?version=latest
82
+ :target: https://pytest.readthedocs.io/en/latest/?badge=latest
83
+ :alt: Documentation Status
84
+
85
+ .. image:: https://img.shields.io/badge/Discord-pytest--dev-blue
86
+ :target: https://discord.com/invite/pytest-dev
87
+ :alt: Discord
88
+
89
+ .. image:: https://img.shields.io/badge/Libera%20chat-%23pytest-orange
90
+ :target: https://web.libera.chat/#pytest
91
+ :alt: Libera chat
92
+
93
+
94
+ The ``pytest`` framework makes it easy to write small tests, yet
95
+ scales to support complex functional testing for applications and libraries.
96
+
97
+ An example of a simple test:
98
+
99
+ .. code-block:: python
100
+
101
+ # content of test_sample.py
102
+ def inc(x):
103
+ return x + 1
104
+
105
+
106
+ def test_answer():
107
+ assert inc(3) == 5
108
+
109
+
110
+ To execute it::
111
+
112
+ $ pytest
113
+ ============================= test session starts =============================
114
+ collected 1 items
115
+
116
+ test_sample.py F
117
+
118
+ ================================== FAILURES ===================================
119
+ _________________________________ test_answer _________________________________
120
+
121
+ def test_answer():
122
+ > assert inc(3) == 5
123
+ E assert 4 == 5
124
+ E + where 4 = inc(3)
125
+
126
+ test_sample.py:5: AssertionError
127
+ ========================== 1 failed in 0.04 seconds ===========================
128
+
129
+
130
+ Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used. See `getting-started <https://docs.pytest.org/en/stable/getting-started.html#our-first-test-run>`_ for more examples.
131
+
132
+
133
+ Features
134
+ --------
135
+
136
+ - Detailed info on failing `assert statements <https://docs.pytest.org/en/stable/how-to/assert.html>`_ (no need to remember ``self.assert*`` names)
137
+
138
+ - `Auto-discovery
139
+ <https://docs.pytest.org/en/stable/explanation/goodpractices.html#python-test-discovery>`_
140
+ of test modules and functions
141
+
142
+ - `Modular fixtures <https://docs.pytest.org/en/stable/explanation/fixtures.html>`_ for
143
+ managing small or parametrized long-lived test resources
144
+
145
+ - Can run `unittest <https://docs.pytest.org/en/stable/how-to/unittest.html>`_ (or trial)
146
+ test suites out of the box
147
+
148
+ - Python 3.8+ or PyPy3
149
+
150
+ - Rich plugin architecture, with over 1300+ `external plugins <https://docs.pytest.org/en/latest/reference/plugin_list.html>`_ and thriving community
151
+
152
+
153
+ Documentation
154
+ -------------
155
+
156
+ For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/stable/.
157
+
158
+
159
+ Bugs/Requests
160
+ -------------
161
+
162
+ Please use the `GitHub issue tracker <https://github.com/pytest-dev/pytest/issues>`_ to submit bugs or request features.
163
+
164
+
165
+ Changelog
166
+ ---------
167
+
168
+ Consult the `Changelog <https://docs.pytest.org/en/stable/changelog.html>`__ page for fixes and enhancements of each version.
169
+
170
+
171
+ Support pytest
172
+ --------------
173
+
174
+ `Open Collective`_ is an online funding platform for open and transparent communities.
175
+ It provides tools to raise money and share your finances in full transparency.
176
+
177
+ It is the platform of choice for individuals and companies that want to make one-time or
178
+ monthly donations directly to the project.
179
+
180
+ See more details in the `pytest collective`_.
181
+
182
+ .. _Open Collective: https://opencollective.com
183
+ .. _pytest collective: https://opencollective.com/pytest
184
+
185
+
186
+ pytest for enterprise
187
+ ---------------------
188
+
189
+ Available as part of the Tidelift Subscription.
190
+
191
+ The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and
192
+ maintenance for the open source dependencies you use to build your applications.
193
+ Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.
194
+
195
+ `Learn more. <https://tidelift.com/subscription/pkg/pypi-pytest?utm_source=pypi-pytest&utm_medium=referral&utm_campaign=enterprise&utm_term=repo>`_
196
+
197
+ Security
198
+ ^^^^^^^^
199
+
200
+ pytest has never been associated with a security vulnerability, but in any case, to report a
201
+ security vulnerability please use the `Tidelift security contact <https://tidelift.com/security>`_.
202
+ Tidelift will coordinate the fix and disclosure.
203
+
204
+
205
+ License
206
+ -------
207
+
208
+ Copyright Holger Krekel and others, 2004.
209
+
210
+ Distributed under the terms of the `MIT`_ license, pytest is free and open source software.
211
+
212
+ .. _`MIT`: https://github.com/pytest-dev/pytest/blob/main/LICENSE
.cache/pip/http-v2/7/7/6/7/2/7767287c95ec4491394e4204f2ba3be9eb9e3ed9ca0ffd45d421b772.body ADDED
Binary file (307 kB). View file
 
.cache/pip/http-v2/7/c/4/b/8/7c4b8a19f4f69494c22868b76649cd91120de17447e4ff71fb7a7f10.body ADDED
Binary file (1.39 kB). View file
 
.cache/pip/http-v2/7/e/1/d/d/7e1dd8fd372b5a4d9dab3a30df124fb3e1f8789a9ab79f867640876a.body ADDED
Binary file (65.4 kB). View file
 
.cache/pip/http-v2/a/6/6/7/4/a6674e44f8dbb270324765d1fb568b86858877aed299a2428f81e802 ADDED
Binary file (1.81 kB). View file
 
.cache/pip/http-v2/a/b/7/2/8/ab7286aff652f0ea3cc68322991122267ea675cbb86a9b1ccfe4ace3 ADDED
Binary file (1.19 kB). View file
 
.cache/pip/http-v2/a/d/e/c/9/adec97b9b98035179c2f2a0370fc49fcf626678705d2f38c1dcdafa7 ADDED
Binary file (1.16 kB). View file
 
.cache/pip/http-v2/b/6/8/7/d/b687d90e2a44328db9c9ecd9af0a9c577a4e68f9d239bbb73aebc319.body ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: wheel
3
+ Version: 0.42.0
4
+ Summary: A built-package format for Python
5
+ Keywords: wheel,packaging
6
+ Author-email: Daniel Holth <dholth@fastmail.fm>
7
+ Maintainer-email: Alex Grönholm <alex.gronholm@nextday.fi>
8
+ Requires-Python: >=3.7
9
+ Description-Content-Type: text/x-rst
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: System :: Archiving :: Packaging
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Requires-Dist: pytest >= 6.0.0 ; extra == "test"
23
+ Requires-Dist: setuptools >= 65 ; extra == "test"
24
+ Project-URL: Changelog, https://wheel.readthedocs.io/en/stable/news.html
25
+ Project-URL: Documentation, https://wheel.readthedocs.io/
26
+ Project-URL: Issue Tracker, https://github.com/pypa/wheel/issues
27
+ Project-URL: Source, https://github.com/pypa/wheel
28
+ Provides-Extra: test
29
+
30
+ wheel
31
+ =====
32
+
33
+ This library is the reference implementation of the Python wheel packaging
34
+ standard, as defined in `PEP 427`_.
35
+
36
+ It has two different roles:
37
+
38
+ #. A setuptools_ extension for building wheels that provides the
39
+ ``bdist_wheel`` setuptools command
40
+ #. A command line tool for working with wheel files
41
+
42
+ It should be noted that wheel is **not** intended to be used as a library, and
43
+ as such there is no stable, public API.
44
+
45
+ .. _PEP 427: https://www.python.org/dev/peps/pep-0427/
46
+ .. _setuptools: https://pypi.org/project/setuptools/
47
+
48
+ Documentation
49
+ -------------
50
+
51
+ The documentation_ can be found on Read The Docs.
52
+
53
+ .. _documentation: https://wheel.readthedocs.io/
54
+
55
+ Code of Conduct
56
+ ---------------
57
+
58
+ Everyone interacting in the wheel project's codebases, issue trackers, chat
59
+ rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
60
+
61
+ .. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
62
+
.cache/pip/http-v2/b/8/b/f/4/b8bf4a44dbb1c5e59b2500975b68a4301d11f85878b612151a649c3d ADDED
Binary file (1.82 kB). View file
 
.cache/pip/http-v2/b/f/c/a/5/bfca522eaf7404612287f82a4ec69fbc52a846f5a5757f91528163da ADDED
Binary file (1.15 kB). View file
 
.cache/pip/http-v2/b/f/d/6/3/bfd6322b8f4c82d6b7ed54608512187e126478b3b0851b74973f4adc.body ADDED
Binary file (299 kB). View file
 
.launchpadlib/api.launchpad.net/cache/api.launchpad.net,devel,-application,json,fc4e1e3a03117146fb1e9d492ab76690 ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ status: 200
2
+ date: Mon, 05 Feb 2024 23:25:35 GMT
3
+ server: Apache/2.4.41 (Ubuntu)
4
+ content-location: index.json
5
+ vary: negotiate,accept,Accept-Encoding
6
+ tcn: choice
7
+ last-modified: Wed, 31 Jan 2024 08:46:52 GMT
8
+ etag: "8fa-61039eb973700-gzip"
9
+ accept-ranges: bytes
10
+ content-type: application/json; qs=0.9
11
+ x-cache: MISS from juju-98d295-prod-launchpad-30
12
+ x-cache-lookup: MISS from juju-98d295-prod-launchpad-30:3128
13
+ via: 1.1 juju-98d295-prod-launchpad-30 (squid/4.10)
14
+ content-length: 2298
15
+ -content-encoding: gzip
16
+ -varied-accept: application/json
17
+ -varied-accept-encoding: gzip, deflate
18
+
19
+ {"resource_type_link": "https://api.launchpad.net/devel/#service-root", "temporary_blobs_collection_link": "https://api.launchpad.net/devel/temporary-blobs", "countries_collection_link": "https://api.launchpad.net/devel/+countries", "languages_collection_link": "https://api.launchpad.net/devel/+languages", "questions_collection_link": "https://api.launchpad.net/devel/questions", "specifications_collection_link": "https://api.launchpad.net/devel/", "bug_trackers_collection_link": "https://api.launchpad.net/devel/bugs/bugtrackers", "cves_collection_link": "https://api.launchpad.net/devel/bugs/cve", "bugs_collection_link": "https://api.launchpad.net/devel/bugs", "builders_collection_link": "https://api.launchpad.net/devel/builders", "processors_collection_link": "https://api.launchpad.net/devel/+processors", "charm_bases_collection_link": "https://api.launchpad.net/devel/+charm-bases", "charm_recipes_collection_link": "https://api.launchpad.net/devel/+charm-recipes", "branches_collection_link": "https://api.launchpad.net/devel/branches", "git_repositories_collection_link": "https://api.launchpad.net/devel/+git", "snap_bases_collection_link": "https://api.launchpad.net/devel/+snap-bases", "snaps_collection_link": "https://api.launchpad.net/devel/+snaps", "snappy_serieses_collection_link": "https://api.launchpad.net/devel/+snappy-series", "archives_collection_link": "https://api.launchpad.net/devel/archives", "livefses_collection_link": "https://api.launchpad.net/devel/livefses", "packagesets_collection_link": "https://api.launchpad.net/devel/package-sets", "translation_groups_collection_link": "https://api.launchpad.net/devel/+groups", "translation_import_queue_entries_collection_link": "https://api.launchpad.net/devel/+imports", "distributions_collection_link": "https://api.launchpad.net/devel/distros", "people_collection_link": "https://api.launchpad.net/devel/people", "polls_collection_link": "https://api.launchpad.net/devel/+polls", "projects_collection_link": "https://api.launchpad.net/devel/projects", "project_groups_collection_link": "https://api.launchpad.net/devel/projectgroups", "services_link": "https://api.launchpad.net/devel/services", "pillars_link": "https://api.launchpad.net/devel/pillars", "me_link": "https://api.launchpad.net/devel/people/+me"}
.local/share/Trash/info/train_001.bin.trashinfo ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [Trash Info]
2
+ Path=/root/data/fineweb/train_001.bin
3
+ DeletionDate=2024-09-26T05:50:34
.local/share/Trash/info/train_003.bin.trashinfo ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [Trash Info]
2
+ Path=/root/data/fineweb/train_003.bin
3
+ DeletionDate=2024-09-26T05:50:34
.local/share/Trash/info/train_006.bin.trashinfo ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [Trash Info]
2
+ Path=/root/data/fineweb/train_006.bin
3
+ DeletionDate=2024-09-26T05:50:34
.local/share/Trash/info/train_007.bin.trashinfo ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [Trash Info]
2
+ Path=/root/data/fineweb/train_007.bin
3
+ DeletionDate=2024-09-26T05:50:34
.local/share/jupyter/nbextensions/skip-traceback/icon.png ADDED
.local/share/jupyter/nbextensions/skip-traceback/skip-traceback.png ADDED
.local/share/jupyter/nbextensions/snippets_menu/main.js ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ define([
2
+ "require",
3
+ "jquery",
4
+ "base/js/namespace",
5
+ "./snippets_submenu_python",
6
+ "./snippets_submenu_markdown",
7
+ ], function (requirejs, $, Jupyter, python, markdown) {
8
+ "use strict";
9
+
10
+ var mod_name = 'snippets_menu';
11
+ var mod_log_prefix = mod_name + '[' + mod_name + ']';
12
+
13
+ var python_menus = [
14
+ python.numpy,
15
+ python.scipy,
16
+ python.matplotlib,
17
+ python.sympy,
18
+ python.pandas,
19
+ python.astropy,
20
+ python.h5py,
21
+ python.numba,
22
+ python.python,
23
+ ];
24
+
25
+ var default_menus = [
26
+ {
27
+ 'name' : 'Snippets',
28
+ 'sub-menu-direction' : 'left',
29
+ 'sub-menu' : python_menus.concat([markdown]),
30
+ },
31
+ ];
32
+ var options = {
33
+ sibling: undefined, // if undefined, set by cfg.sibling_selector
34
+ menus : [],
35
+ hooks: {
36
+ pre_config: undefined,
37
+ post_config: undefined,
38
+ }
39
+ };
40
+
41
+ var includable_submenu_keys = [
42
+ "numpy",
43
+ "scipy",
44
+ "matplotlib",
45
+ "sympy",
46
+ "pandas",
47
+ "astropy",
48
+ "h5py",
49
+ "numba",
50
+ "python",
51
+ "markdown",
52
+ ];
53
+ // default parameters
54
+ var cfg = {
55
+ insert_as_new_cell: false,
56
+ insert_before_sibling: false,
57
+ include_custom_menu: false,
58
+ include_submenu: {}, // default set after this definition
59
+ sibling_selector: '#help_menu',
60
+ top_level_submenu_goes_left: true,
61
+ // The default has to be included here as well as config.yaml
62
+ // because the configurator will not store the default given
63
+ // in config.yaml unless it is changed. That means that this
64
+ // should be kept up-to-date with whatever goes in
65
+ // config.yaml.
66
+ custom_menu_content: JSON.stringify({
67
+ "name" : "My favorites",
68
+ "sub-menu" : [{
69
+ "name" : "Menu item text",
70
+ "snippet" : [
71
+ "import something",
72
+ "",
73
+ "new_command(3.14)",
74
+ "other_new_code_on_new_line('with a string!')",
75
+ "stringy(\"if you need them, escape double quotes with a single backslash\")",
76
+ "backslashy('This \\ appears as just one backslash in the output')",
77
+ "backslashy2('Here \\\\ are two backslashes')"
78
+ ]}, {
79
+ "name" : "TeX can be written in menu labels $\\alpha_W e\\int_0 \\mu \\epsilon$",
80
+ "snippet" : [
81
+ "another_new_command(2.78)"
82
+ ]
83
+ }
84
+ ]
85
+ })
86
+ };
87
+ for (var ii=0; ii< includable_submenu_keys.length; ii++) {
88
+ cfg.include_submenu[includable_submenu_keys[ii]] = true;
89
+ }
90
+
91
+ function config_loaded_callback () {
92
+ if (options['pre_config_hook'] !== undefined) {
93
+ options['pre_config_hook']();
94
+ }
95
+
96
+ // true => deep
97
+ cfg = $.extend(true, cfg, Jupyter.notebook.config.data.snippets);
98
+
99
+ if (cfg.insert_as_new_cell) {
100
+ console.log(mod_log_prefix, "Insertions will insert new cell");
101
+ }
102
+
103
+ // If `options.menus` had elements added in custom.js, skip all of this and ignore all remaining options
104
+ if (options.menus.length > 0) {
105
+ console.log(mod_log_prefix, '`options.menus` was created in custom.js; skipping all other configuration.');
106
+ }
107
+ else {
108
+ options.menus = [
109
+ {
110
+ 'name' : 'Snippets',
111
+ 'sub-menu-direction' : cfg.top_level_submenu_goes_left ? 'left' : 'right',
112
+ 'sub-menu' : [],
113
+ },
114
+ ];
115
+
116
+ if (cfg.include_custom_menu) {
117
+ var custom_menu_content = JSON.parse(cfg.custom_menu_content);
118
+ console.log(mod_log_prefix,
119
+ "Inserting custom", custom_menu_content.name, "sub-menu");
120
+ options.menus[0]['sub-menu'].push(custom_menu_content);
121
+ }
122
+
123
+ for (var ii=0; ii < includable_submenu_keys.length; ii++) {
124
+ var key = includable_submenu_keys[ii];
125
+ if (cfg.include_submenu[key]) {
126
+ console.log(mod_log_prefix,
127
+ "Inserting default", key, "sub-menu");
128
+ options.menus[0]['sub-menu'].push(key === "markdown" ? markdown : python[key]);
129
+ }
130
+ }
131
+ }
132
+
133
+ if (options.hooks.post_config !== undefined) {
134
+ options.hooks.post_config();
135
+ }
136
+
137
+ // select correct sibling
138
+ if (options.sibling === undefined) {
139
+ options.sibling = $(cfg.sibling_selector).parent();
140
+ if (options.sibling.length < 1) {
141
+ options.sibling = $("#help_menu").parent();
142
+ }
143
+ }
144
+ }
145
+
146
+ function insert_snippet_code (snippet_code) {
147
+ if (cfg.insert_as_new_cell) {
148
+ var new_cell = Jupyter.notebook.insert_cell_above('code');
149
+ new_cell.set_text(snippet_code);
150
+ new_cell.focus_cell();
151
+ }
152
+ else {
153
+ var selected_cell = Jupyter.notebook.get_selected_cell();
154
+ Jupyter.notebook.edit_mode();
155
+ selected_cell.code_mirror.replaceSelection(snippet_code, 'around');
156
+ }
157
+ }
158
+
159
+ function callback_insert_snippet (evt) {
160
+ // this (or event.currentTarget, see below) always refers to the DOM
161
+ // element the listener was attached to - see
162
+ // http://stackoverflow.com/questions/12077859
163
+ insert_snippet_code($(evt.currentTarget).data('snippet-code'));
164
+ }
165
+
166
+ function build_menu_element (menu_item_spec, direction) {
167
+ // Create the menu item html element
168
+ var element = $('<li/>');
169
+
170
+ if (typeof menu_item_spec == 'string') {
171
+ if (menu_item_spec != '---') {
172
+ console.log(mod_log_prefix,
173
+ 'Don\'t understand sub-menu string "' + menu_item_spec + '"');
174
+ return null;
175
+ }
176
+ return element.addClass('divider');
177
+ }
178
+
179
+ var a = $('<a/>')
180
+ .attr('href', '#')
181
+ .html(menu_item_spec.name)
182
+ .appendTo(element);
183
+ if (menu_item_spec.hasOwnProperty('snippet')) {
184
+ var snippet = menu_item_spec.snippet;
185
+ if (typeof snippet == 'string' || snippet instanceof String) {
186
+ snippet = [snippet];
187
+ }
188
+ a.attr({
189
+ 'title' : "", // Do not remove this, even though it's empty!
190
+ 'data-snippet-code' : snippet.join('\n'),
191
+ })
192
+ .on('click', callback_insert_snippet)
193
+ .addClass('snippet');
194
+ }
195
+ else if (menu_item_spec.hasOwnProperty('internal-link')) {
196
+ a.attr('href', menu_item_spec['internal-link']);
197
+ }
198
+ else if (menu_item_spec.hasOwnProperty('external-link')) {
199
+ a.empty();
200
+ a.attr({
201
+ 'target' : '_blank',
202
+ 'title' : 'Opens in a new window',
203
+ 'href' : menu_item_spec['external-link'],
204
+ });
205
+ $('<i class="fa fa-external-link menu-icon pull-right"/>').appendTo(a);
206
+ $('<span/>').html(menu_item_spec.name).appendTo(a);
207
+ }
208
+
209
+ if (menu_item_spec.hasOwnProperty('sub-menu')) {
210
+ element
211
+ .addClass('dropdown-submenu')
212
+ .toggleClass('dropdown-submenu-left', direction === 'left');
213
+ var sub_element = $('<ul class="dropdown-menu"/>')
214
+ .toggleClass('dropdown-menu-compact', menu_item_spec.overlay === true) // For space-saving menus
215
+ .appendTo(element);
216
+
217
+ var new_direction = (menu_item_spec['sub-menu-direction'] === 'left') ? 'left' : 'right';
218
+ for (var j=0; j<menu_item_spec['sub-menu'].length; ++j) {
219
+ var sub_menu_item_spec = build_menu_element(menu_item_spec['sub-menu'][j], new_direction);
220
+ if(sub_menu_item_spec !== null) {
221
+ sub_menu_item_spec.appendTo(sub_element);
222
+ }
223
+ }
224
+ }
225
+
226
+ return element;
227
+ }
228
+
229
+ function menu_setup (menu_item_specs, sibling, insert_before_sibling) {
230
+ for (var i=0; i<menu_item_specs.length; ++i) {
231
+ var menu_item_spec;
232
+ if (insert_before_sibling) {
233
+ menu_item_spec = menu_item_specs[i];
234
+ } else {
235
+ menu_item_spec = menu_item_specs[menu_item_specs.length-1-i];
236
+ }
237
+ var direction = (menu_item_spec['menu-direction'] == 'left') ? 'left' : 'right';
238
+ var menu_element = build_menu_element(menu_item_spec, direction);
239
+ // We need special properties if this item is in the navbar
240
+ if ($(sibling).parent().is('ul.nav.navbar-nav')) {
241
+ menu_element
242
+ .addClass('dropdown')
243
+ .removeClass('dropdown-submenu dropdown-submenu-left');
244
+ menu_element.children('a')
245
+ .addClass('dropdown-toggle')
246
+ .attr({
247
+ 'data-toggle' : 'dropdown',
248
+ 'aria-expanded' : 'false'
249
+ });
250
+ }
251
+
252
+ // Insert the menu element into DOM
253
+ menu_element[insert_before_sibling ? 'insertBefore': 'insertAfter'](sibling);
254
+
255
+ // Make sure MathJax will typeset this menu
256
+ window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub, menu_element[0]]);
257
+ }
258
+ }
259
+
260
+ function load_ipython_extension () {
261
+ // Add our css to the notebook's head
262
+ $('<link/>', {
263
+ rel: 'stylesheet',
264
+ type:'text/css',
265
+ href: requirejs.toUrl('./snippets_menu.css')
266
+ }).appendTo('head');
267
+
268
+ // Arrange the menus as given by the configuration
269
+ Jupyter.notebook.config.loaded.then(
270
+ config_loaded_callback
271
+ ).then(function () {
272
+ // Parse and insert the menu items
273
+ menu_setup(options.menus, options.sibling, cfg.insert_before_sibling);
274
+ });
275
+ }
276
+
277
+ return {
278
+ // Handy functions
279
+ load_ipython_extension : load_ipython_extension,
280
+ menu_setup : menu_setup,
281
+
282
+ // Default menus
283
+ python : python,
284
+ python_menus : python_menus,
285
+ markdown : markdown,
286
+ default_menus : default_menus,
287
+
288
+ // Items that could be useful for customization
289
+ options : options,
290
+ };
291
+
292
+ });
.local/share/jupyter/nbextensions/snippets_menu/screenshot3.png ADDED
.local/share/jupyter/nbextensions/snippets_menu/snippets_submenu_python.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ define([
2
+ "require",
3
+ "./snippets_submenus_python/numpy",
4
+ "./snippets_submenus_python/scipy",
5
+ "./snippets_submenus_python/matplotlib",
6
+ "./snippets_submenus_python/sympy",
7
+ "./snippets_submenus_python/pandas",
8
+ "./snippets_submenus_python/astropy",
9
+ "./snippets_submenus_python/h5py",
10
+ "./snippets_submenus_python/numba",
11
+ "./snippets_submenus_python/python",
12
+ ], function (requirejs, numpy, scipy, matplotlib, sympy, pandas, astropy, h5py, numba, python) {
13
+ return {
14
+ numpy:numpy,
15
+ scipy:scipy,
16
+ matplotlib:matplotlib,
17
+ sympy:sympy,
18
+ pandas:pandas,
19
+ astropy:astropy,
20
+ h5py:h5py,
21
+ numba:numba,
22
+ python:python,
23
+ };
24
+ });
.local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/scipy.js ADDED
@@ -0,0 +1,620 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ define([
2
+ "require",
3
+ "./scipy_constants",
4
+ "./scipy_special",
5
+ ], function (requirejs, scipy_constants, scipy_special) {
6
+ return {
7
+ 'name' : 'SciPy',
8
+ 'sub-menu' : [
9
+ {
10
+ 'name' : 'Setup',
11
+ 'snippet' : [
12
+ 'from __future__ import print_function, division',
13
+ 'import numpy as np',
14
+ 'import scipy as sp',
15
+ ],
16
+ },
17
+
18
+ {
19
+ 'name' : 'Documentation',
20
+ 'external-link' : 'http://docs.scipy.org/doc/scipy/reference/',
21
+ },
22
+
23
+ '---',
24
+
25
+ // {
26
+ // 'name' : 'Clustering algorithms',
27
+ // 'sub-menu' : [
28
+ // {
29
+ // 'name' : 'Setup',
30
+ // 'snippet' : ['from scipy import cluster',],
31
+ // },
32
+ // ],
33
+ // },
34
+
35
+ scipy_constants,
36
+
37
+ {
38
+ 'name' : 'Fast Fourier Transform routines',
39
+ 'sub-menu' : [
40
+ {
41
+ 'name' : 'Setup',
42
+ 'snippet' : ['from scipy import fftpack',],
43
+ },
44
+ '---',
45
+ {
46
+ 'name' : 'Docs',
47
+ 'external-link' : 'http://docs.scipy.org/doc/scipy-0.15.1/reference/fftpack.html'
48
+ },
49
+ ],
50
+ },
51
+
52
+ {
53
+ 'name' : 'Integration and ODE solvers',
54
+ 'sub-menu' : [
55
+ {
56
+ 'name' : 'Setup',
57
+ 'snippet' : ['from scipy import integrate',],
58
+ },
59
+ '---',
60
+ {
61
+ 'name' : 'Integrate given function object',
62
+ 'sub-menu' : [
63
+ {
64
+ 'name' : 'General-purpose integration',
65
+ 'snippet' : [
66
+ 'from scipy import integrate',
67
+ 'def f(x, a, b):',
68
+ ' return a * x + b',
69
+ 'integral,error = integrate.quad(f, 0, 4.5, args=(2,1)) # integrates 2*x+1',
70
+ 'print(integral, error)',
71
+ ],
72
+ },
73
+ {
74
+ 'name' : 'General purpose double integration',
75
+ 'snippet' : [
76
+ 'from scipy import integrate',
77
+ 'def integrand(y, x):',
78
+ ' return x * y**2',
79
+ 'x_lower_lim, x_upper_lim = 0.0, 0.5',
80
+ 'y_lower_lim, y_upper_lim = lambda x:0.0, lambda x:1.0-2.0*x',
81
+ '# int_{x=0}^{0.5} int_{y=0}^{1-2x} x y dx dy',
82
+ 'integral,error = integrate.dblquad(integrand,',
83
+ ' x_lower_lim, x_upper_lim,',
84
+ ' y_lower_lim, y_upper_lim)',
85
+ 'print(integral, error)',
86
+ ],
87
+ },
88
+ {
89
+ 'name' : 'General purpose triple integration',
90
+ 'snippet' : [
91
+ 'from scipy import integrate',
92
+ 'def integrand(z, y, x):',
93
+ ' return x * y**2 + z',
94
+ 'x_lower_lim, x_upper_lim = 0.0, 0.5',
95
+ 'y_lower_lim, y_upper_lim = lambda x:0.0, lambda x:1.0-2.0*x',
96
+ 'z_lower_lim, z_upper_lim = lambda x,y:-1.0, lambda x,y:1.0+2.0*x-y',
97
+ '# int_{x=0}^{0.5} int_{y=0}^{1-2x} int_{z=-1}^{1+2x-y} (x y**2 + z) dz dy dx',
98
+ 'integral,error = integrate.tplquad(integrand,',
99
+ ' x_lower_lim, x_upper_lim,',
100
+ ' y_lower_lim, y_upper_lim,',
101
+ ' z_lower_lim, z_upper_lim)',
102
+ 'print(integral, error)',
103
+ ],
104
+ },
105
+ {
106
+ 'name' : 'General purpose n-fold integration',
107
+ 'snippet' : [
108
+ 'from scipy import integrate',
109
+ 'def integrand(x0, x1, x2):',
110
+ ' return x2 * x1**2 + x0',
111
+ 'x2_lim = (0.0, 0.5)',
112
+ 'x1_lim = lambda x2:(0.0, 1.0-2.0*x2)',
113
+ 'x0_lim = lambda x1,x2:(-1.0, 1.0+2.0*x2-x1)',
114
+ '# int_{x2=0}^{0.5} int_{x1=0}^{1-2x2} int_{x0=-1}^{1+2x2-x1} (x2 x1**2 + x0) dx0 dx1 dx2',
115
+ 'integral,error = integrate.nquad(integrand, [x0_lim, x1_lim, x2_lim])',
116
+ 'print(integral, error)',
117
+ ],
118
+ },
119
+ {
120
+ 'name' : 'Integrate func(x) using Gaussian quadrature of order $n$',
121
+ 'snippet' : [
122
+ 'gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)',
123
+ 'a,b = 0,1 # limits of integration',
124
+ 'result,err = integrate.fixed_quad(gaussian, a, b, n=5)',
125
+ ],
126
+ },
127
+ {
128
+ 'name' : 'Integrate with given tolerance using Gaussian quadrature',
129
+ 'snippet' : [
130
+ 'gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)',
131
+ 'a,b = 0,1 # limits of integration',
132
+ 'result,err = integrate.quadrature(gaussian, a, b, tol=1e-8, rtol=1e-8)',
133
+ ],
134
+ },
135
+ {
136
+ 'name' : 'Integrate using Romberg integration',
137
+ 'snippet' : [
138
+ 'gaussian = lambda x: 1/np.sqrt(np.pi) * np.exp(-x**2)',
139
+ 'a,b = 0,1 # limits of integration',
140
+ 'result = integrate.romberg(gaussian, a, b, tol=1e-8, rtol=1e-8)',
141
+ ],
142
+ },
143
+ ],
144
+ },
145
+ {
146
+ 'name' : 'Integrate given fixed samples',
147
+ 'sub-menu' : [
148
+ {
149
+ 'name' : 'Trapezoidal rule to compute integral from samples',
150
+ 'snippet' : [
151
+ 'x = np.linspace(1, 5, num=100)',
152
+ 'y = 3*x**2 + 1',
153
+ 'integrate.trapz(y, x) # Exact value is 128',
154
+ ],
155
+ },
156
+ {
157
+ 'name' : 'Trapezoidal rule to cumulatively compute integral from samples',
158
+ 'snippet' : [
159
+ 'x = np.linspace(1, 5, num=100)',
160
+ 'y = 3*x**2 + 1',
161
+ 'integrate.cumtrapz(y, x) # Should range from ~0 to ~128',
162
+ ],
163
+ },
164
+ {
165
+ 'name' : "Simpson's rule to compute integral from samples",
166
+ 'snippet' : [
167
+ 'x = np.linspace(1, 5, num=100)',
168
+ 'y = 3*x**2 + 1',
169
+ 'integrate.simps(y, x) # Exact value is 128',
170
+ ],
171
+ },
172
+ {
173
+ 'name' : 'Romberg Integration to compute integral from $2^k + 1$ evenly spaced samples',
174
+ 'snippet' : [
175
+ 'x = np.linspace(1, 5, num=2**7+1)',
176
+ 'y = 3*x**2 + 1',
177
+ 'integrate.romb(y, x) # Exact value is 128',
178
+ ],
179
+ },
180
+ ],
181
+ },
182
+ {
183
+ 'name' : 'Numerically integrate ODE systems',
184
+ 'sub-menu' : [
185
+ {
186
+ 'name' : 'General integration of ordinary differential equations',
187
+ 'snippet' : [
188
+ 'from scipy.special import gamma, airy',
189
+ 'def func(y, t):',
190
+ ' return [t*y[1], y[0]]',
191
+ 'x = np.arange(0, 4.0, 0.01)',
192
+ 'y_0 = [-1.0 / 3**(1.0/3.0) / gamma(1.0/3.0), 1.0 / 3**(2.0/3.0) / gamma(2.0/3.0)]',
193
+ 'Ai, Aip, Bi, Bip = airy(x)',
194
+ 'y = odeint(func, y_0, x, rtol=1e-12, atol=1e-12) # Exact answer: (Aip, Ai)',
195
+ ],
196
+ },
197
+ {
198
+ 'name' : 'General integration of ordinary differential equations with known gradient',
199
+ 'snippet' : [
200
+ 'from scipy.special import gamma, airy',
201
+ 'def func(y, t):',
202
+ ' return [t*y[1], y[0]]',
203
+ 'def gradient(y, t):',
204
+ ' return [[0,t], [1,0]]',
205
+ 'x = np.arange(0, 4.0, 0.01)',
206
+ 'y_0 = [-1.0 / 3**(1.0/3.0) / gamma(1.0/3.0), 1.0 / 3**(2.0/3.0) / gamma(2.0/3.0)]',
207
+ 'Ai, Aip, Bi, Bip = airy(x)',
208
+ 'y = odeint(func, y_0, x, rtol=1e-12, atol=1e-12, Dfun=gradient) # Exact answer: (Aip, Ai)',
209
+ ],
210
+ },
211
+ {
212
+ 'name' : 'Integrate ODE using VODE and ZVODE routines',
213
+ 'snippet' : [
214
+ "def f(t, y, arg1):",
215
+ " return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]",
216
+ "def jac(t, y, arg1):",
217
+ " return [[1j*arg1, 1], [0, -arg1*2*y[1]]]",
218
+ "y0 = [1.0j, 2.0]",
219
+ "t0, t1, dt = 0.0, 10.0, 1.0",
220
+ "r = integrate.ode(f, jac).set_integrator('zvode', method='bdf')",
221
+ "r.set_initial_value(y0, t0)",
222
+ "r.set_f_params(2.0)",
223
+ "r.set_jac_params(2.0)",
224
+ "while r.successful() and r.t < t1:",
225
+ " r.integrate(r.t+dt)",
226
+ " print('{0}: {1}'.format(r.t, r.y))",
227
+ ],
228
+ },
229
+ // {
230
+ // 'name' : 'Integrate complex ODE using VODE and ZVODE routines',
231
+ // 'snippet' : [
232
+ // 'integrate.complex_ode',
233
+ // ],
234
+ // },
235
+ ],
236
+ },
237
+ ],
238
+ },
239
+
240
+ {
241
+ 'name' : 'Interpolation and smoothing splines',
242
+ 'sub-menu' : [
243
+ {
244
+ 'name' : 'Setup',
245
+ 'snippet' : ['from scipy import interpolate',],
246
+ },
247
+ '---',
248
+ {
249
+ 'name' : 'interp1d',
250
+ 'snippet' : [
251
+ '# NOTE: `interp1d` is very slow; prefer `InterpolatedUnivariateSpline`',
252
+ 'x = np.linspace(0, 10, 10)',
253
+ 'y = np.cos(-x**2/8.0)',
254
+ "f = interpolate.interp1d(x, y, kind='cubic')",
255
+ 'X = np.linspace(0, 10, 100)',
256
+ 'Y = f(X)',
257
+ ],
258
+ },
259
+ {
260
+ 'name' : 'splrep / splrev',
261
+ 'snippet' : [
262
+ 'x = np.arange(0, 2*np.pi+np.pi/4, 2*np.pi/8)',
263
+ 'y = np.sin(x)',
264
+ 'tck = interpolate.splrep(x, y, s=0)',
265
+ 'xnew = np.arange(0,2*np.pi,np.pi/50)',
266
+ 'ynew = interpolate.splev(xnew, tck, der=0)',
267
+ ],
268
+ },
269
+ {
270
+ 'name' : 'InterpolatedUnivariateSpline',
271
+ 'snippet' : [
272
+ 'x = np.arange(0, 2*np.pi+np.pi/4, 2*np.pi/8)',
273
+ 'y = np.sin(x)',
274
+ 's = interpolate.InterpolatedUnivariateSpline(x, y)',
275
+ 'xnew = np.arange(0, 2*np.pi, np.pi/50)',
276
+ 'ynew = s(xnew)',
277
+ ],
278
+ },
279
+ {
280
+ 'name' : 'Multivariate interpolation',
281
+ 'sub-menu' : [
282
+
283
+ ],
284
+ },
285
+ {
286
+ 'name' : '2-D Splines',
287
+ 'sub-menu' : [
288
+
289
+ ],
290
+ },
291
+ {
292
+ 'name' : 'Radial basis functions',
293
+ 'sub-menu' : [
294
+
295
+ ],
296
+ },
297
+ ],
298
+ },
299
+
300
+ // {
301
+ // 'name' : 'Input and Output',
302
+ // 'sub-menu' : [
303
+ // {
304
+ // 'name' : 'Setup',
305
+ // 'snippet' : ['from scipy import io',],
306
+ // },
307
+ // '---',
308
+ // ],
309
+ // },
310
+
311
+ {
312
+ 'name' : 'Linear algebra',
313
+ 'sub-menu' : [
314
+ {
315
+ 'name' : 'Setup',
316
+ 'snippet' : ['from scipy import linalg',],
317
+ },
318
+ '---',
319
+ {
320
+ 'name' : 'Docs',
321
+ 'external-link' : 'http://docs.scipy.org/doc/scipy-0.15.1/reference/linalg.html'
322
+ },
323
+ ],
324
+ },
325
+
326
+ // {
327
+ // 'name' : 'Maximum entropy methods',
328
+ // 'sub-menu' : [
329
+ // {
330
+ // 'name' : 'Setup',
331
+ // 'snippet' : ['from scipy import maxentropy',],
332
+ // },
333
+ // '---',
334
+ // ],
335
+ // },
336
+
337
+ // {
338
+ // 'name' : 'N-dimensional image processing',
339
+ // 'sub-menu' : [
340
+ // {
341
+ // 'name' : 'Setup',
342
+ // 'snippet' : ['from scipy import ndimage',],
343
+ // },
344
+ // '---',
345
+ // ],
346
+ // },
347
+
348
+ // {
349
+ // 'name' : 'Orthogonal distance regression',
350
+ // 'sub-menu' : [
351
+ // {
352
+ // 'name' : 'Setup',
353
+ // 'snippet' : ['from scipy import odr',],
354
+ // },
355
+ // '---',
356
+ // ],
357
+ // },
358
+
359
+ {
360
+ 'name' : 'Optimization and root-finding routines',
361
+ 'sub-menu' : [
362
+ {
363
+ 'name' : 'Setup',
364
+ 'snippet' : [
365
+ 'from scipy import optimize',
366
+ ],
367
+ },
368
+ '---',
369
+ {
370
+ 'name' : 'Scalar function minimization',
371
+ 'sub-menu' : [
372
+ {
373
+ 'name' : 'Unconstrained minimization',
374
+ 'snippet' : [
375
+ 'f = lambda x: (x - 2) * (x + 1)**2',
376
+ "res = optimize.minimize_scalar(f, method='brent')",
377
+ 'print(res.x)',
378
+ ],
379
+ },
380
+ {
381
+ 'name' : 'Bounded minimization',
382
+ 'snippet' : [
383
+ 'from scipy.special import j1 # Test function',
384
+ "res = optimize.minimize_scalar(j1, bounds=(4, 7), method='bounded')",
385
+ 'print(res.x)',
386
+ ],
387
+ },
388
+ ],
389
+ },
390
+ {
391
+ 'name' : 'General-purpose optimization',
392
+ 'sub-menu' : [
393
+ {
394
+ 'name' : 'Nelder-Mead Simplex algorithm',
395
+ 'snippet' : [
396
+ 'def rosen(x):',
397
+ ' """The Rosenbrock function"""',
398
+ ' return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)',
399
+ 'x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])',
400
+ "res = optimize.minimize(rosen, x0, method='nelder-mead',",
401
+ " options={'xtol': 1e-8, 'disp': True})",
402
+ 'print(res.x)',],
403
+ },
404
+ {
405
+ 'name' : 'Broyden-Fletcher-Goldfarb-Shanno (BFGS), analytical derivative',
406
+ 'snippet' : [
407
+ 'def rosen(x):',
408
+ ' """The Rosenbrock function"""',
409
+ ' return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)',
410
+ 'def rosen_der(x):',
411
+ ' """Derivative of the Rosenbrock function"""',
412
+ ' xm = x[1:-1]',
413
+ ' xm_m1 = x[:-2]',
414
+ ' xm_p1 = x[2:]',
415
+ ' der = np.zeros_like(x)',
416
+ ' der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm)',
417
+ ' der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0])',
418
+ ' der[-1] = 200*(x[-1]-x[-2]**2)',
419
+ ' return der',
420
+ 'x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])',
421
+ "res = optimize.minimize(rosen, x0, method='BFGS', jac=rosen_der, options={'disp': True})",
422
+ 'print(res.x)',],
423
+ },
424
+ {
425
+ 'name' : 'Broyden-Fletcher-Goldfarb-Shanno (BFGS), finite-difference derivative',
426
+ 'snippet' : [
427
+ 'def rosen(x):',
428
+ ' """The Rosenbrock function"""',
429
+ ' return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)',
430
+ 'x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])',
431
+ "res = optimize.minimize(rosen, x0, method='BFGS', options={'disp': True})",
432
+ 'print(res.x)',],
433
+ },
434
+ {
435
+ 'name' : 'Newton-Conjugate-Gradient, full Hessian',
436
+ 'snippet' : [
437
+ 'def rosen(x):',
438
+ ' """The Rosenbrock function"""',
439
+ ' return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)',
440
+ 'def rosen_der(x):',
441
+ ' """Derivative of the Rosenbrock function"""',
442
+ ' xm = x[1:-1]',
443
+ ' xm_m1 = x[:-2]',
444
+ ' xm_p1 = x[2:]',
445
+ ' der = np.zeros_like(x)',
446
+ ' der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm)',
447
+ ' der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0])',
448
+ ' der[-1] = 200*(x[-1]-x[-2]**2)',
449
+ ' return der',
450
+ 'def rosen_hess(x):',
451
+ ' x = np.asarray(x)',
452
+ ' H = np.diag(-400*x[:-1],1) - np.diag(400*x[:-1],-1)',
453
+ ' diagonal = np.zeros_like(x)',
454
+ ' diagonal[0] = 1200*x[0]-400*x[1]+2',
455
+ ' diagonal[-1] = 200',
456
+ ' diagonal[1:-1] = 202 + 1200*x[1:-1]**2 - 400*x[2:]',
457
+ ' H = H + np.diag(diagonal)',
458
+ ' return H',
459
+ 'x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])',
460
+ "res = optimize.minimize(rosen, x0, method='Newton-CG', jac=rosen_der, hess=rosen_hess,",
461
+ " options={'xtol': 1e-8, 'disp': True})",
462
+ 'print(res.x)'],
463
+ },
464
+ {
465
+ 'name' : 'Newton-Conjugate-Gradient, Hessian product',
466
+ 'snippet' : [
467
+ 'def rosen(x):',
468
+ ' """The Rosenbrock function"""',
469
+ ' return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)',
470
+ 'def rosen_der(x):',
471
+ ' """Derivative of the Rosenbrock function"""',
472
+ ' xm = x[1:-1]',
473
+ ' xm_m1 = x[:-2]',
474
+ ' xm_p1 = x[2:]',
475
+ ' der = np.zeros_like(x)',
476
+ ' der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm)',
477
+ ' der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0])',
478
+ ' der[-1] = 200*(x[-1]-x[-2]**2)',
479
+ ' return der',
480
+ 'def rosen_hess_p(x,p):',
481
+ ' x = np.asarray(x)',
482
+ ' Hp = np.zeros_like(x)',
483
+ ' Hp[0] = (1200*x[0]**2 - 400*x[1] + 2)*p[0] - 400*x[0]*p[1]',
484
+ ' Hp[1:-1] = (-400*x[:-2]*p[:-2]+(202+1200*x[1:-1]**2-400*x[2:])*p[1:-1] ',
485
+ ' -400*x[1:-1]*p[2:])',
486
+ ' Hp[-1] = -400*x[-2]*p[-2] + 200*p[-1]',
487
+ ' return Hp',
488
+ 'x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])',
489
+ "res = optimize.minimize(rosen, x0, method='Newton-CG', jac=rosen_der, hessp=rosen_hess_p,",
490
+ " options={'xtol': 1e-8, 'disp': True})",
491
+ 'print(res.x)'],
492
+ },
493
+ ],
494
+ },
495
+ {
496
+ 'name' : 'Constrained multivariate minimization',
497
+ 'sub-menu' : [
498
+ {
499
+ 'name' : 'Unconstrained Sequential Least SQuares Programming (SLSQP)',
500
+ 'snippet' : [
501
+ 'def func(x, sign=1.0):',
502
+ ' """ Objective function """',
503
+ ' return sign*(2*x[0]*x[1] + 2*x[0] - x[0]**2 - 2*x[1]**2)',
504
+ 'def func_deriv(x, sign=1.0):',
505
+ ' """ Derivative of objective function """',
506
+ ' dfdx0 = sign*(-2*x[0] + 2*x[1] + 2)',
507
+ ' dfdx1 = sign*(2*x[0] - 4*x[1])',
508
+ ' return np.array([ dfdx0, dfdx1 ])',
509
+ "res = optimize.minimize(func, [-1.0,1.0], args=(-1.0,), jac=func_deriv,",
510
+ " method='SLSQP', options={'disp': True})",
511
+ 'print(res.x)',
512
+ ],
513
+ },
514
+ {
515
+ 'name' : 'Constrained Sequential Least SQuares Programming (SLSQP)',
516
+ 'snippet' : [
517
+ 'def func(x, sign=1.0):',
518
+ ' """ Objective function """',
519
+ ' return sign*(2*x[0]*x[1] + 2*x[0] - x[0]**2 - 2*x[1]**2)',
520
+ 'def func_deriv(x, sign=1.0):',
521
+ ' """ Derivative of objective function """',
522
+ ' dfdx0 = sign*(-2*x[0] + 2*x[1] + 2)',
523
+ ' dfdx1 = sign*(2*x[0] - 4*x[1])',
524
+ ' return np.array([ dfdx0, dfdx1 ])',
525
+ '# Constraints correspond to x**3-y=0 and y-1>=0, respectively',
526
+ "cons = ({'type': 'eq',",
527
+ " 'fun' : lambda x: np.array([x[0]**3 - x[1]]),",
528
+ " 'jac' : lambda x: np.array([3.0*(x[0]**2.0), -1.0])},",
529
+ " {'type': 'ineq',",
530
+ " 'fun' : lambda x: np.array([x[1] - 1]),",
531
+ " 'jac' : lambda x: np.array([0.0, 1.0])})",
532
+ "res = optimize.minimize(func, [-1.0,1.0], args=(-1.0,), jac=func_deriv,",
533
+ " constraints=cons, method='SLSQP', options={'disp': True})",
534
+ 'print(res.x)',
535
+ ],
536
+ },
537
+ ],
538
+ },
539
+ {
540
+ 'name' : 'Fitting (see also numpy.polynomial)',
541
+ 'sub-menu' : [
542
+ {
543
+ 'name' : 'Basic function fitting',
544
+ 'snippet' : [
545
+ 'def fitting_function(x, a, b, c):',
546
+ ' return a * np.exp(-b * x) + c',
547
+ 'xdata = np.linspace(0, 4, 50)',
548
+ 'ydata = fitting_function(xdata, 2.5, 1.3, 0.5) + 0.2 * np.random.normal(size=len(xdata))',
549
+ 'optimal_parameters, estimated_covariance = optimize.curve_fit(fitting_function, xdata, ydata)',
550
+ 'estimated_std_dev = np.sqrt(np.diag(estimated_covariance))',
551
+ ],
552
+ },
553
+ ],
554
+ },
555
+ ],
556
+ },
557
+
558
+ // {
559
+ // 'name' : 'Signal processing',
560
+ // 'sub-menu' : [
561
+ // {
562
+ // 'name' : 'Setup',
563
+ // 'snippet' : ['from scipy import signal',],
564
+ // },
565
+ // '---',
566
+ // ],
567
+ // },
568
+
569
+ // {
570
+ // 'name' : 'Sparse matrices and associated routines',
571
+ // 'sub-menu' : [
572
+ // {
573
+ // 'name' : 'Setup',
574
+ // 'snippet' : ['from scipy import sparse',],
575
+ // },
576
+ // '---',
577
+ // ],
578
+ // },
579
+
580
+ // {
581
+ // 'name' : 'Spatial data structures and algorithms',
582
+ // 'sub-menu' : [
583
+ // {
584
+ // 'name' : 'Setup',
585
+ // 'snippet' : ['from scipy import spatial',],
586
+ // },
587
+ // '---',
588
+ // ],
589
+ // },
590
+
591
+ scipy_special,
592
+
593
+ {
594
+ 'name' : 'Statistical distributions and functions',
595
+ 'sub-menu' : [
596
+ {
597
+ 'name' : 'Setup',
598
+ 'snippet' : ['from scipy import stats',],
599
+ },
600
+ '---',
601
+ {
602
+ 'name' : 'Docs',
603
+ 'external-link' : 'http://docs.scipy.org/doc/scipy-0.15.1/reference/stats.html'
604
+ },
605
+ ],
606
+ },
607
+
608
+ // {
609
+ // 'name' : 'C/C++ integration',
610
+ // 'sub-menu' : [
611
+ // {
612
+ // 'name' : 'Setup',
613
+ // 'snippet' : ['from scipy import weave',],
614
+ // },
615
+ // '---',
616
+ // ],
617
+ // },
618
+ ],
619
+ };
620
+ });
.local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/scipy_special.js ADDED
@@ -0,0 +1,2198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ define({
2
+ 'name' : 'Special functions',
3
+ 'sub-menu' : [
4
+ {
5
+ 'name' : 'Setup',
6
+ 'snippet' : ['from scipy import special',],
7
+ },
8
+ '---',
9
+
10
+ {
11
+ 'name' : 'Airy functions',
12
+ 'sub-menu' : [
13
+
14
+ {
15
+ 'name' : 'airy: Airy functions and their derivatives',
16
+ 'snippet' : [
17
+ 'special.airy(z)',
18
+ ],
19
+ },
20
+
21
+ {
22
+ 'name' : 'airye: Exponentially scaled Airy functions and their derivatives',
23
+ 'snippet' : [
24
+ 'special.airye(z)',
25
+ ],
26
+ },
27
+
28
+ {
29
+ 'name' : 'ai_zeros: Compute $n$ zeros $a$ and $a\'$ of $\\mathrm{Ai}(x)$ and $\\mathrm{Ai}\'(x)$, and $\\mathrm{Ai}(a\')$ and $\\mathrm{Ai}\'(a)$',
30
+ 'snippet' : [
31
+ 'special.ai_zeros(n)',
32
+ ],
33
+ },
34
+
35
+ {
36
+ 'name' : 'bi_zeros: Compute $n$ zeros $b$ and $b\'$ of $\\mathrm{Bi}(x)$ and $\\mathrm{Bi}\'(x)$, and $\\mathrm{Bi}(b\')$ and $\\mathrm{Bi}\'(b)$',
37
+ 'snippet' : [
38
+ 'special.bi_zeros(n)',
39
+ ],
40
+ },
41
+
42
+ ],
43
+ },
44
+
45
+ {
46
+ 'name' : 'Elliptic Functions',
47
+ 'sub-menu' : [
48
+
49
+ {
50
+ 'name' : 'ellipj: Jacobian elliptic functions',
51
+ 'snippet' : [
52
+ 'special.ellipj(u, m)',
53
+ ],
54
+ },
55
+
56
+ {
57
+ 'name' : 'ellipk: Computes the complete elliptic integral of the first kind',
58
+ 'snippet' : [
59
+ 'special.ellipk(m)',
60
+ ],
61
+ },
62
+
63
+ {
64
+ 'name' : 'ellipkm1: The complete elliptic integral of the first kind around m=1',
65
+ 'snippet' : [
66
+ 'special.ellipkm1(p)',
67
+ ],
68
+ },
69
+
70
+ {
71
+ 'name' : 'ellipkinc: Incomplete elliptic integral of the first kind',
72
+ 'snippet' : [
73
+ 'special.ellipkinc(phi, m)',
74
+ ],
75
+ },
76
+
77
+ {
78
+ 'name' : 'ellipe: Complete elliptic integral of the second kind',
79
+ 'snippet' : [
80
+ 'special.ellipe(m)',
81
+ ],
82
+ },
83
+
84
+ {
85
+ 'name' : 'ellipeinc: Incomplete elliptic integral of the second kind',
86
+ 'snippet' : [
87
+ 'special.ellipeinc(phi,m)',
88
+ ],
89
+ },
90
+
91
+ ],
92
+ },
93
+
94
+ {
95
+ 'name' : 'Bessel Functions',
96
+ 'sub-menu' : [
97
+
98
+ {
99
+ 'name' : 'Bessel Functions',
100
+ 'sub-menu' : [
101
+
102
+ {
103
+ 'name' : 'jv: Bessel function of the first kind of real order $v$, $J_v(z)$',
104
+ 'snippet' : [
105
+ 'special.jv(v, z)',
106
+ ],
107
+ },
108
+
109
+ {
110
+ 'name' : 'jve: Exponentially scaled Bessel function of the first kind of order $v$, $J_v(z)\\, e^{-|\\Im{z}|}$',
111
+ 'snippet' : [
112
+ 'special.jve(v, z)',
113
+ ],
114
+ },
115
+
116
+ {
117
+ 'name' : 'yn: Bessel function of the second kind of integer order $n$, $Y_n(x)$',
118
+ 'snippet' : [
119
+ 'special.yn(n,x)',
120
+ ],
121
+ },
122
+
123
+ {
124
+ 'name' : 'yv: Bessel function of the second kind of real order $v$, $Y_v(z)$',
125
+ 'snippet' : [
126
+ 'special.yv(v,z)',
127
+ ],
128
+ },
129
+
130
+ {
131
+ 'name' : 'yve: Exponentially scaled Bessel function of the second kind of real order, $Y_v(z)\\, e^{-|\\Im{z}|}$',
132
+ 'snippet' : [
133
+ 'special.yve(v,z)',
134
+ ],
135
+ },
136
+
137
+ {
138
+ 'name' : 'kn: Modified Bessel function of the second kind of integer order $n$, $K_n(x)$',
139
+ 'snippet' : [
140
+ 'special.kn(n, x)',
141
+ ],
142
+ },
143
+
144
+ {
145
+ 'name' : 'kv: Modified Bessel function of the second kind of real order $v$, $K_v(z)$',
146
+ 'snippet' : [
147
+ 'special.kv(v,z)',
148
+ ],
149
+ },
150
+
151
+ {
152
+ 'name' : 'kve: Exponentially scaled modified Bessel function of the second kind, $K_v(z)\\, e^{z}$',
153
+ 'snippet' : [
154
+ 'special.kve(v,z)',
155
+ ],
156
+ },
157
+
158
+ {
159
+ 'name' : 'iv: Modified Bessel function of the first kind of real order $v$, $I_v(z)$',
160
+ 'snippet' : [
161
+ 'special.iv(v,z)',
162
+ ],
163
+ },
164
+
165
+ {
166
+ 'name' : 'ive: Exponentially scaled modified Bessel function of the first kind of real order $v$, $I_v(z)\\, e^{-|\\Re{z}|}$',
167
+ 'snippet' : [
168
+ 'special.ive(v,z)',
169
+ ],
170
+ },
171
+
172
+ {
173
+ 'name' : 'hankel1: Hankel function of the first kind, $H^{(1)}_v(z)$',
174
+ 'snippet' : [
175
+ 'special.hankel1(v, z)',
176
+ ],
177
+ },
178
+
179
+ {
180
+ 'name' : 'hankel1e: Exponentially scaled Hankel function of the first kind, $H^{(1)}_v(z)\\, e^{-i\\, z}$',
181
+ 'snippet' : [
182
+ 'special.hankel1e(v, z)',
183
+ ],
184
+ },
185
+
186
+ {
187
+ 'name' : 'hankel2: Hankel function of the second kind, $H^{(2)}_v(z)$',
188
+ 'snippet' : [
189
+ 'special.hankel2(v, z)',
190
+ ],
191
+ },
192
+
193
+ {
194
+ 'name' : 'hankel2e: Exponentially scaled Hankel function of the second kind, $H^{(2)}_v(z)\\, e^{i\\, z}$',
195
+ 'snippet' : [
196
+ 'special.hankel2e(v, z)',
197
+ ],
198
+ },
199
+
200
+ // The following is not an universal function:
201
+
202
+ {
203
+ 'name' : 'lmbda: Compute sequence of lambda functions with arbitrary order $v$ and their derivatives',
204
+ 'snippet' : [
205
+ 'special.lmbda(v, x)',
206
+ ],
207
+ },
208
+
209
+ ],
210
+ },
211
+
212
+ {
213
+ 'name' : 'Zeros of Bessel Functions',
214
+ 'sub-menu' : [
215
+
216
+ // These are not universal functions:
217
+
218
+ {
219
+ 'name' : 'jnjnp_zeros: Compute nt (<=1200) zeros of the Bessel functions $J_n$ and $J_n\'$ and arange them in order of their magnitudes',
220
+ 'snippet' : [
221
+ 'special.jnjnp_zeros(nt)',
222
+ ],
223
+ },
224
+
225
+ {
226
+ 'name' : 'jnyn_zeros: Compute nt zeros of the Bessel functions $J_n(x)$, $J_n\'(x)$, $Y_n(x)$, and $Y_n\'(x)$, respectively',
227
+ 'snippet' : [
228
+ 'special.jnyn_zeros(n, nt)',
229
+ ],
230
+ },
231
+
232
+ {
233
+ 'name' : 'jn_zeros: Compute nt zeros of the Bessel function $J_n(x)$',
234
+ 'snippet' : [
235
+ 'special.jn_zeros(n, nt)',
236
+ ],
237
+ },
238
+
239
+ {
240
+ 'name' : 'jnp_zeros: Compute nt zeros of the Bessel function $J_n\'(x)$',
241
+ 'snippet' : [
242
+ 'special.jnp_zeros(n, nt)',
243
+ ],
244
+ },
245
+
246
+ {
247
+ 'name' : 'yn_zeros: Compute nt zeros of the Bessel function $Y_n(x)$',
248
+ 'snippet' : [
249
+ 'special.yn_zeros(n, nt)',
250
+ ],
251
+ },
252
+
253
+ {
254
+ 'name' : 'ynp_zeros: Compute nt zeros of the Bessel function $Y_n\'(x)$',
255
+ 'snippet' : [
256
+ 'special.ynp_zeros(n, nt)',
257
+ ],
258
+ },
259
+
260
+ {
261
+ 'name' : 'y0_zeros: Returns nt (complex or real) zeros of $Y_0(z)$, $z_0$, and the value of $Y_0\'(z_0) = -Y_1(z_0)$ at each zero',
262
+ 'snippet' : [
263
+ 'special.y0_zeros(nt, complex=0)',
264
+ ],
265
+ },
266
+
267
+ {
268
+ 'name' : 'y1_zeros: Returns nt (complex or real) zeros of $Y_1(z)$, $z_1$, and the value of $Y_1\'(z_1) = Y_0(z_1)$ at each zero',
269
+ 'snippet' : [
270
+ 'special.y1_zeros(nt, complex=0)',
271
+ ],
272
+ },
273
+
274
+ {
275
+ 'name' : 'y1p_zeros: Returns nt (complex or real) zeros of $Y_1\'(z)$, $z_1\'$, and the value of $Y_1(z_1\')$ at each zero',
276
+ 'snippet' : [
277
+ 'special.y1p_zeros(nt, complex=0)',
278
+ ],
279
+ },
280
+
281
+ ],
282
+ },
283
+
284
+ {
285
+ 'name' : 'Faster versions of common Bessel Functions',
286
+ 'sub-menu' : [
287
+
288
+ {
289
+ 'name' : 'j0: Bessel function the first kind of order 0, $J_0(x)$',
290
+ 'snippet' : [
291
+ 'special.j0(x)',
292
+ ],
293
+ },
294
+
295
+ {
296
+ 'name' : 'j1: Bessel function of the first kind of order 1, $J_1(x)$',
297
+ 'snippet' : [
298
+ 'special.j1(x)',
299
+ ],
300
+ },
301
+
302
+ {
303
+ 'name' : 'y0: Bessel function of the second kind of order 0, $Y_0(x)$',
304
+ 'snippet' : [
305
+ 'special.y0(x)',
306
+ ],
307
+ },
308
+
309
+ {
310
+ 'name' : 'y1: Bessel function of the second kind of order 1, $Y_1(x)$',
311
+ 'snippet' : [
312
+ 'special.y1(x)',
313
+ ],
314
+ },
315
+
316
+ {
317
+ 'name' : 'i0: Modified Bessel function of order 0, $I_0(x)$',
318
+ 'snippet' : [
319
+ 'special.i0(x)',
320
+ ],
321
+ },
322
+
323
+ {
324
+ 'name' : 'i0e: Exponentially scaled modified Bessel function of order 0, $I_0(x)\\, e^{-|x|}$',
325
+ 'snippet' : [
326
+ 'special.i0e(x)',
327
+ ],
328
+ },
329
+
330
+ {
331
+ 'name' : 'i1: Modified Bessel function of order 1, $I_1(x)$',
332
+ 'snippet' : [
333
+ 'special.i1(x)',
334
+ ],
335
+ },
336
+
337
+ {
338
+ 'name' : 'i1e: Exponentially scaled modified Bessel function of order 1, $I_1(x)\\, e^{-|x|}$',
339
+ 'snippet' : [
340
+ 'special.i1e(x)',
341
+ ],
342
+ },
343
+
344
+ {
345
+ 'name' : 'k0: Modified Bessel function K of order 0, $K_0(x)$',
346
+ 'snippet' : [
347
+ 'special.k0(x)',
348
+ ],
349
+ },
350
+
351
+ {
352
+ 'name' : 'k0e: Exponentially scaled modified Bessel function K of order 0, $K_0(x)\\, e^{x}$',
353
+ 'snippet' : [
354
+ 'special.k0e(x)',
355
+ ],
356
+ },
357
+
358
+ {
359
+ 'name' : 'k1: Modified Bessel function of the first kind of order 1, $K_1(x)$',
360
+ 'snippet' : [
361
+ 'special.k1(x)',
362
+ ],
363
+ },
364
+
365
+ {
366
+ 'name' : 'k1e: Exponentially scaled modified Bessel function K of order 1, $K_1(x)\\, e^{x}$',
367
+ 'snippet' : [
368
+ 'special.k1e(x)',
369
+ ],
370
+ },
371
+
372
+ ],
373
+ },
374
+
375
+ {
376
+ 'name' : 'Integrals of Bessel Functions',
377
+ 'sub-menu' : [
378
+
379
+ {
380
+ 'name' : 'itj0y0: Integrals of Bessel functions of order 0: $\\int_0^x J_0(t)\\, dt$, $\\int_0^x Y_0(t)\\, dt$',
381
+ 'snippet' : [
382
+ 'special.itj0y0(x)',
383
+ ],
384
+ },
385
+
386
+ {
387
+ 'name' : 'it2j0y0: Integrals related to Bessel functions of order 0: $\\int_0^x \\frac{1-J_0(t)}{t}\\, dt$, $\\int_x^\\infty \\frac{Y_0(t)}{t}\\, dt$',
388
+ 'snippet' : [
389
+ 'special.it2j0y0(x)',
390
+ ],
391
+ },
392
+
393
+ {
394
+ 'name' : 'iti0k0: Integrals of modified Bessel functions of order 0: $\\int_0^x I_0(t)\\, dt$, $\\int_0^x K_0(t)\\, dt$',
395
+ 'snippet' : [
396
+ 'special.iti0k0(x)',
397
+ ],
398
+ },
399
+
400
+ {
401
+ 'name' : 'it2i0k0: Integrals related to modified Bessel functions of order 0: $\\int_0^x \\frac{I_0(t)-1}{t}\\, dt$, $\\int_x^\\infty \\frac{K_0(t)}{t}\\, dt$',
402
+ 'snippet' : [
403
+ 'special.it2i0k0(x)',
404
+ ],
405
+ },
406
+
407
+ {
408
+ 'name' : 'besselpoly: Weighted integral of a Bessel function, $\\int_0^1 x^\\lambda J_\\nu(2 a x) \\, dx$',
409
+ 'snippet' : [
410
+ 'special.besselpoly(a, lmb, nu)',
411
+ ],
412
+ },
413
+
414
+ ],
415
+ },
416
+
417
+ {
418
+ 'name' : 'Derivatives of Bessel Functions',
419
+ 'sub-menu' : [
420
+
421
+ {
422
+ 'name' : 'jvp: Return the $n$th derivative of $J_v(z)$ with respect to $z$',
423
+ 'snippet' : [
424
+ 'special.jvp(v, z, n=1)',
425
+ ],
426
+ },
427
+
428
+ {
429
+ 'name' : 'yvp: Return the $n$th derivative of $Y_v(z)$ with respect to $z$',
430
+ 'snippet' : [
431
+ 'special.yvp(v, z, n=1)',
432
+ ],
433
+ },
434
+
435
+ {
436
+ 'name' : 'kvp: Return the $n$th derivative of $K_v(z)$ with respect to $z$',
437
+ 'snippet' : [
438
+ 'special.kvp(v, z, n=1)',
439
+ ],
440
+ },
441
+
442
+ {
443
+ 'name' : 'ivp: Return the $n$th derivative of $I_v(z)$ with respect to $z$',
444
+ 'snippet' : [
445
+ 'special.ivp(v, z, n=1)',
446
+ ],
447
+ },
448
+
449
+ {
450
+ 'name' : 'h1vp: Return the $n$th derivative of $H^{(1)}_v(z)$ with respect to $z$',
451
+ 'snippet' : [
452
+ 'special.h1vp(v, z, n=1)',
453
+ ],
454
+ },
455
+
456
+ {
457
+ 'name' : 'h2vp: Return the $n$th derivative of $H^{(2)}_v(z)$ with respect to z',
458
+ 'snippet' : [
459
+ 'special.h2vp(v, z, n=1)',
460
+ ],
461
+ },
462
+
463
+ ],
464
+ },
465
+
466
+ {
467
+ 'name' : 'Spherical Bessel Functions',
468
+ 'sub-menu' : [
469
+
470
+ // These are not universal functions:
471
+
472
+ {
473
+ 'name' : 'sph_jn: Compute the spherical Bessel function $j_n(z)$ and its derivative for all orders up to and including $n$',
474
+ 'snippet' : [
475
+ 'special.sph_jn(n, z)',
476
+ ],
477
+ },
478
+
479
+ {
480
+ 'name' : 'sph_yn: Compute the spherical Bessel function $y_n(z)$ and its derivative for all orders up to and including $n$',
481
+ 'snippet' : [
482
+ 'special.sph_yn(n, z)',
483
+ ],
484
+ },
485
+
486
+ {
487
+ 'name' : 'sph_jnyn: Compute the spherical Bessel functions, $j_n(z)$ and $y_n(z)$ and their derivatives for all orders up to and including $n$',
488
+ 'snippet' : [
489
+ 'special.sph_jnyn(n, z)',
490
+ ],
491
+ },
492
+
493
+ {
494
+ 'name' : 'sph_in: Compute the spherical Bessel function $i_n(z)$ and its derivative for all orders up to and including $n$',
495
+ 'snippet' : [
496
+ 'special.sph_in(n, z)',
497
+ ],
498
+ },
499
+
500
+ {
501
+ 'name' : 'sph_kn: Compute the spherical Bessel function $k_n(z)$ and its derivative for all orders up to and including $n$',
502
+ 'snippet' : [
503
+ 'special.sph_kn(n, z)',
504
+ ],
505
+ },
506
+
507
+ {
508
+ 'name' : 'sph_inkn: Compute the spherical Bessel functions, $i_n(z)$ and $k_n(z)$ and their derivatives for all orders up to and including $n$',
509
+ 'snippet' : [
510
+ 'special.sph_inkn(n, z)',
511
+ ],
512
+ },
513
+
514
+ ],
515
+ },
516
+
517
+ {
518
+ 'name' : 'Riccati-Bessel Functions',
519
+ 'sub-menu' : [
520
+
521
+ // These are not universal functions:
522
+
523
+ {
524
+ 'name' : 'riccati_jn: Compute the Ricatti-Bessel function of the first kind and its derivative for all orders up to and including n',
525
+ 'snippet' : [
526
+ 'special.riccati_jn(n, x)',
527
+ ],
528
+ },
529
+
530
+ {
531
+ 'name' : 'riccati_yn: Compute the Ricatti-Bessel function of the second kind and its derivative for all orders up to and including n',
532
+ 'snippet' : [
533
+ 'special.riccati_yn(n, x)',
534
+ ],
535
+ },
536
+
537
+ ],
538
+ },
539
+ ],
540
+ },
541
+
542
+ {
543
+ 'name' : 'Struve Functions',
544
+ 'sub-menu' : [
545
+
546
+ {
547
+ 'name' : 'struve: Struve function',
548
+ 'snippet' : [
549
+ 'special.struve(v,x)',
550
+ ],
551
+ },
552
+
553
+ {
554
+ 'name' : 'modstruve: Modified Struve function',
555
+ 'snippet' : [
556
+ 'special.modstruve(v, x)',
557
+ ],
558
+ },
559
+
560
+ {
561
+ 'name' : 'itstruve0: Integral of the Struve function of order 0',
562
+ 'snippet' : [
563
+ 'special.itstruve0(x)',
564
+ ],
565
+ },
566
+
567
+ {
568
+ 'name' : 'it2struve0: Integral related to Struve function of order 0',
569
+ 'snippet' : [
570
+ 'special.it2struve0(x)',
571
+ ],
572
+ },
573
+
574
+ {
575
+ 'name' : 'itmodstruve0: Integral of the modified Struve function of order 0',
576
+ 'snippet' : [
577
+ 'special.itmodstruve0(x)',
578
+ ],
579
+ },
580
+
581
+ ],
582
+ },
583
+
584
+ {
585
+ 'name' : 'Statistical Functions (see also scipy.stats)',
586
+ 'sub-menu' : [
587
+
588
+ // See also
589
+ // scipy.stats: Friendly versions of these functions.
590
+
591
+ {
592
+ 'name' : 'bdtr: Binomial distribution cumulative distribution function',
593
+ 'snippet' : [
594
+ 'special.bdtr(k, n, p)',
595
+ ],
596
+ },
597
+
598
+ {
599
+ 'name' : 'bdtrc: Binomial distribution survival function',
600
+ 'snippet' : [
601
+ 'special.bdtrc(k, n, p)',
602
+ ],
603
+ },
604
+
605
+ {
606
+ 'name' : 'bdtri: Inverse function to bdtr vs',
607
+ 'snippet' : [
608
+ 'special.bdtri(k, n, y)',
609
+ ],
610
+ },
611
+
612
+ {
613
+ 'name' : 'btdtr: Cumulative beta distribution',
614
+ 'snippet' : [
615
+ 'special.btdtr(a,b,x)',
616
+ ],
617
+ },
618
+
619
+ {
620
+ 'name' : 'btdtri: p-th quantile of the beta distribution',
621
+ 'snippet' : [
622
+ 'special.btdtri(a,b,p)',
623
+ ],
624
+ },
625
+
626
+ {
627
+ 'name' : 'fdtr: F cumulative distribution function',
628
+ 'snippet' : [
629
+ 'special.fdtr(dfn, dfd, x)',
630
+ ],
631
+ },
632
+
633
+ {
634
+ 'name' : 'fdtrc: F survival function',
635
+ 'snippet' : [
636
+ 'special.fdtrc(dfn, dfd, x)',
637
+ ],
638
+ },
639
+
640
+ {
641
+ 'name' : 'fdtri: Inverse to fdtr vs x',
642
+ 'snippet' : [
643
+ 'special.fdtri(dfn, dfd, p)',
644
+ ],
645
+ },
646
+
647
+ {
648
+ 'name' : 'gdtr: Gamma distribution cumulative density function',
649
+ 'snippet' : [
650
+ 'special.gdtr(a,b,x)',
651
+ ],
652
+ },
653
+
654
+ {
655
+ 'name' : 'gdtrc: Gamma distribution survival function',
656
+ 'snippet' : [
657
+ 'special.gdtrc(a,b,x)',
658
+ ],
659
+ },
660
+
661
+ {
662
+ 'name' : 'gdtria: Inverse of gdtr vs a',
663
+ 'snippet' : [
664
+ 'special.gdtria(p, b, x)',
665
+ ],
666
+ },
667
+
668
+ {
669
+ 'name' : 'gdtrib: Inverse of gdtr vs b',
670
+ 'snippet' : [
671
+ 'special.gdtrib(a, p, x)',
672
+ ],
673
+ },
674
+
675
+ {
676
+ 'name' : 'gdtrix: Inverse of gdtr vs x',
677
+ 'snippet' : [
678
+ 'special.gdtrix(a, b, p)',
679
+ ],
680
+ },
681
+
682
+ {
683
+ 'name' : 'nbdtr: Negative binomial cumulative distribution function',
684
+ 'snippet' : [
685
+ 'special.nbdtr(k, n, p)',
686
+ ],
687
+ },
688
+
689
+ {
690
+ 'name' : 'nbdtrc: Negative binomial survival function',
691
+ 'snippet' : [
692
+ 'special.nbdtrc(k,n,p)',
693
+ ],
694
+ },
695
+
696
+ {
697
+ 'name' : 'nbdtri: Inverse of nbdtr vs p',
698
+ 'snippet' : [
699
+ 'special.nbdtri(k, n, y)',
700
+ ],
701
+ },
702
+
703
+ {
704
+ 'name' : 'ncfdtr: Cumulative distribution function of the non-central $F$ distribution.',
705
+ 'snippet' : [
706
+ 'special.ncfdtr(dfn, dfd, nc, f)',
707
+ ],
708
+ },
709
+
710
+ {
711
+ 'name' : 'ncfdtridfd: Calculate degrees of freedom (denominator) for the noncentral $F$ distribution.',
712
+ 'snippet' : [
713
+ 'special.ncfdtridfd(p, f, dfn, nc)',
714
+ ],
715
+ },
716
+
717
+ {
718
+ 'name' : 'ncfdtridfn: Calculate degrees of freedom (numerator) for the noncentral $F$ distribution.',
719
+ 'snippet' : [
720
+ 'special.ncfdtridfn(p, f, dfd, nc)',
721
+ ],
722
+ },
723
+
724
+ {
725
+ 'name' : 'ncfdtri: Inverse cumulative distribution function of the non-central $F$ distribution.',
726
+ 'snippet' : [
727
+ 'special.ncfdtri(p, dfn, dfd, nc)',
728
+ ],
729
+ },
730
+
731
+ {
732
+ 'name' : 'ncfdtrinc: Calculate non-centrality parameter for non-central $F$ distribution.',
733
+ 'snippet' : [
734
+ 'special.ncfdtrinc(p, f, dfn, dfd)',
735
+ ],
736
+ },
737
+
738
+ {
739
+ 'name' : 'nctdtr: Cumulative distribution function of the non-central $t$ distribution.',
740
+ 'snippet' : [
741
+ 'special.nctdtr(df, nc, t)',
742
+ ],
743
+ },
744
+
745
+ {
746
+ 'name' : 'nctdtridf: Calculate degrees of freedom for non-central $t$ distribution.',
747
+ 'snippet' : [
748
+ 'special.nctdtridf(p, nc, t)',
749
+ ],
750
+ },
751
+
752
+ {
753
+ 'name' : 'nctdtrit: Inverse cumulative distribution function of the non-central $t$ distribution.',
754
+ 'snippet' : [
755
+ 'special.nctdtrit(df, nc, p)',
756
+ ],
757
+ },
758
+
759
+ {
760
+ 'name' : 'nctdtrinc: Calculate non-centrality parameter for non-central $t$ distribution.',
761
+ 'snippet' : [
762
+ 'special.nctdtrinc(df, p, t)',
763
+ ],
764
+ },
765
+
766
+ {
767
+ 'name' : 'nrdtrimn: Calculate mean of normal distribution given other params.',
768
+ 'snippet' : [
769
+ 'special.nrdtrimn(p, x, std)',
770
+ ],
771
+ },
772
+
773
+ {
774
+ 'name' : 'nrdtrisd: Calculate standard deviation of normal distribution given other params.',
775
+ 'snippet' : [
776
+ 'special.nrdtrisd(p, x, mn)',
777
+ ],
778
+ },
779
+
780
+ {
781
+ 'name' : 'pdtr: Poisson cumulative distribution function',
782
+ 'snippet' : [
783
+ 'special.pdtr(k, m)',
784
+ ],
785
+ },
786
+
787
+ {
788
+ 'name' : 'pdtrc: Poisson survival function',
789
+ 'snippet' : [
790
+ 'special.pdtrc(k, m)',
791
+ ],
792
+ },
793
+
794
+ {
795
+ 'name' : 'pdtri: Inverse to pdtr vs m',
796
+ 'snippet' : [
797
+ 'special.pdtri(k,y)',
798
+ ],
799
+ },
800
+
801
+ {
802
+ 'name' : 'stdtr: Student $t$ distribution cumulative density function',
803
+ 'snippet' : [
804
+ 'special.stdtr(df,t)',
805
+ ],
806
+ },
807
+
808
+ {
809
+ 'name' : 'stdtridf: Inverse of stdtr vs df',
810
+ 'snippet' : [
811
+ 'special.stdtridf(p,t)',
812
+ ],
813
+ },
814
+
815
+ {
816
+ 'name' : 'stdtrit: Inverse of stdtr vs t',
817
+ 'snippet' : [
818
+ 'special.stdtrit(df,p)',
819
+ ],
820
+ },
821
+
822
+ {
823
+ 'name' : 'chdtr: Chi square cumulative distribution function',
824
+ 'snippet' : [
825
+ 'special.chdtr(v, x)',
826
+ ],
827
+ },
828
+
829
+ {
830
+ 'name' : 'chdtrc: Chi square survival function',
831
+ 'snippet' : [
832
+ 'special.chdtrc(v,x)',
833
+ ],
834
+ },
835
+
836
+ {
837
+ 'name' : 'chdtri: Inverse to chdtrc',
838
+ 'snippet' : [
839
+ 'special.chdtri(v,p)',
840
+ ],
841
+ },
842
+
843
+ {
844
+ 'name' : 'ndtr: Gaussian cumulative distribution function',
845
+ 'snippet' : [
846
+ 'special.ndtr(x)',
847
+ ],
848
+ },
849
+
850
+ {
851
+ 'name' : 'ndtri: Inverse of ndtr vs x',
852
+ 'snippet' : [
853
+ 'special.ndtri(y)',
854
+ ],
855
+ },
856
+
857
+ {
858
+ 'name' : 'smirnov: Kolmogorov-Smirnov complementary cumulative distribution function',
859
+ 'snippet' : [
860
+ 'special.smirnov(n,e)',
861
+ ],
862
+ },
863
+
864
+ {
865
+ 'name' : 'smirnovi: Inverse to smirnov',
866
+ 'snippet' : [
867
+ 'special.smirnovi(n,y)',
868
+ ],
869
+ },
870
+
871
+ {
872
+ 'name' : 'kolmogorov: Complementary cumulative distribution function of Kolmogorov distribution',
873
+ 'snippet' : [
874
+ 'special.kolmogorov(y)',
875
+ ],
876
+ },
877
+
878
+ {
879
+ 'name' : 'kolmogi: Inverse function to kolmogorov',
880
+ 'snippet' : [
881
+ 'special.kolmogi(p)',
882
+ ],
883
+ },
884
+
885
+ {
886
+ 'name' : 'tklmbda: Tukey-Lambda cumulative distribution function',
887
+ 'snippet' : [
888
+ 'special.tklmbda(x, lmbda)',
889
+ ],
890
+ },
891
+
892
+ {
893
+ 'name' : 'logit: Logit ufunc for ndarrays',
894
+ 'snippet' : [
895
+ 'special.logit(x)',
896
+ ],
897
+ },
898
+
899
+ {
900
+ 'name' : 'expit: Expit ufunc for ndarrays',
901
+ 'snippet' : [
902
+ 'special.expit(x)',
903
+ ],
904
+ },
905
+
906
+ {
907
+ 'name' : 'boxcox: Compute the Box-Cox transformation',
908
+ 'snippet' : [
909
+ 'special.boxcox(x, lmbda)',
910
+ ],
911
+ },
912
+
913
+ {
914
+ 'name' : 'boxcox1p: Compute the Box-Cox transformation of 1 + x',
915
+ 'snippet' : [
916
+ 'special.boxcox1p(x, lmbda)',
917
+ ],
918
+ },
919
+
920
+ ],
921
+ },
922
+
923
+ {
924
+ 'name' : 'Information Theory Functions',
925
+ 'sub-menu' : [
926
+ {
927
+ 'name' : 'entr: Elementwise function for computing entropy.',
928
+ 'snippet' : [
929
+ 'special.entr(x)',
930
+ ],
931
+ },
932
+
933
+ {
934
+ 'name' : 'rel_entr: Elementwise function for computing relative entropy.',
935
+ 'snippet' : [
936
+ 'special.rel_entr(x, y)',
937
+ ],
938
+ },
939
+
940
+ {
941
+ 'name' : 'kl_div: Elementwise function for computing Kullback-Leibler divergence.',
942
+ 'snippet' : [
943
+ 'special.kl_div(x, y)',
944
+ ],
945
+ },
946
+
947
+ {
948
+ 'name' : 'huber: Huber loss function.',
949
+ 'snippet' : [
950
+ 'special.huber(delta, r)',
951
+ ],
952
+ },
953
+
954
+ {
955
+ 'name' : 'pseudo_huber: Pseudo-Huber loss function.',
956
+ 'snippet' : [
957
+ 'special.pseudo_huber(delta, r)',
958
+ ],
959
+ },
960
+ ],
961
+ },
962
+
963
+ {
964
+ 'name' : 'Gamma and Related Functions',
965
+ 'sub-menu' : [
966
+
967
+ {
968
+ 'name' : 'gamma: Gamma function',
969
+ 'snippet' : [
970
+ 'special.gamma(z)',
971
+ ],
972
+ },
973
+
974
+ {
975
+ 'name' : 'gammaln: Logarithm of absolute value of gamma function',
976
+ 'snippet' : [
977
+ 'special.gammaln(z)',
978
+ ],
979
+ },
980
+
981
+ {
982
+ 'name' : 'gammasgn: Sign of the gamma function',
983
+ 'snippet' : [
984
+ 'special.gammasgn(x)',
985
+ ],
986
+ },
987
+
988
+ {
989
+ 'name' : 'gammainc: Incomplete gamma function',
990
+ 'snippet' : [
991
+ 'special.gammainc(a, x)',
992
+ ],
993
+ },
994
+
995
+ {
996
+ 'name' : 'gammaincinv: Inverse to gammainc',
997
+ 'snippet' : [
998
+ 'special.gammaincinv(a, y)',
999
+ ],
1000
+ },
1001
+
1002
+ {
1003
+ 'name' : 'gammaincc: Complemented incomplete gamma integral',
1004
+ 'snippet' : [
1005
+ 'special.gammaincc(a,x)',
1006
+ ],
1007
+ },
1008
+
1009
+ {
1010
+ 'name' : 'gammainccinv: Inverse to gammaincc',
1011
+ 'snippet' : [
1012
+ 'special.gammainccinv(a,y)',
1013
+ ],
1014
+ },
1015
+
1016
+ {
1017
+ 'name' : 'beta: Beta function',
1018
+ 'snippet' : [
1019
+ 'special.beta(a, b)',
1020
+ ],
1021
+ },
1022
+
1023
+ {
1024
+ 'name' : 'betaln: Natural logarithm of absolute value of beta function',
1025
+ 'snippet' : [
1026
+ 'special.betaln(a, b)',
1027
+ ],
1028
+ },
1029
+
1030
+ {
1031
+ 'name' : 'betainc: Incomplete beta integral',
1032
+ 'snippet' : [
1033
+ 'special.betainc(a, b, x)',
1034
+ ],
1035
+ },
1036
+
1037
+ {
1038
+ 'name' : 'betaincinv: Inverse function to beta integral',
1039
+ 'snippet' : [
1040
+ 'special.betaincinv(a, b, y)',
1041
+ ],
1042
+ },
1043
+
1044
+ {
1045
+ 'name' : 'psi: Digamma function',
1046
+ 'snippet' : [
1047
+ 'special.psi(z)',
1048
+ ],
1049
+ },
1050
+
1051
+ {
1052
+ 'name' : 'rgamma: Gamma function inverted',
1053
+ 'snippet' : [
1054
+ 'special.rgamma(z)',
1055
+ ],
1056
+ },
1057
+
1058
+ {
1059
+ 'name' : 'polygamma: Polygamma function which is the $n$th derivative of the digamma (psi) function',
1060
+ 'snippet' : [
1061
+ 'special.polygamma(n, x)',
1062
+ ],
1063
+ },
1064
+
1065
+ {
1066
+ 'name' : 'multigammaln: Returns the log of multivariate gamma, also sometimes called the generalized gamma',
1067
+ 'snippet' : [
1068
+ 'special.multigammaln(a, d)',
1069
+ ],
1070
+ },
1071
+
1072
+ {
1073
+ 'name' : 'digamma: Digamma function',
1074
+ 'snippet' : [
1075
+ 'special.digamma(z)',
1076
+ ],
1077
+ },
1078
+ ],
1079
+ },
1080
+
1081
+ {
1082
+ 'name' : 'Error Function and Fresnel Integrals',
1083
+ 'sub-menu' : [
1084
+
1085
+ {
1086
+ 'name' : 'erf: Returns the error function of complex argument',
1087
+ 'snippet' : [
1088
+ 'special.erf(z)',
1089
+ ],
1090
+ },
1091
+
1092
+ {
1093
+ 'name' : 'erfc: Complementary error function, $1 - \\mathrm{erf}(x)$',
1094
+ 'snippet' : [
1095
+ 'special.erfc(x)',
1096
+ ],
1097
+ },
1098
+
1099
+ {
1100
+ 'name' : 'erfcx: Scaled complementary error function, $\\exp(x^2)\\, \\mathrm{erfc}(x)$',
1101
+ 'snippet' : [
1102
+ 'special.erfcx(x)',
1103
+ ],
1104
+ },
1105
+
1106
+ {
1107
+ 'name' : 'erfi: Imaginary error function, $-i\\, \\mathrm{erf}(i\\, z)$',
1108
+ 'snippet' : [
1109
+ 'special.erfi(z)',
1110
+ ],
1111
+ },
1112
+
1113
+ {
1114
+ 'name' : 'erfinv: Inverse function for erf',
1115
+ 'snippet' : [
1116
+ 'special.erfinv(y)',
1117
+ ],
1118
+ },
1119
+
1120
+ {
1121
+ 'name' : 'erfcinv: Inverse function for erfc',
1122
+ 'snippet' : [
1123
+ 'special.erfcinv(y)',
1124
+ ],
1125
+ },
1126
+
1127
+ {
1128
+ 'name' : 'wofz: Faddeeva function',
1129
+ 'snippet' : [
1130
+ 'special.wofz(z)',
1131
+ ],
1132
+ },
1133
+
1134
+ {
1135
+ 'name' : 'dawsn: Dawson’s integral',
1136
+ 'snippet' : [
1137
+ 'special.dawsn(x)',
1138
+ ],
1139
+ },
1140
+
1141
+ {
1142
+ 'name' : 'fresnel: Fresnel sin and cos integrals',
1143
+ 'snippet' : [
1144
+ 'special.fresnel(z)',
1145
+ ],
1146
+ },
1147
+
1148
+ {
1149
+ 'name' : 'fresnel_zeros: Compute nt complex zeros of the sine and cosine Fresnel integrals S(z) and C(z)',
1150
+ 'snippet' : [
1151
+ 'special.fresnel_zeros(nt)',
1152
+ ],
1153
+ },
1154
+
1155
+ {
1156
+ 'name' : 'modfresnelp: Modified Fresnel positive integrals',
1157
+ 'snippet' : [
1158
+ 'special.modfresnelp(x)',
1159
+ ],
1160
+ },
1161
+
1162
+ {
1163
+ 'name' : 'modfresnelm: Modified Fresnel negative integrals',
1164
+ 'snippet' : [
1165
+ 'special.modfresnelm(x)',
1166
+ ],
1167
+ },
1168
+
1169
+ // These are not universal functions:
1170
+
1171
+ {
1172
+ 'name' : 'erf_zeros: Compute nt complex zeros of the error function erf(z)',
1173
+ 'snippet' : [
1174
+ 'special.erf_zeros(nt)',
1175
+ ],
1176
+ },
1177
+
1178
+ {
1179
+ 'name' : 'fresnelc_zeros: Compute nt complex zeros of the cosine Fresnel integral C(z)',
1180
+ 'snippet' : [
1181
+ 'special.fresnelc_zeros(nt)',
1182
+ ],
1183
+ },
1184
+
1185
+ {
1186
+ 'name' : 'fresnels_zeros: Compute nt complex zeros of the sine Fresnel integral S(z)',
1187
+ 'snippet' : [
1188
+ 'special.fresnels_zeros(nt)',
1189
+ ],
1190
+ },
1191
+
1192
+ ],
1193
+ },
1194
+
1195
+ {
1196
+ 'name' : 'Legendre Functions',
1197
+ 'sub-menu' : [
1198
+
1199
+ {
1200
+ 'name' : 'lpmv: Associated legendre function of integer order',
1201
+ 'snippet' : [
1202
+ 'special.lpmv(m, v, x)',
1203
+ ],
1204
+ },
1205
+
1206
+ {
1207
+ 'name' : 'sph_harm: Spherical harmonic of degree $n \\geq 0$ and order $|m| \\leq n$',
1208
+ 'snippet' : [
1209
+ '# Note: n >= 0 and |m| <= n; azimuthal angle in [0, 2pi) and polar in [0, pi]',
1210
+ 'special.sph_harm(order_m, degree_n, azimuthal_angle, polar_angle)',
1211
+ ],
1212
+ },
1213
+
1214
+ // These are not universal functions:
1215
+
1216
+ {
1217
+ 'name' : 'clpmn: Associated Legendre function of the first kind, $P_{m,n}(z)$',
1218
+ 'snippet' : [
1219
+ 'special.clpmn(m, n, z[, type])',
1220
+ ],
1221
+ },
1222
+
1223
+ {
1224
+ 'name' : 'lpn: Compute sequence of Legendre functions of the first kind (polynomials), $P_n(z)$ and derivatives for all degrees from 0 to $n$ (inclusive)',
1225
+ 'snippet' : [
1226
+ 'special.lpn(n, z)',
1227
+ ],
1228
+ },
1229
+
1230
+ {
1231
+ 'name' : 'lqn: Compute sequence of Legendre functions of the second kind, $Q_n(z)$ and derivatives for all degrees from 0 to $n$ (inclusive)',
1232
+ 'snippet' : [
1233
+ 'special.lqn(n, z)',
1234
+ ],
1235
+ },
1236
+
1237
+ {
1238
+ 'name' : 'lpmn: Associated Legendre function of the first kind, $P_{m,n}(z)$',
1239
+ 'snippet' : [
1240
+ 'special.lpmn(m, n, z)',
1241
+ ],
1242
+ },
1243
+
1244
+ {
1245
+ 'name' : 'lqmn: Associated Legendre functions of the second kind, $Q_{m,n}(z)$ and its derivative, $Q_{m,n}\'(z)$ of order $m$ and degree $n$',
1246
+ 'snippet' : [
1247
+ 'special.lqmn(m, n, z)',
1248
+ ],
1249
+ },
1250
+
1251
+ ],
1252
+ },
1253
+
1254
+ {
1255
+ 'name' : 'Ellipsoidal Harmonics',
1256
+ 'sub-menu' : [
1257
+ {
1258
+ 'name' : 'ellip_harm: Ellipsoidal harmonic functions $E^p_n(l)$',
1259
+ 'snippet' : [
1260
+ 'special.ellip_harm(h2, k2, n, p, s[, signm, signn])',
1261
+ ],
1262
+ },
1263
+
1264
+ {
1265
+ 'name' : 'ellip_harm_2: Ellipsoidal harmonic functions $F^p_n(l)$',
1266
+ 'snippet' : [
1267
+ 'special.ellip_harm_2(h2, k2, n, p, s)',
1268
+ ],
1269
+ },
1270
+
1271
+ {
1272
+ 'name' : 'ellip_normal: Ellipsoidal harmonic normalization constants $\\gamma^p_n$',
1273
+ 'snippet' : [
1274
+ 'special.ellip_normal(h2, k2, n, p)',
1275
+ ],
1276
+ },
1277
+ ],
1278
+ },
1279
+
1280
+ {
1281
+ 'name' : 'Orthogonal polynomials',
1282
+ 'sub-menu' : [
1283
+
1284
+ // The following functions evaluate values of orthogonal polynomials:
1285
+ {
1286
+ 'name' : 'assoc_laguerre: Returns the $n$th order generalized (associated) Laguerre polynomial.',
1287
+ 'snippet' : [
1288
+ 'special.assoc_laguerre(x, n)',
1289
+ ],
1290
+ },
1291
+
1292
+ {
1293
+ 'name' : 'eval_legendre: Evaluate Legendre polynomial at a point',
1294
+ 'snippet' : [
1295
+ 'special.eval_legendre(n, x)',
1296
+ ],
1297
+ },
1298
+
1299
+ {
1300
+ 'name' : 'eval_chebyt: Evaluate Chebyshev $T$ polynomial at a point',
1301
+ 'snippet' : [
1302
+ 'special.eval_chebyt(n, x)',
1303
+ ],
1304
+ },
1305
+
1306
+ {
1307
+ 'name' : 'eval_chebyu: Evaluate Chebyshev $U$ polynomial at a point',
1308
+ 'snippet' : [
1309
+ 'special.eval_chebyu(n, x)',
1310
+ ],
1311
+ },
1312
+
1313
+ {
1314
+ 'name' : 'eval_chebyc: Evaluate Chebyshev $C$ polynomial at a point',
1315
+ 'snippet' : [
1316
+ 'special.eval_chebyc(n, x)',
1317
+ ],
1318
+ },
1319
+
1320
+ {
1321
+ 'name' : 'eval_chebys: Evaluate Chebyshev $S$ polynomial at a point',
1322
+ 'snippet' : [
1323
+ 'special.eval_chebys(n, x)',
1324
+ ],
1325
+ },
1326
+
1327
+ {
1328
+ 'name' : 'eval_jacobi: Evaluate Jacobi polynomial at a point',
1329
+ 'snippet' : [
1330
+ 'special.eval_jacobi(n, alpha, beta, x)',
1331
+ ],
1332
+ },
1333
+
1334
+ {
1335
+ 'name' : 'eval_laguerre: Evaluate Laguerre polynomial at a point',
1336
+ 'snippet' : [
1337
+ 'special.eval_laguerre(n, x)',
1338
+ ],
1339
+ },
1340
+
1341
+ {
1342
+ 'name' : 'eval_genlaguerre: Evaluate generalized Laguerre polynomial at a point',
1343
+ 'snippet' : [
1344
+ 'special.eval_genlaguerre(n, alpha, x)',
1345
+ ],
1346
+ },
1347
+
1348
+ {
1349
+ 'name' : 'eval_hermite: Evaluate Hermite polynomial at a point',
1350
+ 'snippet' : [
1351
+ 'special.eval_hermite(n, x)',
1352
+ ],
1353
+ },
1354
+
1355
+ {
1356
+ 'name' : 'eval_hermitenorm: Evaluate normalized Hermite polynomial at a point',
1357
+ 'snippet' : [
1358
+ 'special.eval_hermitenorm(n, x)',
1359
+ ],
1360
+ },
1361
+
1362
+ {
1363
+ 'name' : 'eval_gegenbauer: Evaluate Gegenbauer polynomial at a point',
1364
+ 'snippet' : [
1365
+ 'special.eval_gegenbauer(n, alpha, x)',
1366
+ ],
1367
+ },
1368
+
1369
+ {
1370
+ 'name' : 'eval_sh_legendre: Evaluate shifted Legendre polynomial at a point',
1371
+ 'snippet' : [
1372
+ 'special.eval_sh_legendre(n, x)',
1373
+ ],
1374
+ },
1375
+
1376
+ {
1377
+ 'name' : 'eval_sh_chebyt: Evaluate shifted Chebyshev $T$ polynomial at a point',
1378
+ 'snippet' : [
1379
+ 'special.eval_sh_chebyt(n, x)',
1380
+ ],
1381
+ },
1382
+
1383
+ {
1384
+ 'name' : 'eval_sh_chebyu: Evaluate shifted Chebyshev $U$ polynomial at a point',
1385
+ 'snippet' : [
1386
+ 'special.eval_sh_chebyu(n, x)',
1387
+ ],
1388
+ },
1389
+
1390
+ {
1391
+ 'name' : 'eval_sh_jacobi: Evaluate shifted Jacobi polynomial at a point',
1392
+ 'snippet' : [
1393
+ 'special.eval_sh_jacobi(n, p, q, x)',
1394
+ ],
1395
+ },
1396
+
1397
+ {
1398
+ 'name' : 'legendre: Coefficients of the $n$th order Legendre polynomial, $P_n(x)$',
1399
+ 'snippet' : [
1400
+ 'special.legendre(n[, monic])',
1401
+ ],
1402
+ },
1403
+
1404
+ {
1405
+ 'name' : 'chebyt: Coefficients of the $n$th order Chebyshev polynomial of first kind, $T_n(x)$',
1406
+ 'snippet' : [
1407
+ 'special.chebyt(n[, monic])',
1408
+ ],
1409
+ },
1410
+
1411
+ {
1412
+ 'name' : 'chebyu: Coefficients of the $n$th order Chebyshev polynomial of second kind, $U_n(x)$',
1413
+ 'snippet' : [
1414
+ 'special.chebyu(n[, monic])',
1415
+ ],
1416
+ },
1417
+
1418
+ {
1419
+ 'name' : 'chebyc: Coefficients of the $n$th order Chebyshev polynomial of first kind, $C_n(x)$',
1420
+ 'snippet' : [
1421
+ 'special.chebyc(n[, monic])',
1422
+ ],
1423
+ },
1424
+
1425
+ {
1426
+ 'name' : 'chebys: Coefficients of the $n$th order Chebyshev polynomial of second kind, $S_n$(x)',
1427
+ 'snippet' : [
1428
+ 'special.chebys(n[, monic])',
1429
+ ],
1430
+ },
1431
+
1432
+ {
1433
+ 'name' : 'jacobi: Coefficients of the $n$th order Jacobi polynomial, $P^(\\alpha,\\beta)_n(x)$ orthogonal over [-1,1] with weighting function $(1-x)^\\alpha (1+x)^\\beta$ with $\\alpha,\\beta > -1$',
1434
+ 'snippet' : [
1435
+ 'special.jacobi(n, alpha, beta[, monic])',
1436
+ ],
1437
+ },
1438
+
1439
+ {
1440
+ 'name' : 'laguerre: Coefficients of the $n$th order Laguerre polynoimal, $L_n(x)$',
1441
+ 'snippet' : [
1442
+ 'special.laguerre(n[, monic])',
1443
+ ],
1444
+ },
1445
+
1446
+ {
1447
+ 'name' : 'genlaguerre: Coefficients of the $n$th order generalized (associated) Laguerre polynomial,',
1448
+ 'snippet' : [
1449
+ 'special.genlaguerre(n, alpha[, monic])',
1450
+ ],
1451
+ },
1452
+
1453
+ {
1454
+ 'name' : 'hermite: Coefficients of the $n$th order Hermite polynomial, $H_n(x)$, orthogonal over',
1455
+ 'snippet' : [
1456
+ 'special.hermite(n[, monic])',
1457
+ ],
1458
+ },
1459
+
1460
+ {
1461
+ 'name' : 'hermitenorm: Coefficients of the $n$th order normalized Hermite polynomial, $He_n(x)$, orthogonal',
1462
+ 'snippet' : [
1463
+ 'special.hermitenorm(n[, monic])',
1464
+ ],
1465
+ },
1466
+
1467
+ {
1468
+ 'name' : 'gegenbauer: Coefficients of the $n$th order Gegenbauer (ultraspherical) polynomial,',
1469
+ 'snippet' : [
1470
+ 'special.gegenbauer(n, alpha[, monic])',
1471
+ ],
1472
+ },
1473
+
1474
+ {
1475
+ 'name' : 'sh_legendre: Coefficients of the $n$th order shifted Legendre polynomial, $P^\\ast_n(x)$',
1476
+ 'snippet' : [
1477
+ 'special.sh_legendre(n[, monic])',
1478
+ ],
1479
+ },
1480
+
1481
+ {
1482
+ 'name' : 'sh_chebyt: Coefficients of $n$th order shifted Chebyshev polynomial of first kind, $T_n(x)$',
1483
+ 'snippet' : [
1484
+ 'special.sh_chebyt(n[, monic])',
1485
+ ],
1486
+ },
1487
+
1488
+ {
1489
+ 'name' : 'sh_chebyu: Coefficients of the $n$th order shifted Chebyshev polynomial of second kind, $U_n(x)$',
1490
+ 'snippet' : [
1491
+ 'special.sh_chebyu(n[, monic])',
1492
+ ],
1493
+ },
1494
+
1495
+ {
1496
+ 'name' : 'sh_jacobi: Coefficients of the $n$th order Jacobi polynomial, $G_n(p,q,x)$ orthogonal over [0,1] with weighting function $(1-x)^{p-q} x^{q-1}$ with $p>q-1$ and $q > 0$',
1497
+ 'snippet' : [
1498
+ 'special.sh_jacobi(n, p, q[, monic])',
1499
+ ],
1500
+ },
1501
+
1502
+ ],
1503
+ },
1504
+
1505
+ {
1506
+ 'name' : 'Hypergeometric Functions',
1507
+ 'sub-menu' : [
1508
+
1509
+ {
1510
+ 'name' : 'hyp2f1: Gauss hypergeometric function ${}_2F_1(a, b; c; z)$',
1511
+ 'snippet' : [
1512
+ 'special.hyp2f1(a, b, c, z)',
1513
+ ],
1514
+ },
1515
+
1516
+ {
1517
+ 'name' : 'hyp1f1: Confluent hypergeometric function ${}_1F_1(a, b; x)$',
1518
+ 'snippet' : [
1519
+ 'special.hyp1f1(a, b, x)',
1520
+ ],
1521
+ },
1522
+
1523
+ {
1524
+ 'name' : 'hyperu: Confluent hypergeometric function $U(a, b, x)$ of the second kind',
1525
+ 'snippet' : [
1526
+ 'special.hyperu(a, b, x)',
1527
+ ],
1528
+ },
1529
+
1530
+ {
1531
+ 'name' : 'hyp0f1: Confluent hypergeometric limit function ${}_0F_1$',
1532
+ 'snippet' : [
1533
+ 'special.hyp0f1(v, z)',
1534
+ ],
1535
+ },
1536
+
1537
+ {
1538
+ 'name' : 'hyp2f0: Hypergeometric function ${}_2F_0$ in $y$ and an error estimate',
1539
+ 'snippet' : [
1540
+ 'special.hyp2f0(a, b, x, type)',
1541
+ ],
1542
+ },
1543
+
1544
+ {
1545
+ 'name' : 'hyp1f2: Hypergeometric function ${}_1F_2$ and error estimate',
1546
+ 'snippet' : [
1547
+ 'special.hyp1f2(a, b, c, x)',
1548
+ ],
1549
+ },
1550
+
1551
+ {
1552
+ 'name' : 'hyp3f0: Hypergeometric function ${}_3F_0$ in $y$ and an error estimate',
1553
+ 'snippet' : [
1554
+ 'special.hyp3f0(a, b, c, x)',
1555
+ ],
1556
+ },
1557
+
1558
+ ],
1559
+ },
1560
+
1561
+ {
1562
+ 'name' : 'Parabolic Cylinder Functions',
1563
+ 'sub-menu' : [
1564
+
1565
+ {
1566
+ 'name' : 'pbdv: Parabolic cylinder function $D$',
1567
+ 'snippet' : [
1568
+ 'special.pbdv(v, x)',
1569
+ ],
1570
+ },
1571
+
1572
+ {
1573
+ 'name' : 'pbvv: Parabolic cylinder function $V$',
1574
+ 'snippet' : [
1575
+ 'special.pbvv(v,x)',
1576
+ ],
1577
+ },
1578
+
1579
+ {
1580
+ 'name' : 'pbwa: Parabolic cylinder function $W$',
1581
+ 'snippet' : [
1582
+ 'special.pbwa(a,x)',
1583
+ ],
1584
+ },
1585
+
1586
+ // These are not universal functions:
1587
+
1588
+ {
1589
+ 'name' : 'pbdv_seq: $D_{v_0}(x), ..., D_v(x)$ and $D_{v_0}\'(x), ..., D_v\'(x)$ with $v_0=v-\\lfloor v \\rfloor$',
1590
+ 'snippet' : [
1591
+ 'special.pbdv_seq(v, x)',
1592
+ ],
1593
+ },
1594
+
1595
+ {
1596
+ 'name' : 'pbvv_seq: $V_{v_0}(x), ..., V_v(x)$ and $V_{v_0}\'(x), ..., V_v\'(x)$ with $v_0=v-\\lfloor v \\rfloor$',
1597
+ 'snippet' : [
1598
+ 'special.pbvv_seq(v, x)',
1599
+ ],
1600
+ },
1601
+
1602
+ {
1603
+ 'name' : 'pbdn_seq: $D_0(x), ..., D_n(x)$ and $D_0\'(x), ..., D_n\'(x)$',
1604
+ 'snippet' : [
1605
+ 'special.pbdn_seq(n, z)',
1606
+ ],
1607
+ },
1608
+
1609
+ ],
1610
+ },
1611
+
1612
+ {
1613
+ 'name' : 'Mathieu and Related Functions',
1614
+ 'sub-menu' : [
1615
+
1616
+ {
1617
+ 'name' : 'mathieu_a: Characteristic value of even Mathieu functions',
1618
+ 'snippet' : [
1619
+ 'special.mathieu_a(m,q)',
1620
+ ],
1621
+ },
1622
+
1623
+ {
1624
+ 'name' : 'mathieu_b: Characteristic value of odd Mathieu functions',
1625
+ 'snippet' : [
1626
+ 'special.mathieu_b(m,q)',
1627
+ ],
1628
+ },
1629
+
1630
+ // These are not universal functions:
1631
+
1632
+ {
1633
+ 'name' : 'mathieu_even_coef: Compute expansion coefficients for even Mathieu functions and modified Mathieu functions',
1634
+ 'snippet' : [
1635
+ 'special.mathieu_even_coef(m, q)',
1636
+ ],
1637
+ },
1638
+
1639
+ {
1640
+ 'name' : 'mathieu_odd_coef: Compute expansion coefficients for even Mathieu functions and modified Mathieu functions',
1641
+ 'snippet' : [
1642
+ 'special.mathieu_odd_coef(m, q)',
1643
+ ],
1644
+ },
1645
+
1646
+ // The following return both function and first derivative:
1647
+
1648
+ {
1649
+ 'name' : 'mathieu_cem: Even Mathieu function and its derivative',
1650
+ 'snippet' : [
1651
+ 'special.mathieu_cem(m,q,x)',
1652
+ ],
1653
+ },
1654
+
1655
+ {
1656
+ 'name' : 'mathieu_sem: Odd Mathieu function and its derivative',
1657
+ 'snippet' : [
1658
+ 'special.mathieu_sem(m, q, x)',
1659
+ ],
1660
+ },
1661
+
1662
+ {
1663
+ 'name' : 'mathieu_modcem1: Even modified Mathieu function of the first kind and its derivative',
1664
+ 'snippet' : [
1665
+ 'special.mathieu_modcem1(m, q, x)',
1666
+ ],
1667
+ },
1668
+
1669
+ {
1670
+ 'name' : 'mathieu_modcem2: Even modified Mathieu function of the second kind and its derivative',
1671
+ 'snippet' : [
1672
+ 'special.mathieu_modcem2(m, q, x)',
1673
+ ],
1674
+ },
1675
+
1676
+ {
1677
+ 'name' : 'mathieu_modsem1: Odd modified Mathieu function of the first kind and its derivative',
1678
+ 'snippet' : [
1679
+ 'special.mathieu_modsem1(m,q,x)',
1680
+ ],
1681
+ },
1682
+
1683
+ {
1684
+ 'name' : 'mathieu_modsem2: Odd modified Mathieu function of the second kind and its derivative',
1685
+ 'snippet' : [
1686
+ 'special.mathieu_modsem2(m, q, x)',
1687
+ ],
1688
+ },
1689
+
1690
+ ],
1691
+ },
1692
+
1693
+ {
1694
+ 'name' : 'Spheroidal Wave Functions',
1695
+ 'sub-menu' : [
1696
+
1697
+ {
1698
+ 'name' : 'pro_ang1: Prolate spheroidal angular function of the first kind and its derivative',
1699
+ 'snippet' : [
1700
+ 'special.pro_ang1(m,n,c,x)',
1701
+ ],
1702
+ },
1703
+
1704
+ {
1705
+ 'name' : 'pro_rad1: Prolate spheroidal radial function of the first kind and its derivative',
1706
+ 'snippet' : [
1707
+ 'special.pro_rad1(m,n,c,x)',
1708
+ ],
1709
+ },
1710
+
1711
+ {
1712
+ 'name' : 'pro_rad2: Prolate spheroidal radial function of the secon kind and its derivative',
1713
+ 'snippet' : [
1714
+ 'special.pro_rad2(m,n,c,x)',
1715
+ ],
1716
+ },
1717
+
1718
+ {
1719
+ 'name' : 'obl_ang1: Oblate spheroidal angular function of the first kind and its derivative',
1720
+ 'snippet' : [
1721
+ 'special.obl_ang1(m, n, c, x)',
1722
+ ],
1723
+ },
1724
+
1725
+ {
1726
+ 'name' : 'obl_rad1: Oblate spheroidal radial function of the first kind and its derivative',
1727
+ 'snippet' : [
1728
+ 'special.obl_rad1(m,n,c,x)',
1729
+ ],
1730
+ },
1731
+
1732
+ {
1733
+ 'name' : 'obl_rad2: Oblate spheroidal radial function of the second kind and its derivative',
1734
+ 'snippet' : [
1735
+ 'special.obl_rad2(m,n,c,x)',
1736
+ ],
1737
+ },
1738
+
1739
+ {
1740
+ 'name' : 'pro_cv: Characteristic value of prolate spheroidal function',
1741
+ 'snippet' : [
1742
+ 'special.pro_cv(m,n,c)',
1743
+ ],
1744
+ },
1745
+
1746
+ {
1747
+ 'name' : 'obl_cv: Characteristic value of oblate spheroidal function',
1748
+ 'snippet' : [
1749
+ 'special.obl_cv(m, n, c)',
1750
+ ],
1751
+ },
1752
+
1753
+ {
1754
+ 'name' : 'pro_cv_seq: Compute a sequence of characteristic values for the prolate spheroidal wave functions for mode m and n’=m..n and spheroidal parameter c',
1755
+ 'snippet' : [
1756
+ 'special.pro_cv_seq(m, n, c)',
1757
+ ],
1758
+ },
1759
+
1760
+ {
1761
+ 'name' : 'obl_cv_seq: Compute a sequence of characteristic values for the oblate spheroidal wave functions for mode m and n’=m..n and spheroidal parameter c',
1762
+ 'snippet' : [
1763
+ 'special.obl_cv_seq(m, n, c)',
1764
+ ],
1765
+ },
1766
+
1767
+ // The following functions require pre-computed characteristic value:
1768
+
1769
+ {
1770
+ 'name' : 'pro_ang1_cv: Prolate spheroidal angular function pro_ang1 for precomputed characteristic value',
1771
+ 'snippet' : [
1772
+ 'special.pro_ang1_cv(m,n,c,cv,x)',
1773
+ ],
1774
+ },
1775
+
1776
+ {
1777
+ 'name' : 'pro_rad1_cv: Prolate spheroidal radial function pro_rad1 for precomputed characteristic value',
1778
+ 'snippet' : [
1779
+ 'special.pro_rad1_cv(m,n,c,cv,x)',
1780
+ ],
1781
+ },
1782
+
1783
+ {
1784
+ 'name' : 'pro_rad2_cv: Prolate spheroidal radial function pro_rad2 for precomputed characteristic value',
1785
+ 'snippet' : [
1786
+ 'special.pro_rad2_cv(m,n,c,cv,x)',
1787
+ ],
1788
+ },
1789
+
1790
+ {
1791
+ 'name' : 'obl_ang1_cv: Oblate spheroidal angular function obl_ang1 for precomputed characteristic value',
1792
+ 'snippet' : [
1793
+ 'special.obl_ang1_cv(m, n, c, cv, x)',
1794
+ ],
1795
+ },
1796
+
1797
+ {
1798
+ 'name' : 'obl_rad1_cv: Oblate spheroidal radial function obl_rad1 for precomputed characteristic value',
1799
+ 'snippet' : [
1800
+ 'special.obl_rad1_cv(m,n,c,cv,x)',
1801
+ ],
1802
+ },
1803
+
1804
+ {
1805
+ 'name' : 'obl_rad2_cv: Oblate spheroidal radial function obl_rad2 for precomputed characteristic value',
1806
+ 'snippet' : [
1807
+ 'special.obl_rad2_cv(m,n,c,cv,x)',
1808
+ ],
1809
+ },
1810
+
1811
+ ],
1812
+ },
1813
+
1814
+ {
1815
+ 'name' : 'Kelvin Functions',
1816
+ 'sub-menu' : [
1817
+
1818
+ {
1819
+ 'name' : 'kelvin: Kelvin functions as complex numbers',
1820
+ 'snippet' : [
1821
+ 'special.kelvin(x)',
1822
+ ],
1823
+ },
1824
+
1825
+ {
1826
+ 'name' : 'kelvin_zeros: Compute nt zeros of all the Kelvin functions returned in a length 8 tuple of arrays of length nt',
1827
+ 'snippet' : [
1828
+ 'special.kelvin_zeros(nt)',
1829
+ ],
1830
+ },
1831
+
1832
+ {
1833
+ 'name' : 'ber: Kelvin function ber',
1834
+ 'snippet' : [
1835
+ 'special.ber(x)',
1836
+ ],
1837
+ },
1838
+
1839
+ {
1840
+ 'name' : 'bei: Kelvin function bei',
1841
+ 'snippet' : [
1842
+ 'special.bei(x)',
1843
+ ],
1844
+ },
1845
+
1846
+ {
1847
+ 'name' : 'berp: Derivative of the Kelvin function ber',
1848
+ 'snippet' : [
1849
+ 'special.berp(x)',
1850
+ ],
1851
+ },
1852
+
1853
+ {
1854
+ 'name' : 'beip: Derivative of the Kelvin function bei',
1855
+ 'snippet' : [
1856
+ 'special.beip(x)',
1857
+ ],
1858
+ },
1859
+
1860
+ {
1861
+ 'name' : 'ker: Kelvin function ker',
1862
+ 'snippet' : [
1863
+ 'special.ker(x)',
1864
+ ],
1865
+ },
1866
+
1867
+ {
1868
+ 'name' : 'kei: Kelvin function ker',
1869
+ 'snippet' : [
1870
+ 'special.kei(x)',
1871
+ ],
1872
+ },
1873
+
1874
+ {
1875
+ 'name' : 'kerp: Derivative of the Kelvin function ker',
1876
+ 'snippet' : [
1877
+ 'special.kerp(x)',
1878
+ ],
1879
+ },
1880
+
1881
+ {
1882
+ 'name' : 'keip: Derivative of the Kelvin function kei',
1883
+ 'snippet' : [
1884
+ 'special.keip(x)',
1885
+ ],
1886
+ },
1887
+
1888
+ // These are not universal functions:
1889
+
1890
+ {
1891
+ 'name' : 'ber_zeros: Compute nt zeros of the Kelvin function ber x',
1892
+ 'snippet' : [
1893
+ 'special.ber_zeros(nt)',
1894
+ ],
1895
+ },
1896
+
1897
+ {
1898
+ 'name' : 'bei_zeros: Compute nt zeros of the Kelvin function bei x',
1899
+ 'snippet' : [
1900
+ 'special.bei_zeros(nt)',
1901
+ ],
1902
+ },
1903
+
1904
+ {
1905
+ 'name' : 'berp_zeros: Compute nt zeros of the Kelvin function ber’ x',
1906
+ 'snippet' : [
1907
+ 'special.berp_zeros(nt)',
1908
+ ],
1909
+ },
1910
+
1911
+ {
1912
+ 'name' : 'beip_zeros: Compute nt zeros of the Kelvin function bei’ x',
1913
+ 'snippet' : [
1914
+ 'special.beip_zeros(nt)',
1915
+ ],
1916
+ },
1917
+
1918
+ {
1919
+ 'name' : 'ker_zeros: Compute nt zeros of the Kelvin function ker x',
1920
+ 'snippet' : [
1921
+ 'special.ker_zeros(nt)',
1922
+ ],
1923
+ },
1924
+
1925
+ {
1926
+ 'name' : 'kei_zeros: Compute nt zeros of the Kelvin function kei x',
1927
+ 'snippet' : [
1928
+ 'special.kei_zeros(nt)',
1929
+ ],
1930
+ },
1931
+
1932
+ {
1933
+ 'name' : 'kerp_zeros: Compute nt zeros of the Kelvin function ker’ x',
1934
+ 'snippet' : [
1935
+ 'special.kerp_zeros(nt)',
1936
+ ],
1937
+ },
1938
+
1939
+ {
1940
+ 'name' : 'keip_zeros: Compute nt zeros of the Kelvin function kei’ x',
1941
+ 'snippet' : [
1942
+ 'special.keip_zeros(nt)',
1943
+ ],
1944
+ },
1945
+
1946
+ ],
1947
+ },
1948
+
1949
+ {
1950
+ 'name' : 'Combinatorics',
1951
+ 'sub-menu' : [
1952
+ {
1953
+ 'name' : 'comb: The number of combinations of N things taken k at a time',
1954
+ 'snippet' : [
1955
+ 'special.comb(N, k, exact=False, repetition=False)',
1956
+ ],
1957
+ },
1958
+
1959
+ {
1960
+ 'name' : 'perm: Permutations of N things taken k at a time, i.e., k-permutations of N',
1961
+ 'snippet' : [
1962
+ 'special.perm(N, k, exact=False)',
1963
+ ],
1964
+ },
1965
+ ],
1966
+ },
1967
+
1968
+ {
1969
+ 'name' : 'Other Special Functions',
1970
+ 'sub-menu' : [
1971
+ {
1972
+ 'name' : 'agm: Arithmetic, Geometric Mean',
1973
+ 'snippet' : [
1974
+ 'special.agm(a, b)',
1975
+ ],
1976
+ },
1977
+
1978
+ {
1979
+ 'name' : 'bernoulli: Return an array of the Bernoulli numbers $B_0$, ..., $B_n$ (inclusive)',
1980
+ 'snippet' : [
1981
+ 'special.bernoulli(n)',
1982
+ ],
1983
+ },
1984
+
1985
+ {
1986
+ 'name' : 'binom: Binomial coefficient',
1987
+ 'snippet' : [
1988
+ 'special.binom(n, k)',
1989
+ ],
1990
+ },
1991
+
1992
+ {
1993
+ 'name' : 'diric: Returns the periodic sinc function, also called the Dirichlet function',
1994
+ 'snippet' : [
1995
+ 'special.diric(x, n)',
1996
+ ],
1997
+ },
1998
+
1999
+ {
2000
+ 'name' : 'euler: Return an array of the Euler numbers $E_0$, ..., $E_n$ (inclusive)',
2001
+ 'snippet' : [
2002
+ 'special.euler(n)',
2003
+ ],
2004
+ },
2005
+
2006
+ {
2007
+ 'name' : 'expn: Exponential integral $E_n$',
2008
+ 'snippet' : [
2009
+ 'special.expn(n, x)',
2010
+ ],
2011
+ },
2012
+
2013
+ {
2014
+ 'name' : 'exp1: Exponential integral $E_1$ of complex argument $z$',
2015
+ 'snippet' : [
2016
+ 'special.exp1(z)',
2017
+ ],
2018
+ },
2019
+
2020
+ {
2021
+ 'name' : 'expi: Exponential integral $\\mathrm{Ei}$',
2022
+ 'snippet' : [
2023
+ 'special.expi(x)',
2024
+ ],
2025
+ },
2026
+
2027
+ {
2028
+ 'name' : 'factorial: The factorial function, $n! = \\Gamma(n+1)$',
2029
+ 'snippet' : [
2030
+ 'special.factorial(n, exact=False)',
2031
+ ],
2032
+ },
2033
+
2034
+ {
2035
+ 'name' : 'factorial2: Double factorial $n!!$',
2036
+ 'snippet' : [
2037
+ 'special.factorial2(n, exact=False)',
2038
+ ],
2039
+ },
2040
+
2041
+ {
2042
+ 'name' : 'factorialk: $n(!!...!)$ = multifactorial of order $k$',
2043
+ 'snippet' : [
2044
+ 'special.factorialk(n, k, exact=False)',
2045
+ ],
2046
+ },
2047
+
2048
+ {
2049
+ 'name' : 'shichi: Hyperbolic sine and cosine integrals',
2050
+ 'snippet' : [
2051
+ 'special.shichi(x)',
2052
+ ],
2053
+ },
2054
+
2055
+ {
2056
+ 'name' : 'sici: Sine and cosine integrals',
2057
+ 'snippet' : [
2058
+ 'special.sici(x)',
2059
+ ],
2060
+ },
2061
+
2062
+ {
2063
+ 'name' : 'spence: Dilogarithm integral',
2064
+ 'snippet' : [
2065
+ 'special.spence(x)',
2066
+ ],
2067
+ },
2068
+
2069
+ {
2070
+ 'name' : 'lambertw: Lambert $W$ function [R497]',
2071
+ 'snippet' : [
2072
+ 'special.lambertw(z[, k, tol])',
2073
+ ],
2074
+ },
2075
+
2076
+ {
2077
+ 'name' : 'zeta: Hurwitz $\\zeta$ function',
2078
+ 'snippet' : [
2079
+ 'special.zeta(x, q)',
2080
+ ],
2081
+ },
2082
+
2083
+ {
2084
+ 'name' : 'zetac: Riemann $\\zeta$ function minus 1',
2085
+ 'snippet' : [
2086
+ 'special.zetac(x)',
2087
+ ],
2088
+ },
2089
+
2090
+ ],
2091
+ },
2092
+
2093
+ {
2094
+ 'name' : 'Convenience Functions',
2095
+ 'sub-menu' : [
2096
+
2097
+ {
2098
+ 'name' : 'cbrt: $\\sqrt[3]{x}$',
2099
+ 'snippet' : [
2100
+ 'special.cbrt(x)',
2101
+ ],
2102
+ },
2103
+
2104
+ {
2105
+ 'name' : 'exp10: $10^x$',
2106
+ 'snippet' : [
2107
+ 'special.exp10(x)',
2108
+ ],
2109
+ },
2110
+
2111
+ {
2112
+ 'name' : 'exp2: $2^x$',
2113
+ 'snippet' : [
2114
+ 'special.exp2(x)',
2115
+ ],
2116
+ },
2117
+
2118
+ {
2119
+ 'name' : 'radian: Convert from degrees to radians',
2120
+ 'snippet' : [
2121
+ 'special.radian(d, m, s)',
2122
+ ],
2123
+ },
2124
+
2125
+ {
2126
+ 'name' : 'cosdg: Cosine of the angle given in degrees',
2127
+ 'snippet' : [
2128
+ 'special.cosdg(x)',
2129
+ ],
2130
+ },
2131
+
2132
+ {
2133
+ 'name' : 'sindg: Sine of angle given in degrees',
2134
+ 'snippet' : [
2135
+ 'special.sindg(x)',
2136
+ ],
2137
+ },
2138
+
2139
+ {
2140
+ 'name' : 'tandg: Tangent of angle given in degrees',
2141
+ 'snippet' : [
2142
+ 'special.tandg(x)',
2143
+ ],
2144
+ },
2145
+
2146
+ {
2147
+ 'name' : 'cotdg: Cotangent of the angle given in degrees',
2148
+ 'snippet' : [
2149
+ 'special.cotdg(x)',
2150
+ ],
2151
+ },
2152
+
2153
+ {
2154
+ 'name' : 'log1p: Calculates $\\log(1+x)$ for use when $x$ is near zero',
2155
+ 'snippet' : [
2156
+ 'special.log1p(x)',
2157
+ ],
2158
+ },
2159
+
2160
+ {
2161
+ 'name' : 'expm1: $\\exp(x) - 1$ for use when $x$ is near zero',
2162
+ 'snippet' : [
2163
+ 'special.expm1(x)',
2164
+ ],
2165
+ },
2166
+
2167
+ {
2168
+ 'name' : 'cosm1: $\\cos(x) - 1$ for use when $x$ is near zero',
2169
+ 'snippet' : [
2170
+ 'special.cosm1(x)',
2171
+ ],
2172
+ },
2173
+
2174
+ {
2175
+ 'name' : 'round: Round to nearest integer',
2176
+ 'snippet' : [
2177
+ 'special.round(x)',
2178
+ ],
2179
+ },
2180
+
2181
+ {
2182
+ 'name' : 'xlogy: Compute $x\\, \\log(y)$ so that the result is 0 if $x$ = 0',
2183
+ 'snippet' : [
2184
+ 'special.xlogy(x, y)',
2185
+ ],
2186
+ },
2187
+
2188
+ {
2189
+ 'name' : 'xlog1py: Compute $x\\, \\log(1+y)$ so that the result is 0 if $x$ = 0',
2190
+ 'snippet' : [
2191
+ 'special.xlog1py(x, y)',
2192
+ ],
2193
+ },
2194
+ ],
2195
+ },
2196
+
2197
+ ],
2198
+ });
.local/share/jupyter/nbextensions/snippets_menu/snippets_submenus_python/sympy_assumptions.js ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ define({
2
+ 'name' : 'List of assumptions',
3
+ 'sub-menu' : [
4
+ {
5
+ 'name' : 'Bounded',
6
+ 'snippet' : ['Q.bounded(x)',],
7
+ },
8
+ {
9
+ 'name' : 'Commutative',
10
+ 'snippet' : ['Q.commutative(x)',],
11
+ },
12
+ {
13
+ 'name' : 'Complex',
14
+ 'snippet' : ['Q.complex(x)',],
15
+ },
16
+ {
17
+ 'name' : 'Imaginary',
18
+ 'snippet' : ['Q.imaginary(x)',],
19
+ },
20
+ {
21
+ 'name' : 'Real',
22
+ 'snippet' : ['Q.real(x)',],
23
+ },
24
+ {
25
+ 'name' : 'Extended real',
26
+ 'snippet' : ['Q.extended_real(x)',],
27
+ },
28
+ {
29
+ 'name' : 'Integer',
30
+ 'snippet' : ['Q.integer(x)',],
31
+ },
32
+ {
33
+ 'name' : 'Odd',
34
+ 'snippet' : ['Q.odd(x)',],
35
+ },
36
+ {
37
+ 'name' : 'Even',
38
+ 'snippet' : ['Q.even(x)',],
39
+ },
40
+ {
41
+ 'name' : 'Prime',
42
+ 'snippet' : ['Q.prime(x)',],
43
+ },
44
+ {
45
+ 'name' : 'Composite',
46
+ 'snippet' : ['Q.composite(x)',],
47
+ },
48
+ {
49
+ 'name' : 'Zero',
50
+ 'snippet' : ['Q.zero(x)',],
51
+ },
52
+ {
53
+ 'name' : 'Nonzero',
54
+ 'snippet' : ['Q.nonzero(x)',],
55
+ },
56
+ {
57
+ 'name' : 'Rational',
58
+ 'snippet' : ['Q.rational(x)',],
59
+ },
60
+ {
61
+ 'name' : 'Algebraic',
62
+ 'snippet' : ['Q.algebraic(x)',],
63
+ },
64
+ {
65
+ 'name' : 'Transcendental',
66
+ 'snippet' : ['Q.transcendental(x)',],
67
+ },
68
+ {
69
+ 'name' : 'Irrational',
70
+ 'snippet' : ['Q.irrational(x)',],
71
+ },
72
+ {
73
+ 'name' : 'Finite',
74
+ 'snippet' : ['Q.finite(x)',],
75
+ },
76
+ {
77
+ 'name' : 'Infinite',
78
+ 'snippet' : ['Q.infinite(x)',],
79
+ },
80
+ {
81
+ 'name' : 'Infinitesimal',
82
+ 'snippet' : ['Q.infinitesimal(x)',],
83
+ },
84
+ {
85
+ 'name' : 'Negative',
86
+ 'snippet' : ['Q.negative(x)',],
87
+ },
88
+ {
89
+ 'name' : 'Nonnegative',
90
+ 'snippet' : ['Q.nonnegative(x)',],
91
+ },
92
+ {
93
+ 'name' : 'Positive',
94
+ 'snippet' : ['Q.positive(x)',],
95
+ },
96
+ {
97
+ 'name' : 'Nonpositive',
98
+ 'snippet' : ['Q.nonpositive(x)',],
99
+ },
100
+ {
101
+ 'name' : 'Hermitian',
102
+ 'snippet' : ['Q.hermitian(x)',],
103
+ },
104
+ {
105
+ 'name' : 'Antihermitian',
106
+ 'snippet' : ['Q.antihermitian(x)',],
107
+ },
108
+ ],
109
+ });