├── ..travis.yml.un~
├── .README.md.un~
├── .coverage
├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore
├── .metadata
├── .lock
├── .log
├── .mylyn
│ ├── .taskListIndex
│ │ ├── segments_1
│ │ └── write.lock
│ └── repositories.xml.zip
├── .plugins
│ ├── org.eclipse.core.resources
│ │ ├── .root
│ │ │ ├── .indexes
│ │ │ │ ├── history.version
│ │ │ │ ├── properties.index
│ │ │ │ └── properties.version
│ │ │ └── 2.tree
│ │ └── .safetable
│ │ │ └── org.eclipse.core.resources
│ ├── org.eclipse.core.runtime
│ │ └── .settings
│ │ │ ├── org.eclipse.core.resources.prefs
│ │ │ ├── org.eclipse.jdt.ui.prefs
│ │ │ ├── org.eclipse.jsch.core.prefs
│ │ │ ├── org.eclipse.m2e.discovery.prefs
│ │ │ ├── org.eclipse.mylyn.context.core.prefs
│ │ │ ├── org.eclipse.mylyn.monitor.ui.prefs
│ │ │ ├── org.eclipse.mylyn.tasks.ui.prefs
│ │ │ ├── org.eclipse.ui.ide.prefs
│ │ │ ├── org.eclipse.ui.workbench.prefs
│ │ │ └── org.python.pydev.prefs
│ ├── org.eclipse.e4.workbench
│ │ └── workbench.xmi
│ ├── org.eclipse.jdt.core
│ │ ├── assumedExternalFilesCache
│ │ ├── externalFilesCache
│ │ ├── nonChainingJarsCache
│ │ └── variablesAndContainers.dat
│ ├── org.eclipse.jdt.ui
│ │ ├── OpenTypeHistory.xml
│ │ ├── QualifiedTypeNameHistory.xml
│ │ └── dialog_settings.xml
│ ├── org.eclipse.m2e.logback.configuration
│ │ ├── 0.log
│ │ └── logback.1.14.0.20191209-1925.xml
│ ├── org.eclipse.oomph.setup
│ │ └── workspace.setup
│ ├── org.eclipse.tips.ide
│ │ └── dialog_settings.xml
│ ├── org.eclipse.ui.intro
│ │ └── introstate
│ ├── org.eclipse.ui.workbench
│ │ └── workingsets.xml
│ └── org.python.pydev
│ │ └── pyunit_tests
│ │ └── test_run_pin_info.txt
└── version.ini
├── .project
├── .pydevproject
├── .readthedocs.yml
├── .travis.yml
├── .travis.yml~
├── 1.PNG
├── 2.PNG
├── 3.PNG
├── CIR_first_date.png
├── CIR_results_comparison.png
├── CODE_OF_CONDUCT.md
├── LICENSE
├── PricingFIP
├── Vaeick_CIR
│ ├── CIR_first_date.png
│ ├── CIR_fsecond_date.png
│ ├── CIR_results_comparison.png
│ ├── Mod6.py
│ ├── VASEICK_first_date.png
│ ├── VASEICK_results_comparison.png
│ ├── VASEICK_second_date.png
│ └── __init__.py
├── __init__.py
└── my_tests
│ └── tests
│ └── test_auth.py
├── README.md
├── README.md~
├── RateRegression.ipynb
├── VASEICK_first_date.png
├── Vaeick_CIR.rst
├── coverage.xml
└── docs
├── Makefile
├── PricingFIP.Vaeick_CIR.rst
├── PricingFIP.rst
├── _build
├── doctrees
│ ├── environment.pickle
│ └── index.doctree
└── html
│ ├── .buildinfo
│ ├── _sources
│ └── index.rst.txt
│ ├── _static
│ ├── basic.css
│ ├── css
│ │ ├── badge_only.css
│ │ ├── fonts
│ │ │ ├── Roboto-Slab-Bold.woff
│ │ │ ├── Roboto-Slab-Bold.woff2
│ │ │ ├── Roboto-Slab-Regular.woff
│ │ │ ├── Roboto-Slab-Regular.woff2
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ ├── fontawesome-webfont.woff2
│ │ │ ├── lato-bold-italic.woff
│ │ │ ├── lato-bold-italic.woff2
│ │ │ ├── lato-bold.woff
│ │ │ ├── lato-bold.woff2
│ │ │ ├── lato-normal-italic.woff
│ │ │ ├── lato-normal-italic.woff2
│ │ │ ├── lato-normal.woff
│ │ │ └── lato-normal.woff2
│ │ └── theme.css
│ ├── doctools.js
│ ├── documentation_options.js
│ ├── file.png
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── Lato
│ │ │ ├── lato-bold.eot
│ │ │ ├── lato-bold.ttf
│ │ │ ├── lato-bold.woff
│ │ │ ├── lato-bold.woff2
│ │ │ ├── lato-bolditalic.eot
│ │ │ ├── lato-bolditalic.ttf
│ │ │ ├── lato-bolditalic.woff
│ │ │ ├── lato-bolditalic.woff2
│ │ │ ├── lato-italic.eot
│ │ │ ├── lato-italic.ttf
│ │ │ ├── lato-italic.woff
│ │ │ ├── lato-italic.woff2
│ │ │ ├── lato-regular.eot
│ │ │ ├── lato-regular.ttf
│ │ │ ├── lato-regular.woff
│ │ │ └── lato-regular.woff2
│ │ ├── Roboto-Slab-Bold.woff
│ │ ├── Roboto-Slab-Bold.woff2
│ │ ├── Roboto-Slab-Light.woff
│ │ ├── Roboto-Slab-Light.woff2
│ │ ├── Roboto-Slab-Regular.woff
│ │ ├── Roboto-Slab-Regular.woff2
│ │ ├── Roboto-Slab-Thin.woff
│ │ ├── Roboto-Slab-Thin.woff2
│ │ ├── RobotoSlab
│ │ │ ├── roboto-slab-v7-bold.eot
│ │ │ ├── roboto-slab-v7-bold.ttf
│ │ │ ├── roboto-slab-v7-bold.woff
│ │ │ ├── roboto-slab-v7-bold.woff2
│ │ │ ├── roboto-slab-v7-regular.eot
│ │ │ ├── roboto-slab-v7-regular.ttf
│ │ │ ├── roboto-slab-v7-regular.woff
│ │ │ └── roboto-slab-v7-regular.woff2
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── lato-bold-italic.woff
│ │ ├── lato-bold-italic.woff2
│ │ ├── lato-bold.woff
│ │ ├── lato-bold.woff2
│ │ ├── lato-normal-italic.woff
│ │ ├── lato-normal-italic.woff2
│ │ ├── lato-normal.woff
│ │ └── lato-normal.woff2
│ ├── jquery-3.5.1.js
│ ├── jquery.js
│ ├── js
│ │ ├── badge_only.js
│ │ ├── html5shiv-printshiv.min.js
│ │ ├── html5shiv.min.js
│ │ ├── modernizr.min.js
│ │ └── theme.js
│ ├── language_data.js
│ ├── minus.png
│ ├── plus.png
│ ├── pygments.css
│ ├── searchtools.js
│ ├── underscore-1.3.1.js
│ └── underscore.js
│ ├── genindex.html
│ ├── index.html
│ ├── objects.inv
│ ├── search.html
│ └── searchindex.js
├── conf.py
├── index.rst
├── make.bat
├── modules.rst
└── requirements.txt
/..travis.yml.un~:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/..travis.yml.un~
--------------------------------------------------------------------------------
/.README.md.un~:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.README.md.un~
--------------------------------------------------------------------------------
/.coverage:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.coverage
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | docs/_build
2 | docs/_static
3 | docs/_templates
4 | ./_build
5 | ./_static
6 | ./_templates
7 | __pycache__
8 | *.pyc
9 | .coverage
--------------------------------------------------------------------------------
/.metadata/.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.metadata/.lock
--------------------------------------------------------------------------------
/.metadata/.log:
--------------------------------------------------------------------------------
1 | !SESSION 2020-11-06 19:50:35.302 -----------------------------------------------
2 | eclipse.buildId=4.14.0.I20191210-0610
3 | java.fullversion=1.8.0_252-b09
4 | JRE 1.8.0 Windows 8 amd64-64-Bit Compressed References 20200422_667 (JIT enabled, AOT enabled)
5 | OpenJ9 - 05fa2d361
6 | OMR - d4365f371
7 | JCL - 5e623848e9 based on jdk8u252-b09
8 | BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
9 | Framework arguments: -product org.eclipse.epp.package.java.product
10 | Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
11 |
12 | !ENTRY org.eclipse.egit.ui 2 0 2020-11-06 19:52:01.225
13 | !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
14 | user global configuration and to define the default location to store repositories: 'C:\Users\naman'. If this is
15 | not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
16 | EGit might behave differently since they see different configuration options.
17 | This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
18 | !SESSION 2020-11-06 19:52:30.600 -----------------------------------------------
19 | eclipse.buildId=4.14.0.I20191210-0610
20 | java.fullversion=1.8.0_252-b09
21 | JRE 1.8.0 Windows 8 amd64-64-Bit Compressed References 20200422_667 (JIT enabled, AOT enabled)
22 | OpenJ9 - 05fa2d361
23 | OMR - d4365f371
24 | JCL - 5e623848e9 based on jdk8u252-b09
25 | BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
26 | Framework arguments: -product org.eclipse.epp.package.java.product
27 | Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
28 |
29 | !ENTRY org.eclipse.egit.ui 2 0 2020-11-06 19:52:40.899
30 | !MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
31 | user global configuration and to define the default location to store repositories: 'C:\Users\naman'. If this is
32 | not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
33 | EGit might behave differently since they see different configuration options.
34 | This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
35 |
--------------------------------------------------------------------------------
/.metadata/.mylyn/.taskListIndex/segments_1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.metadata/.mylyn/.taskListIndex/segments_1
--------------------------------------------------------------------------------
/.metadata/.mylyn/.taskListIndex/write.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.metadata/.mylyn/.taskListIndex/write.lock
--------------------------------------------------------------------------------
/.metadata/.mylyn/repositories.xml.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.metadata/.mylyn/repositories.xml.zip
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index:
--------------------------------------------------------------------------------
1 | / org.eclipse.jdt.core stateVersionNumber 34
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree:
--------------------------------------------------------------------------------
1 | org.eclipse.jdt.core
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | version=1
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs:
--------------------------------------------------------------------------------
1 | content_assist_proposals_background=255,255,255
2 | content_assist_proposals_foreground=0,0,0
3 | eclipse.preferences.version=1
4 | org.eclipse.jdt.ui.formatterprofiles.version=18
5 | spelling_locale_initialized=true
6 | useAnnotationsPrefPage=true
7 | useQuickDiffPrefPage=true
8 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jsch.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.m2e.discovery.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.m2e.discovery.pref.projects=
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | mylyn.attention.migrated=true
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.monitor.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.tasks.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | migrated.task.repositories.secure.store=true
3 | org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
4 | org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true
5 | org.eclipse.mylyn.tasks.ui.welcome.message=true
6 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs:
--------------------------------------------------------------------------------
1 | PROBLEMS_FILTERS_MIGRATE=true
2 | eclipse.preferences.version=1
3 | platformState=1593809292550
4 | quickStart=false
5 | tipsAndTricks=true
6 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs:
--------------------------------------------------------------------------------
1 | //org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
2 | PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery;
3 | eclipse.preferences.version=1
4 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.python.pydev.prefs:
--------------------------------------------------------------------------------
1 | INTERPRETERS_CHECKED_ONCE=true
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.core/assumedExternalFilesCache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.core/externalFilesCache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat:
--------------------------------------------------------------------------------
1 | JRE_LIB JRE_SRCROOT
2 | JUNIT_HOME JRE_SRC JUNIT_SRC_HOME M2_REPO
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log:
--------------------------------------------------------------------------------
1 | 2020-11-06 19:52:00,859 [Worker-6: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
2 | 2020-11-06 19:52:40,583 [Worker-6: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
3 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.14.0.20191209-1925.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %date [%thread] %-5level %logger{35} - %msg%n
5 |
6 |
7 | OFF
8 |
9 |
10 |
11 |
12 | ${org.eclipse.m2e.log.dir}/0.log
13 |
14 | ${org.eclipse.m2e.log.dir}/%i.log
15 | 1
16 | 10
17 |
18 |
19 | 100MB
20 |
21 |
22 | %date [%thread] %-5level %logger{35} - %msg%n
23 |
24 |
25 |
26 |
27 |
28 | WARN
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.oomph.setup/workspace.setup:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.tips.ide/dialog_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.ui.intro/introstate:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.metadata/.plugins/org.python.pydev/pyunit_tests/test_run_pin_info.txt:
--------------------------------------------------------------------------------
1 | ||
--------------------------------------------------------------------------------
/.metadata/version.ini:
--------------------------------------------------------------------------------
1 | #Fri Nov 06 19:52:33 EST 2020
2 | org.eclipse.core.runtime=2
3 | org.eclipse.platform=4.14.0.v20191210-0610
4 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Quant-paradise
4 |
5 |
6 |
7 |
8 |
9 | org.python.pydev.PyDevBuilder
10 |
11 |
12 |
13 |
14 |
15 | org.python.pydev.pythonNature
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.pydevproject:
--------------------------------------------------------------------------------
1 |
2 |
3 | Default
4 | python interpreter
5 |
6 |
--------------------------------------------------------------------------------
/.readthedocs.yml:
--------------------------------------------------------------------------------
1 | # .readthedocs.yml
2 | # Read the Docs configuration file
3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4 |
5 | # Required
6 | version: 2
7 |
8 | # Build documentation in the docs/ directory with Sphinx
9 | sphinx:
10 | configuration: docs/conf.py
11 |
12 | # Build documentation with MkDocs
13 | #mkdocs:
14 | # configuration: mkdocs.yml
15 |
16 | # Optionally build your docs in additional formats such as PDF
17 | # formats:
18 | # - pdf
19 | python:
20 | version: 3.7
21 | install:
22 | - requirements: docs/requirements.txt
23 |
24 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 |
2 | language: python
3 | python:
4 | - 3.7
5 | cache: pypi
6 |
7 | install:
8 | - pip install flake8 codecov pytest pytest-cov
9 | - pip install scipy
10 | - pip install matplotlib
11 | - pip install numpy
12 |
13 |
14 | script:
15 | - flake8 --ignore=F405,F401,F811,F403,E501
16 | - pytest
17 |
18 | after_success:
19 | - codecov
20 | branches:
21 | only:
22 | - master
23 |
--------------------------------------------------------------------------------
/.travis.yml~:
--------------------------------------------------------------------------------
1 |
2 | language: python
3 | python:
4 | - 3.7
5 | cache: pypi
6 |
7 | install:
8 | - pip install flake8 codecov pytest pytest-cov
9 |
10 |
11 | script:
12 | - flake8 --exclude=*.py
13 | - coverage run -m pytest
14 |
15 | after_success:
16 | - codecov
17 | branches:
18 | only:
19 | - master
20 |
--------------------------------------------------------------------------------
/1.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/1.PNG
--------------------------------------------------------------------------------
/2.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/2.PNG
--------------------------------------------------------------------------------
/3.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/3.PNG
--------------------------------------------------------------------------------
/CIR_first_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/CIR_first_date.png
--------------------------------------------------------------------------------
/CIR_results_comparison.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/CIR_results_comparison.png
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at naman25295@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
75 | For answers to common questions about this code of conduct, see
76 | https://www.contributor-covenant.org/faq
77 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Harsh Mishra
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/CIR_first_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/CIR_first_date.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/CIR_fsecond_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/CIR_fsecond_date.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/CIR_results_comparison.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/CIR_results_comparison.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/Mod6.py:
--------------------------------------------------------------------------------
1 |
2 | from scipy.optimize import minimize
3 |
4 | import matplotlib.pyplot as plt
5 | import numpy as np
6 |
7 |
8 | def zero_coupon(tau, r0, kappa, theta, sigma, model):
9 | ''' Calculates the zero-coupon price based on the Vasicek/CIR model
10 | using the parameters provided
11 |
12 | :param tau:
13 | :type tau:
14 | :param r0:
15 | :type r0:
16 | :param kappa:
17 | :type kappa:
18 | :param theta:
19 | :type theta:
20 | :param sigma:
21 | :type sigma:
22 | :param model:
23 | :type model:
24 | '''
25 | if model == 'Vasicek':
26 | B = (1 - np.exp(-kappa * tau)) / kappa
27 | A = (theta - sigma ** 2 / (2 * kappa ** 2)) * \
28 | (B - tau) - (sigma ** 2 / (4 * kappa)) * B ** 2
29 | elif model == 'CIR':
30 | g = np.sqrt(kappa ** 2 + 2 * sigma ** 2)
31 | tmp = 2 * kappa * theta / sigma ** 2
32 | tmp1 = kappa * tau / 2
33 | tmp2 = g * tau / 2
34 |
35 | A = tmp * np.log(np.exp(tmp1) / (np.cosh(tmp2) + (kappa / g) * np.sinh(tmp2)))
36 | # B = 2. / (kappa + g * (1. / np.tanh(g * tau / 2)))
37 | tanh = np.tanh(g * tau / 2)
38 | B = 2. * tanh / (kappa * tanh + g)
39 | else:
40 | print('zero_coupon: model must be "Vasicek" or "CIR"!')
41 | return -1
42 |
43 | n2 = len(A)
44 | A_ = A
45 | B_ = B
46 |
47 | r_ = np.repeat(r0, n2)
48 |
49 | p = np.exp(A_ - B_ * r_)
50 | return p
51 |
52 |
53 | def swapRates(tau, p, mat):
54 | '''Computes interpolated values for the swap
55 | rates using the parameters provided
56 | :param tau:
57 | :type tau:
58 | :param p:
59 | :type p:
60 | :param mat:
61 | :type mat:
62 | '''
63 | if len(tau) == 1:
64 | return -1
65 | tmax = mat[-1]
66 |
67 | ttemp = np.arange(0.5, tmax + 0.5, 0.5)
68 | ptemp = np.interp(ttemp, tau, p)
69 |
70 | dis = np.cumsum(ptemp)
71 | # dis = dis(:);
72 |
73 | # linear interpolation
74 | pmat = np.interp(mat, tau, p)
75 |
76 | index = (2 * mat).astype(int) - 1
77 | S = 100 * 2 * (1 - pmat) / dis[index]
78 |
79 | return S
80 |
81 |
82 | def liborRates(tau, p, mat):
83 | '''Computes interpolated values of the libor
84 | rates between the given extreme values
85 |
86 | :param tau:
87 | :type tau:
88 | :param p:
89 | :type p:
90 | :param mat:
91 | :type mat:
92 | '''
93 | if len(tau) == 1:
94 | return -1
95 | pmat = np.interp(mat, tau, p)
96 | L = 100 * (1. / pmat - 1) / mat
97 | return L
98 |
99 |
100 | def objFunc1(params, tau, LIBOR, SWAP, model):
101 | '''Utilizes a gradient-based approach to reduce the difference between
102 | the model values and the actual values to tune the parameters
103 |
104 | :param params:
105 | :type params:
106 | :param tau:
107 | :type tau:
108 | :param LIBOR:
109 | :type LIBOR:
110 | :param SWAP:
111 | :type SWAP:
112 | :param model:
113 | :type model:
114 | '''
115 | # unpack params
116 | r0 = params[0]
117 | kappa = params[1]
118 | theta = params[2]
119 | sigma = params[3]
120 | if r0 < 0:
121 | return -1
122 | if sigma < 0:
123 | return -2
124 | p = zero_coupon(tau, r0, kappa, theta, sigma, model)
125 | # now that we have zero-coupon bond prices p(t,T)
126 | # now it is time to calculate MODEL LIBOR rates and SWAP rates
127 | S = swapRates(tau, p, SWAP[:, 0])
128 | L = liborRates(tau, p, LIBOR[:, 0])
129 |
130 | # the goal is to minimize the distance between model rates and market rates
131 | rel1 = (S - SWAP[:, 1]) / SWAP[:, 1]
132 | rel2 = (L - LIBOR[:, 1]) / LIBOR[:, 1]
133 |
134 | # rel1 = (S-SWAP(:,2))
135 | # rel2 = (L-LIBOR(:,2))
136 |
137 | # mae = (sum(abs(rel1))+sum(abs(rel2)))
138 | mae = np.sum(rel1 ** 2) + np.sum(rel2 ** 2)
139 |
140 | return mae
141 |
142 |
143 | def calibration(fun, param_0, tau, LIBOR, SWAP, model):
144 | '''help to change tolerance by setting appropriate parameters
145 |
146 | :param fun:
147 | :type fun:
148 | :param param_0:
149 | :type param_0:
150 | :param tau:
151 | :type tau:
152 | :param LIBOR:
153 | :type LIBOR:
154 | :param SWAP:
155 | :type SWAP:
156 | :param model:
157 | :type model:
158 | '''
159 |
160 | opt = {'maxiter': 1000, 'maxfev': 5e3}
161 | sol = minimize(
162 | objFunc1,
163 | params1,
164 | args=(
165 | tau,
166 | LIBOR,
167 | SWAP,
168 | model),
169 | method='Nelder-Mead',
170 | options=opt)
171 | print(sol.message)
172 | par = np.array(sol.x)
173 | print('parameters = ' + str(par))
174 | r_star = par[0]
175 | kappa_star = par[1]
176 | theta_star = par[2]
177 | sigma_star = par[3]
178 | p = zero_coupon(tau, r_star, kappa_star, theta_star, sigma_star, model)
179 | L = liborRates(tau, p, LIBOR[:, 0])
180 | S = swapRates(tau, p, SWAP[:, 0])
181 | return p, L, S
182 |
183 |
184 | # DATA
185 | LIBOR = np.array([[1 / 12, 1.49078, 2.2795],
186 | [2 / 12, 1.52997, 2.33075],
187 | [3 / 12, 1.60042, 2.43631],
188 | [6 / 12, 1.76769, 2.63525],
189 | [12 / 12, 2.04263, 2.95425]])
190 |
191 | SWAP = np.array([[2, 2.013, 3.0408],
192 | [3, 2.1025, 3.1054],
193 | [5, 2.195, 3.1332],
194 | [7, 2.2585, 3.1562],
195 | [10, 2.3457, 3.199],
196 | [15, 2.4447, 3.2437],
197 | [30, 2.5055, 3.227]])
198 |
199 | # PARAMETERS
200 | # we are going out 30 years every month (1/12)
201 | tau = np.arange(0, 30 + 1 / 12, 1 / 12)
202 |
203 | # initial starting point
204 | # r0 = 0.02 kappa0 = 2 theta0 = 0.5 sigma0 = 0.1
205 | params = np.array([0.02, 1.0, 0.05, 0.3])
206 |
207 | params1 = np.array([0.25, 5, 0.2, 0.1])
208 | params2 = np.array([0.25, 5, 0.2, 0.1])
209 |
210 | # vaseick(2 dates)
211 | model = 'Vasicek'
212 | # first date
213 | print("*********************model:Vasicek************************** first date ******************************************************")
214 |
215 | whichOne = 1
216 | p11, L11, S11 = calibration(objFunc1, params1, tau, LIBOR[:, [
217 | 0, whichOne]], SWAP[:, [0, whichOne]], model)
218 |
219 | print("*********************model:Vasicek************************** second date ******************************************************")
220 | # second date
221 | whichOne = 2
222 | p12, L12, S12 = calibration(objFunc1, params1, tau, LIBOR[:, [
223 | 0, whichOne]], SWAP[:, [0, whichOne]], model)
224 |
225 | # CIR
226 | model = 'CIR'
227 |
228 | # first date
229 | print("*********************model:CIR************************** first date ******************************************************")
230 |
231 | whichOne = 1
232 | p21, L21, S21 = calibration(objFunc1, params1, tau, LIBOR[:, [
233 | 0, whichOne]], SWAP[:, [0, whichOne]], model)
234 |
235 | # second date
236 | print("*********************model:CIR************************** second date ******************************************************")
237 |
238 | whichOne = 2
239 | p22, L22, S22 = calibration(objFunc1, params1, tau, LIBOR[:, [
240 | 0, whichOne]], SWAP[:, [0, whichOne]], model)
241 |
242 | # PLOTS
243 | # VASEICK
244 | # vasicek first date
245 |
246 | whichOne = 1
247 | dataDate = 'Dec 14, 2017'
248 |
249 | plt.figure(figsize=(10, 12))
250 |
251 | plt.subplot(3, 1, 1)
252 | plt.plot(tau, p11)
253 | plt.xlabel('T (years)')
254 | plt.ylabel('P(t,T)')
255 | plt.title('Vasicek results for LIBOR & swap rates on ' + dataDate)
256 |
257 | plt.subplot(3, 1, 2)
258 | plt.plot(12 * LIBOR[:, 0], LIBOR[:, whichOne], '.-')
259 | plt.plot(12 * LIBOR[:, 0], L11, 'o')
260 | plt.xlabel('maturity (months)')
261 | plt.ylabel('LIBOR rates')
262 |
263 | plt.subplot(3, 1, 3)
264 | plt.plot(SWAP[:, 0], SWAP[:, whichOne], '.-')
265 | plt.plot(SWAP[:, 0], S11, 'o')
266 | plt.xlabel('swap term (years)')
267 | plt.ylabel('swap rates')
268 |
269 | plt.show()
270 |
271 | # vasicek second date
272 | whichOne = 2
273 | dataDate = 'Oct 11, 2018'
274 |
275 | plt.figure(figsize=(10, 12))
276 |
277 | plt.subplot(3, 1, 1)
278 | plt.plot(tau, p12)
279 | plt.xlabel('T (years)')
280 | plt.ylabel('P(t,T)')
281 | plt.title('Vasicek results for LIBOR & swap rates on ' + dataDate)
282 |
283 | plt.subplot(3, 1, 2)
284 | plt.plot(12 * LIBOR[:, 0], LIBOR[:, whichOne], '.-')
285 | plt.plot(12 * LIBOR[:, 0], L12, 'o')
286 | plt.xlabel('maturity (months)')
287 | plt.ylabel('LIBOR rates')
288 |
289 | plt.subplot(3, 1, 3)
290 | plt.plot(SWAP[:, 0], SWAP[:, whichOne], '.-')
291 | plt.plot(SWAP[:, 0], S12, 'o')
292 | plt.xlabel('swap term (years)')
293 | plt.ylabel('swap rates')
294 |
295 | plt.show()
296 |
297 | # vasicek comparison
298 | plt.figure()
299 | plt.plot(tau, p11)
300 | plt.plot(tau, p12)
301 | plt.xlabel('T (years)')
302 | plt.ylabel('P(t,T)')
303 | plt.legend(['Dec 14, 2017', 'Oct 11, 2018'])
304 | plt.title('Vasicek results')
305 | plt.show()
306 |
307 | # cir first date
308 | whichOne = 1
309 | dataDate = 'Dec 14, 2017'
310 |
311 | plt.figure(figsize=(10, 12))
312 |
313 | plt.subplot(3, 1, 1)
314 | plt.plot(tau, p21)
315 | plt.xlabel('T (years)')
316 | plt.ylabel('P(t,T)')
317 | plt.title('CIR results for LIBOR & swap rates on ' + dataDate)
318 |
319 | plt.subplot(3, 1, 2)
320 | plt.plot(12 * LIBOR[:, 0], LIBOR[:, whichOne], '.-')
321 | plt.plot(12 * LIBOR[:, 0], L21, 'o')
322 | plt.xlabel('maturity (months)')
323 | plt.ylabel('LIBOR rates')
324 |
325 | plt.subplot(3, 1, 3)
326 | plt.plot(SWAP[:, 0], SWAP[:, whichOne], '.-')
327 | plt.plot(SWAP[:, 0], S21, 'o')
328 | plt.xlabel('swap term (years)')
329 | plt.ylabel('swap rates')
330 |
331 | plt.show()
332 |
333 | # cir second date
334 | whichOne = 2
335 | dataDate = 'Oct 11, 2018'
336 |
337 | plt.figure(figsize=(10, 12))
338 |
339 | plt.subplot(3, 1, 1)
340 | plt.plot(tau, p22)
341 | plt.xlabel('T (years)')
342 | plt.ylabel('P(t,T)')
343 | plt.title('CIR results for LIBOR & swap rates on ' + dataDate)
344 |
345 | plt.subplot(3, 1, 2)
346 | plt.plot(12 * LIBOR[:, 0], LIBOR[:, whichOne], '.-')
347 | plt.plot(12 * LIBOR[:, 0], L22, 'o')
348 | plt.xlabel('maturity (months)')
349 | plt.ylabel('LIBOR rates')
350 |
351 | plt.subplot(3, 1, 3)
352 | plt.plot(SWAP[:, 0], SWAP[:, whichOne], '.-')
353 | plt.plot(SWAP[:, 0], S22, 'o')
354 | plt.xlabel('swap term (years)')
355 | plt.ylabel('swap rates')
356 |
357 | plt.show()
358 |
359 | # cir comparison
360 | plt.figure()
361 | plt.plot(tau, p21)
362 | plt.plot(tau, p22)
363 | plt.xlabel('T (years)')
364 | plt.ylabel('P(t,T)')
365 | plt.legend(['Dec 14, 2017', 'Oct 11, 2018'])
366 | plt.title('CIR results')
367 | plt.show()
368 |
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/VASEICK_first_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/VASEICK_first_date.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/VASEICK_results_comparison.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/VASEICK_results_comparison.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/VASEICK_second_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/VASEICK_second_date.png
--------------------------------------------------------------------------------
/PricingFIP/Vaeick_CIR/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/Vaeick_CIR/__init__.py
--------------------------------------------------------------------------------
/PricingFIP/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/PricingFIP/__init__.py
--------------------------------------------------------------------------------
/PricingFIP/my_tests/tests/test_auth.py:
--------------------------------------------------------------------------------
1 | from os.path import dirname as dir # NOQA
2 | from sys import path # NOQA
3 | from sys import path # NOQA
4 | import os # NOQA
5 | import sys # NOQA
6 | path.append(dir(path[0])[0:dir(path[0]).rfind('\\')] + r'\Vaeick_CIR')
7 | path.append(
8 | '/home/travis/build/harshhacks/quantparadise/PricingFIP/' + 'Vaeick_CIR') # NOQA
9 | from Mod6 import * # NOQA
10 |
11 |
12 | def test_first():
13 |
14 | assert zero_coupon(1, 2, 3, 4, 5, model="abcd") == -1
15 |
16 |
17 | def test_second():
18 |
19 | assert swapRates([1], 2, 3) == -1
20 |
21 |
22 | def test_third():
23 |
24 | assert liborRates([1], 2, 3) == -1
25 |
26 |
27 | def test_fourth():
28 |
29 | assert objFunc1([1, 2, 3, -8], 5, 6, 2, model="abcd") == -2
30 |
31 |
32 | def test_fifth():
33 |
34 | assert objFunc1([-1, 2, 3, 4], 2, 3, 4, model="ac") == -1
35 |
36 |
37 | def test_sixth():
38 |
39 | assert zero_coupon(7, 2, 3, 4, 5, model="zyz") == -1
40 |
41 |
42 | def test_seven():
43 |
44 | assert swapRates([3], 2, 3) == -1
45 |
46 |
47 | def test_eight():
48 |
49 | assert liborRates([4], 2, 3) == -1
50 |
51 |
52 | def test_ninth():
53 |
54 | assert objFunc1([1, 2, 3, -6], 5, 6, 2, model="abcd") == -2
55 |
56 |
57 | def test_tenth():
58 |
59 | assert objFunc1([-2, 2, 3, 4], 2, 3, 4, model="ac") == -1
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Quant Paradise
2 | 
3 | 
4 | 
5 | [](https://travis-ci.org/harshhacks/quantparadise)
6 | [](https://codecov.io/gh/harshhacks/quantparadise)
7 |
8 | [](https://quantparadise.readthedocs.io/en/latest/?badge=latest)
9 |
10 | ## What is it?
11 |
12 | Open Source tool to calibrate spot rates and swap rates using the Vasicek and CIR models.
13 | Link to the Repo is [here](https://github.com/harshhacks/quantparadise "Interest Rates")
14 | Looking to create a utility/tool to assist Portfolio Managers in data aquisition and modeling. Currently plan to create a data acquisition tool to obtain data from popular platforms(preferably Yahoo Finance), and use the CIR and Vasicek models for modeling interest rates and zero-coupon bond prices over different time horizons and calibrate them. Will also provide graphing modules using pre-existing open source tools to analyze the models and generate mock portfolios and calculate and plot the relevant metrics.
15 |
16 | ## Examples/Demonstration:
17 |
18 | The below images show a few images screenshot from our Jupyter file which demonstrate how to use the library. First, we need to initialize the values of the LIBOR rates and Swap rates for any two dates. In the future, these can be read using a CSV file, but for now, we initialize them as numpy arrays below. Each array is comprised of lists.
19 |
20 | For LIBOR rates, the first value of each list represents the time period. For instance, 1/12 would represent the 1 month rate, 12/12 would represent the 1 year rate and so on.
21 | The second value represents the value of that interest rate on the first date, and the third value represents the value of the interest rate for the second date.
22 |
23 | For SWAP rates, the first value represents the duration of the swap rate. The other two values are used in the same way as the LIBOR rates.
24 |
25 |
26 | 
27 |
28 | The image below shows interpolation of rates between the two dates. For this example, we calibrate on half-day periods but these can be adjusted according to need and precision.
29 |
30 | 
31 |
32 | Below we show examples of the graphs obtained for the Vasicek and CIR calibrations for the two dates we picked:
33 | 
34 | 
35 |
36 | Finally, we show a graph showing the price of a zero coupon bond using the above calibration.
37 | 
38 |
39 |
40 |
--------------------------------------------------------------------------------
/README.md~:
--------------------------------------------------------------------------------
1 | # QUANT PARADISE
2 | 
3 |
4 | Link to the repository:[Here](https://github.com/Naman-Goyal/Quant-paradise)
5 | Looking to create a utility/tool to assist Portfolio Managers in data aquisition and modeling. Currently plan to create a data acquisition tool to obtain data from popular platforms(preferably Yahoo Finance), and use the CIR and Vasicek models for modeling interest rates and zero-coupon bond prices over different time horizons and calibrate them. Will also provide graphing modules using pre-existing open source tools to analyze the models and generate mock portfolios and calculate and plot relevant metrics.
6 |
--------------------------------------------------------------------------------
/VASEICK_first_date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/VASEICK_first_date.png
--------------------------------------------------------------------------------
/Vaeick_CIR.rst:
--------------------------------------------------------------------------------
1 | Vaeick\_CIR package
2 | ===================
3 |
4 | Submodules
5 | ----------
6 |
7 | Vaeick\_CIR.ALL5\_TEST module
8 | -----------------------------
9 |
10 | .. automodule:: Vaeick_CIR.ALL5_TEST
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 | Vaeick\_CIR.Mod6 module
16 | -----------------------
17 |
18 | .. automodule:: Vaeick_CIR.Mod6
19 | :members:
20 | :undoc-members:
21 | :show-inheritance:
22 |
23 | Vaeick\_CIR.Module6and7 module
24 | ------------------------------
25 |
26 | .. automodule:: Vaeick_CIR.Module6and7
27 | :members:
28 | :undoc-members:
29 | :show-inheritance:
30 |
31 | Module contents
32 | ---------------
33 |
34 | .. automodule:: Vaeick_CIR
35 | :members:
36 | :undoc-members:
37 | :show-inheritance:
38 |
--------------------------------------------------------------------------------
/coverage.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | C:\Users\asus\quantparadise
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
--------------------------------------------------------------------------------
/docs/Makefile:
--------------------------------------------------------------------------------
1 | # Minimal makefile for Sphinx documentation
2 | #
3 |
4 | # You can set these variables from the command line, and also
5 | # from the environment for the first two.
6 | SPHINXOPTS ?=
7 | SPHINXBUILD ?= sphinx-build
8 | SOURCEDIR = .
9 | BUILDDIR = _build
10 |
11 | # Put it first so that "make" without argument is like "make help".
12 | help:
13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14 |
15 | .PHONY: help Makefile
16 |
17 | # Catch-all target: route all unknown targets to Sphinx using the new
18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19 | %: Makefile
20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
21 |
--------------------------------------------------------------------------------
/docs/PricingFIP.Vaeick_CIR.rst:
--------------------------------------------------------------------------------
1 | PricingFIP.Vaeick\_CIR package
2 | ==============================
3 |
4 | Submodules
5 | ----------
6 |
7 | PricingFIP.Vaeick\_CIR.Mod6 module
8 | ----------------------------------
9 |
10 | .. automodule:: PricingFIP.Vaeick_CIR.Mod6
11 | :members:
12 | :undoc-members:
13 | :show-inheritance:
14 |
15 |
16 | Module contents
17 | ---------------
18 |
19 | .. automodule:: PricingFIP.Vaeick_CIR
20 | :members:
21 | :undoc-members:
22 | :show-inheritance:
23 |
--------------------------------------------------------------------------------
/docs/PricingFIP.rst:
--------------------------------------------------------------------------------
1 | PricingFIP package
2 | ==================
3 |
4 | Subpackages
5 | -----------
6 |
7 | .. toctree::
8 | :maxdepth: 4
9 |
10 | PricingFIP.Vaeick_CIR
11 |
12 | Module contents
13 | ---------------
14 |
15 | .. automodule:: PricingFIP
16 | :members:
17 | :undoc-members:
18 | :show-inheritance:
19 |
--------------------------------------------------------------------------------
/docs/_build/doctrees/environment.pickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/doctrees/environment.pickle
--------------------------------------------------------------------------------
/docs/_build/doctrees/index.doctree:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/doctrees/index.doctree
--------------------------------------------------------------------------------
/docs/_build/html/.buildinfo:
--------------------------------------------------------------------------------
1 | # Sphinx build info version 1
2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3 | config: 00b35fe9c4dbd642a28cf7b7af0df629
4 | tags: 645f666f9bcd5a90fca523b33c5a78b7
5 |
--------------------------------------------------------------------------------
/docs/_build/html/_sources/index.rst.txt:
--------------------------------------------------------------------------------
1 | .. quantparadise documentation master file, created by
2 | sphinx-quickstart on Sat Nov 21 18:32:23 2020.
3 | You can adapt this file completely to your liking, but it should at least
4 | contain the root `toctree` directive.
5 |
6 | Welcome to quantparadise's documentation!
7 | =========================================
8 |
9 | .. toctree::
10 | :maxdepth: 2
11 | :caption: Contents:
12 |
13 | modules
14 |
15 | Indices and tables
16 | ==================
17 |
18 | * :ref:`genindex`
19 | * :ref:`modindex`
20 | * :ref:`search`
21 |
--------------------------------------------------------------------------------
/docs/_build/html/_static/basic.css:
--------------------------------------------------------------------------------
1 | /*
2 | * basic.css
3 | * ~~~~~~~~~
4 | *
5 | * Sphinx stylesheet -- basic theme.
6 | *
7 | * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | /* -- main layout ----------------------------------------------------------- */
13 |
14 | div.clearer {
15 | clear: both;
16 | }
17 |
18 | div.section::after {
19 | display: block;
20 | content: '';
21 | clear: left;
22 | }
23 |
24 | /* -- relbar ---------------------------------------------------------------- */
25 |
26 | div.related {
27 | width: 100%;
28 | font-size: 90%;
29 | }
30 |
31 | div.related h3 {
32 | display: none;
33 | }
34 |
35 | div.related ul {
36 | margin: 0;
37 | padding: 0 0 0 10px;
38 | list-style: none;
39 | }
40 |
41 | div.related li {
42 | display: inline;
43 | }
44 |
45 | div.related li.right {
46 | float: right;
47 | margin-right: 5px;
48 | }
49 |
50 | /* -- sidebar --------------------------------------------------------------- */
51 |
52 | div.sphinxsidebarwrapper {
53 | padding: 10px 5px 0 10px;
54 | }
55 |
56 | div.sphinxsidebar {
57 | float: left;
58 | width: 230px;
59 | margin-left: -100%;
60 | font-size: 90%;
61 | word-wrap: break-word;
62 | overflow-wrap : break-word;
63 | }
64 |
65 | div.sphinxsidebar ul {
66 | list-style: none;
67 | }
68 |
69 | div.sphinxsidebar ul ul,
70 | div.sphinxsidebar ul.want-points {
71 | margin-left: 20px;
72 | list-style: square;
73 | }
74 |
75 | div.sphinxsidebar ul ul {
76 | margin-top: 0;
77 | margin-bottom: 0;
78 | }
79 |
80 | div.sphinxsidebar form {
81 | margin-top: 10px;
82 | }
83 |
84 | div.sphinxsidebar input {
85 | border: 1px solid #98dbcc;
86 | font-family: sans-serif;
87 | font-size: 1em;
88 | }
89 |
90 | div.sphinxsidebar #searchbox form.search {
91 | overflow: hidden;
92 | }
93 |
94 | div.sphinxsidebar #searchbox input[type="text"] {
95 | float: left;
96 | width: 80%;
97 | padding: 0.25em;
98 | box-sizing: border-box;
99 | }
100 |
101 | div.sphinxsidebar #searchbox input[type="submit"] {
102 | float: left;
103 | width: 20%;
104 | border-left: none;
105 | padding: 0.25em;
106 | box-sizing: border-box;
107 | }
108 |
109 |
110 | img {
111 | border: 0;
112 | max-width: 100%;
113 | }
114 |
115 | /* -- search page ----------------------------------------------------------- */
116 |
117 | ul.search {
118 | margin: 10px 0 0 20px;
119 | padding: 0;
120 | }
121 |
122 | ul.search li {
123 | padding: 5px 0 5px 20px;
124 | background-image: url(file.png);
125 | background-repeat: no-repeat;
126 | background-position: 0 7px;
127 | }
128 |
129 | ul.search li a {
130 | font-weight: bold;
131 | }
132 |
133 | ul.search li div.context {
134 | color: #888;
135 | margin: 2px 0 0 30px;
136 | text-align: left;
137 | }
138 |
139 | ul.keywordmatches li.goodmatch a {
140 | font-weight: bold;
141 | }
142 |
143 | /* -- index page ------------------------------------------------------------ */
144 |
145 | table.contentstable {
146 | width: 90%;
147 | margin-left: auto;
148 | margin-right: auto;
149 | }
150 |
151 | table.contentstable p.biglink {
152 | line-height: 150%;
153 | }
154 |
155 | a.biglink {
156 | font-size: 1.3em;
157 | }
158 |
159 | span.linkdescr {
160 | font-style: italic;
161 | padding-top: 5px;
162 | font-size: 90%;
163 | }
164 |
165 | /* -- general index --------------------------------------------------------- */
166 |
167 | table.indextable {
168 | width: 100%;
169 | }
170 |
171 | table.indextable td {
172 | text-align: left;
173 | vertical-align: top;
174 | }
175 |
176 | table.indextable ul {
177 | margin-top: 0;
178 | margin-bottom: 0;
179 | list-style-type: none;
180 | }
181 |
182 | table.indextable > tbody > tr > td > ul {
183 | padding-left: 0em;
184 | }
185 |
186 | table.indextable tr.pcap {
187 | height: 10px;
188 | }
189 |
190 | table.indextable tr.cap {
191 | margin-top: 10px;
192 | background-color: #f2f2f2;
193 | }
194 |
195 | img.toggler {
196 | margin-right: 3px;
197 | margin-top: 3px;
198 | cursor: pointer;
199 | }
200 |
201 | div.modindex-jumpbox {
202 | border-top: 1px solid #ddd;
203 | border-bottom: 1px solid #ddd;
204 | margin: 1em 0 1em 0;
205 | padding: 0.4em;
206 | }
207 |
208 | div.genindex-jumpbox {
209 | border-top: 1px solid #ddd;
210 | border-bottom: 1px solid #ddd;
211 | margin: 1em 0 1em 0;
212 | padding: 0.4em;
213 | }
214 |
215 | /* -- domain module index --------------------------------------------------- */
216 |
217 | table.modindextable td {
218 | padding: 2px;
219 | border-collapse: collapse;
220 | }
221 |
222 | /* -- general body styles --------------------------------------------------- */
223 |
224 | div.body {
225 | min-width: 450px;
226 | max-width: 800px;
227 | }
228 |
229 | div.body p, div.body dd, div.body li, div.body blockquote {
230 | -moz-hyphens: auto;
231 | -ms-hyphens: auto;
232 | -webkit-hyphens: auto;
233 | hyphens: auto;
234 | }
235 |
236 | a.headerlink {
237 | visibility: hidden;
238 | }
239 |
240 | a.brackets:before,
241 | span.brackets > a:before{
242 | content: "[";
243 | }
244 |
245 | a.brackets:after,
246 | span.brackets > a:after {
247 | content: "]";
248 | }
249 |
250 | h1:hover > a.headerlink,
251 | h2:hover > a.headerlink,
252 | h3:hover > a.headerlink,
253 | h4:hover > a.headerlink,
254 | h5:hover > a.headerlink,
255 | h6:hover > a.headerlink,
256 | dt:hover > a.headerlink,
257 | caption:hover > a.headerlink,
258 | p.caption:hover > a.headerlink,
259 | div.code-block-caption:hover > a.headerlink {
260 | visibility: visible;
261 | }
262 |
263 | div.body p.caption {
264 | text-align: inherit;
265 | }
266 |
267 | div.body td {
268 | text-align: left;
269 | }
270 |
271 | .first {
272 | margin-top: 0 !important;
273 | }
274 |
275 | p.rubric {
276 | margin-top: 30px;
277 | font-weight: bold;
278 | }
279 |
280 | img.align-left, .figure.align-left, object.align-left {
281 | clear: left;
282 | float: left;
283 | margin-right: 1em;
284 | }
285 |
286 | img.align-right, .figure.align-right, object.align-right {
287 | clear: right;
288 | float: right;
289 | margin-left: 1em;
290 | }
291 |
292 | img.align-center, .figure.align-center, object.align-center {
293 | display: block;
294 | margin-left: auto;
295 | margin-right: auto;
296 | }
297 |
298 | img.align-default, .figure.align-default {
299 | display: block;
300 | margin-left: auto;
301 | margin-right: auto;
302 | }
303 |
304 | .align-left {
305 | text-align: left;
306 | }
307 |
308 | .align-center {
309 | text-align: center;
310 | }
311 |
312 | .align-default {
313 | text-align: center;
314 | }
315 |
316 | .align-right {
317 | text-align: right;
318 | }
319 |
320 | /* -- sidebars -------------------------------------------------------------- */
321 |
322 | div.sidebar {
323 | margin: 0 0 0.5em 1em;
324 | border: 1px solid #ddb;
325 | padding: 7px;
326 | background-color: #ffe;
327 | width: 40%;
328 | float: right;
329 | clear: right;
330 | overflow-x: auto;
331 | }
332 |
333 | p.sidebar-title {
334 | font-weight: bold;
335 | }
336 |
337 | div.admonition, div.topic, blockquote {
338 | clear: left;
339 | }
340 |
341 | /* -- topics ---------------------------------------------------------------- */
342 |
343 | div.topic {
344 | border: 1px solid #ccc;
345 | padding: 7px;
346 | margin: 10px 0 10px 0;
347 | }
348 |
349 | p.topic-title {
350 | font-size: 1.1em;
351 | font-weight: bold;
352 | margin-top: 10px;
353 | }
354 |
355 | /* -- admonitions ----------------------------------------------------------- */
356 |
357 | div.admonition {
358 | margin-top: 10px;
359 | margin-bottom: 10px;
360 | padding: 7px;
361 | }
362 |
363 | div.admonition dt {
364 | font-weight: bold;
365 | }
366 |
367 | p.admonition-title {
368 | margin: 0px 10px 5px 0px;
369 | font-weight: bold;
370 | }
371 |
372 | div.body p.centered {
373 | text-align: center;
374 | margin-top: 25px;
375 | }
376 |
377 | /* -- content of sidebars/topics/admonitions -------------------------------- */
378 |
379 | div.sidebar > :last-child,
380 | div.topic > :last-child,
381 | div.admonition > :last-child {
382 | margin-bottom: 0;
383 | }
384 |
385 | div.sidebar::after,
386 | div.topic::after,
387 | div.admonition::after,
388 | blockquote::after {
389 | display: block;
390 | content: '';
391 | clear: both;
392 | }
393 |
394 | /* -- tables ---------------------------------------------------------------- */
395 |
396 | table.docutils {
397 | margin-top: 10px;
398 | margin-bottom: 10px;
399 | border: 0;
400 | border-collapse: collapse;
401 | }
402 |
403 | table.align-center {
404 | margin-left: auto;
405 | margin-right: auto;
406 | }
407 |
408 | table.align-default {
409 | margin-left: auto;
410 | margin-right: auto;
411 | }
412 |
413 | table caption span.caption-number {
414 | font-style: italic;
415 | }
416 |
417 | table caption span.caption-text {
418 | }
419 |
420 | table.docutils td, table.docutils th {
421 | padding: 1px 8px 1px 5px;
422 | border-top: 0;
423 | border-left: 0;
424 | border-right: 0;
425 | border-bottom: 1px solid #aaa;
426 | }
427 |
428 | table.footnote td, table.footnote th {
429 | border: 0 !important;
430 | }
431 |
432 | th {
433 | text-align: left;
434 | padding-right: 5px;
435 | }
436 |
437 | table.citation {
438 | border-left: solid 1px gray;
439 | margin-left: 1px;
440 | }
441 |
442 | table.citation td {
443 | border-bottom: none;
444 | }
445 |
446 | th > :first-child,
447 | td > :first-child {
448 | margin-top: 0px;
449 | }
450 |
451 | th > :last-child,
452 | td > :last-child {
453 | margin-bottom: 0px;
454 | }
455 |
456 | /* -- figures --------------------------------------------------------------- */
457 |
458 | div.figure {
459 | margin: 0.5em;
460 | padding: 0.5em;
461 | }
462 |
463 | div.figure p.caption {
464 | padding: 0.3em;
465 | }
466 |
467 | div.figure p.caption span.caption-number {
468 | font-style: italic;
469 | }
470 |
471 | div.figure p.caption span.caption-text {
472 | }
473 |
474 | /* -- field list styles ----------------------------------------------------- */
475 |
476 | table.field-list td, table.field-list th {
477 | border: 0 !important;
478 | }
479 |
480 | .field-list ul {
481 | margin: 0;
482 | padding-left: 1em;
483 | }
484 |
485 | .field-list p {
486 | margin: 0;
487 | }
488 |
489 | .field-name {
490 | -moz-hyphens: manual;
491 | -ms-hyphens: manual;
492 | -webkit-hyphens: manual;
493 | hyphens: manual;
494 | }
495 |
496 | /* -- hlist styles ---------------------------------------------------------- */
497 |
498 | table.hlist {
499 | margin: 1em 0;
500 | }
501 |
502 | table.hlist td {
503 | vertical-align: top;
504 | }
505 |
506 |
507 | /* -- other body styles ----------------------------------------------------- */
508 |
509 | ol.arabic {
510 | list-style: decimal;
511 | }
512 |
513 | ol.loweralpha {
514 | list-style: lower-alpha;
515 | }
516 |
517 | ol.upperalpha {
518 | list-style: upper-alpha;
519 | }
520 |
521 | ol.lowerroman {
522 | list-style: lower-roman;
523 | }
524 |
525 | ol.upperroman {
526 | list-style: upper-roman;
527 | }
528 |
529 | :not(li) > ol > li:first-child > :first-child,
530 | :not(li) > ul > li:first-child > :first-child {
531 | margin-top: 0px;
532 | }
533 |
534 | :not(li) > ol > li:last-child > :last-child,
535 | :not(li) > ul > li:last-child > :last-child {
536 | margin-bottom: 0px;
537 | }
538 |
539 | ol.simple ol p,
540 | ol.simple ul p,
541 | ul.simple ol p,
542 | ul.simple ul p {
543 | margin-top: 0;
544 | }
545 |
546 | ol.simple > li:not(:first-child) > p,
547 | ul.simple > li:not(:first-child) > p {
548 | margin-top: 0;
549 | }
550 |
551 | ol.simple p,
552 | ul.simple p {
553 | margin-bottom: 0;
554 | }
555 |
556 | dl.footnote > dt,
557 | dl.citation > dt {
558 | float: left;
559 | margin-right: 0.5em;
560 | }
561 |
562 | dl.footnote > dd,
563 | dl.citation > dd {
564 | margin-bottom: 0em;
565 | }
566 |
567 | dl.footnote > dd:after,
568 | dl.citation > dd:after {
569 | content: "";
570 | clear: both;
571 | }
572 |
573 | dl.field-list {
574 | display: grid;
575 | grid-template-columns: fit-content(30%) auto;
576 | }
577 |
578 | dl.field-list > dt {
579 | font-weight: bold;
580 | word-break: break-word;
581 | padding-left: 0.5em;
582 | padding-right: 5px;
583 | }
584 |
585 | dl.field-list > dt:after {
586 | content: ":";
587 | }
588 |
589 | dl.field-list > dd {
590 | padding-left: 0.5em;
591 | margin-top: 0em;
592 | margin-left: 0em;
593 | margin-bottom: 0em;
594 | }
595 |
596 | dl {
597 | margin-bottom: 15px;
598 | }
599 |
600 | dd > :first-child {
601 | margin-top: 0px;
602 | }
603 |
604 | dd ul, dd table {
605 | margin-bottom: 10px;
606 | }
607 |
608 | dd {
609 | margin-top: 3px;
610 | margin-bottom: 10px;
611 | margin-left: 30px;
612 | }
613 |
614 | dl > dd:last-child,
615 | dl > dd:last-child > :last-child {
616 | margin-bottom: 0;
617 | }
618 |
619 | dt:target, span.highlighted {
620 | background-color: #fbe54e;
621 | }
622 |
623 | rect.highlighted {
624 | fill: #fbe54e;
625 | }
626 |
627 | dl.glossary dt {
628 | font-weight: bold;
629 | font-size: 1.1em;
630 | }
631 |
632 | .optional {
633 | font-size: 1.3em;
634 | }
635 |
636 | .sig-paren {
637 | font-size: larger;
638 | }
639 |
640 | .versionmodified {
641 | font-style: italic;
642 | }
643 |
644 | .system-message {
645 | background-color: #fda;
646 | padding: 5px;
647 | border: 3px solid red;
648 | }
649 |
650 | .footnote:target {
651 | background-color: #ffa;
652 | }
653 |
654 | .line-block {
655 | display: block;
656 | margin-top: 1em;
657 | margin-bottom: 1em;
658 | }
659 |
660 | .line-block .line-block {
661 | margin-top: 0;
662 | margin-bottom: 0;
663 | margin-left: 1.5em;
664 | }
665 |
666 | .guilabel, .menuselection {
667 | font-family: sans-serif;
668 | }
669 |
670 | .accelerator {
671 | text-decoration: underline;
672 | }
673 |
674 | .classifier {
675 | font-style: oblique;
676 | }
677 |
678 | .classifier:before {
679 | font-style: normal;
680 | margin: 0.5em;
681 | content: ":";
682 | }
683 |
684 | abbr, acronym {
685 | border-bottom: dotted 1px;
686 | cursor: help;
687 | }
688 |
689 | /* -- code displays --------------------------------------------------------- */
690 |
691 | pre {
692 | overflow: auto;
693 | overflow-y: hidden; /* fixes display issues on Chrome browsers */
694 | }
695 |
696 | pre, div[class|="highlight"] {
697 | clear: both;
698 | }
699 |
700 | span.pre {
701 | -moz-hyphens: none;
702 | -ms-hyphens: none;
703 | -webkit-hyphens: none;
704 | hyphens: none;
705 | }
706 |
707 | div[class^="highlight-"] {
708 | margin: 1em 0;
709 | }
710 |
711 | td.linenos pre {
712 | border: 0;
713 | background-color: transparent;
714 | color: #aaa;
715 | }
716 |
717 | table.highlighttable {
718 | display: block;
719 | }
720 |
721 | table.highlighttable tbody {
722 | display: block;
723 | }
724 |
725 | table.highlighttable tr {
726 | display: flex;
727 | }
728 |
729 | table.highlighttable td {
730 | margin: 0;
731 | padding: 0;
732 | }
733 |
734 | table.highlighttable td.linenos {
735 | padding-right: 0.5em;
736 | }
737 |
738 | table.highlighttable td.code {
739 | flex: 1;
740 | overflow: hidden;
741 | }
742 |
743 | .highlight .hll {
744 | display: block;
745 | }
746 |
747 | div.highlight pre,
748 | table.highlighttable pre {
749 | margin: 0;
750 | }
751 |
752 | div.code-block-caption + div {
753 | margin-top: 0;
754 | }
755 |
756 | div.code-block-caption {
757 | margin-top: 1em;
758 | padding: 2px 5px;
759 | font-size: small;
760 | }
761 |
762 | div.code-block-caption code {
763 | background-color: transparent;
764 | }
765 |
766 | table.highlighttable td.linenos,
767 | div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */
768 | user-select: none;
769 | }
770 |
771 | div.code-block-caption span.caption-number {
772 | padding: 0.1em 0.3em;
773 | font-style: italic;
774 | }
775 |
776 | div.code-block-caption span.caption-text {
777 | }
778 |
779 | div.literal-block-wrapper {
780 | margin: 1em 0;
781 | }
782 |
783 | code.descname {
784 | background-color: transparent;
785 | font-weight: bold;
786 | font-size: 1.2em;
787 | }
788 |
789 | code.descclassname {
790 | background-color: transparent;
791 | }
792 |
793 | code.xref, a code {
794 | background-color: transparent;
795 | font-weight: bold;
796 | }
797 |
798 | h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
799 | background-color: transparent;
800 | }
801 |
802 | .viewcode-link {
803 | float: right;
804 | }
805 |
806 | .viewcode-back {
807 | float: right;
808 | font-family: sans-serif;
809 | }
810 |
811 | div.viewcode-block:target {
812 | margin: -1px -10px;
813 | padding: 0 10px;
814 | }
815 |
816 | /* -- math display ---------------------------------------------------------- */
817 |
818 | img.math {
819 | vertical-align: middle;
820 | }
821 |
822 | div.body div.math p {
823 | text-align: center;
824 | }
825 |
826 | span.eqno {
827 | float: right;
828 | }
829 |
830 | span.eqno a.headerlink {
831 | position: absolute;
832 | z-index: 1;
833 | }
834 |
835 | div.math:hover a.headerlink {
836 | visibility: visible;
837 | }
838 |
839 | /* -- printout stylesheet --------------------------------------------------- */
840 |
841 | @media print {
842 | div.document,
843 | div.documentwrapper,
844 | div.bodywrapper {
845 | margin: 0 !important;
846 | width: 100%;
847 | }
848 |
849 | div.sphinxsidebar,
850 | div.related,
851 | div.footer,
852 | #top-link {
853 | display: none;
854 | }
855 | }
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/badge_only.css:
--------------------------------------------------------------------------------
1 | .fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-bold-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-bold-italic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-normal-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-normal-italic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-normal.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-normal.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/css/fonts/lato-normal.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/css/fonts/lato-normal.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/doctools.js:
--------------------------------------------------------------------------------
1 | /*
2 | * doctools.js
3 | * ~~~~~~~~~~~
4 | *
5 | * Sphinx JavaScript utilities for all documentation.
6 | *
7 | * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | /**
13 | * select a different prefix for underscore
14 | */
15 | $u = _.noConflict();
16 |
17 | /**
18 | * make the code below compatible with browsers without
19 | * an installed firebug like debugger
20 | if (!window.console || !console.firebug) {
21 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
22 | "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
23 | "profile", "profileEnd"];
24 | window.console = {};
25 | for (var i = 0; i < names.length; ++i)
26 | window.console[names[i]] = function() {};
27 | }
28 | */
29 |
30 | /**
31 | * small helper function to urldecode strings
32 | */
33 | jQuery.urldecode = function(x) {
34 | return decodeURIComponent(x).replace(/\+/g, ' ');
35 | };
36 |
37 | /**
38 | * small helper function to urlencode strings
39 | */
40 | jQuery.urlencode = encodeURIComponent;
41 |
42 | /**
43 | * This function returns the parsed url parameters of the
44 | * current request. Multiple values per key are supported,
45 | * it will always return arrays of strings for the value parts.
46 | */
47 | jQuery.getQueryParameters = function(s) {
48 | if (typeof s === 'undefined')
49 | s = document.location.search;
50 | var parts = s.substr(s.indexOf('?') + 1).split('&');
51 | var result = {};
52 | for (var i = 0; i < parts.length; i++) {
53 | var tmp = parts[i].split('=', 2);
54 | var key = jQuery.urldecode(tmp[0]);
55 | var value = jQuery.urldecode(tmp[1]);
56 | if (key in result)
57 | result[key].push(value);
58 | else
59 | result[key] = [value];
60 | }
61 | return result;
62 | };
63 |
64 | /**
65 | * highlight a given string on a jquery object by wrapping it in
66 | * span elements with the given class name.
67 | */
68 | jQuery.fn.highlightText = function(text, className) {
69 | function highlight(node, addItems) {
70 | if (node.nodeType === 3) {
71 | var val = node.nodeValue;
72 | var pos = val.toLowerCase().indexOf(text);
73 | if (pos >= 0 &&
74 | !jQuery(node.parentNode).hasClass(className) &&
75 | !jQuery(node.parentNode).hasClass("nohighlight")) {
76 | var span;
77 | var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg");
78 | if (isInSVG) {
79 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
80 | } else {
81 | span = document.createElement("span");
82 | span.className = className;
83 | }
84 | span.appendChild(document.createTextNode(val.substr(pos, text.length)));
85 | node.parentNode.insertBefore(span, node.parentNode.insertBefore(
86 | document.createTextNode(val.substr(pos + text.length)),
87 | node.nextSibling));
88 | node.nodeValue = val.substr(0, pos);
89 | if (isInSVG) {
90 | var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
91 | var bbox = node.parentElement.getBBox();
92 | rect.x.baseVal.value = bbox.x;
93 | rect.y.baseVal.value = bbox.y;
94 | rect.width.baseVal.value = bbox.width;
95 | rect.height.baseVal.value = bbox.height;
96 | rect.setAttribute('class', className);
97 | addItems.push({
98 | "parent": node.parentNode,
99 | "target": rect});
100 | }
101 | }
102 | }
103 | else if (!jQuery(node).is("button, select, textarea")) {
104 | jQuery.each(node.childNodes, function() {
105 | highlight(this, addItems);
106 | });
107 | }
108 | }
109 | var addItems = [];
110 | var result = this.each(function() {
111 | highlight(this, addItems);
112 | });
113 | for (var i = 0; i < addItems.length; ++i) {
114 | jQuery(addItems[i].parent).before(addItems[i].target);
115 | }
116 | return result;
117 | };
118 |
119 | /*
120 | * backward compatibility for jQuery.browser
121 | * This will be supported until firefox bug is fixed.
122 | */
123 | if (!jQuery.browser) {
124 | jQuery.uaMatch = function(ua) {
125 | ua = ua.toLowerCase();
126 |
127 | var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
128 | /(webkit)[ \/]([\w.]+)/.exec(ua) ||
129 | /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
130 | /(msie) ([\w.]+)/.exec(ua) ||
131 | ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
132 | [];
133 |
134 | return {
135 | browser: match[ 1 ] || "",
136 | version: match[ 2 ] || "0"
137 | };
138 | };
139 | jQuery.browser = {};
140 | jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
141 | }
142 |
143 | /**
144 | * Small JavaScript module for the documentation.
145 | */
146 | var Documentation = {
147 |
148 | init : function() {
149 | this.fixFirefoxAnchorBug();
150 | this.highlightSearchWords();
151 | this.initIndexTable();
152 | if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
153 | this.initOnKeyListeners();
154 | }
155 | },
156 |
157 | /**
158 | * i18n support
159 | */
160 | TRANSLATIONS : {},
161 | PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; },
162 | LOCALE : 'unknown',
163 |
164 | // gettext and ngettext don't access this so that the functions
165 | // can safely bound to a different name (_ = Documentation.gettext)
166 | gettext : function(string) {
167 | var translated = Documentation.TRANSLATIONS[string];
168 | if (typeof translated === 'undefined')
169 | return string;
170 | return (typeof translated === 'string') ? translated : translated[0];
171 | },
172 |
173 | ngettext : function(singular, plural, n) {
174 | var translated = Documentation.TRANSLATIONS[singular];
175 | if (typeof translated === 'undefined')
176 | return (n == 1) ? singular : plural;
177 | return translated[Documentation.PLURALEXPR(n)];
178 | },
179 |
180 | addTranslations : function(catalog) {
181 | for (var key in catalog.messages)
182 | this.TRANSLATIONS[key] = catalog.messages[key];
183 | this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
184 | this.LOCALE = catalog.locale;
185 | },
186 |
187 | /**
188 | * add context elements like header anchor links
189 | */
190 | addContextElements : function() {
191 | $('div[id] > :header:first').each(function() {
192 | $('').
193 | attr('href', '#' + this.id).
194 | attr('title', _('Permalink to this headline')).
195 | appendTo(this);
196 | });
197 | $('dt[id]').each(function() {
198 | $('').
199 | attr('href', '#' + this.id).
200 | attr('title', _('Permalink to this definition')).
201 | appendTo(this);
202 | });
203 | },
204 |
205 | /**
206 | * workaround a firefox stupidity
207 | * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
208 | */
209 | fixFirefoxAnchorBug : function() {
210 | if (document.location.hash && $.browser.mozilla)
211 | window.setTimeout(function() {
212 | document.location.href += '';
213 | }, 10);
214 | },
215 |
216 | /**
217 | * highlight the search words provided in the url in the text
218 | */
219 | highlightSearchWords : function() {
220 | var params = $.getQueryParameters();
221 | var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
222 | if (terms.length) {
223 | var body = $('div.body');
224 | if (!body.length) {
225 | body = $('body');
226 | }
227 | window.setTimeout(function() {
228 | $.each(terms, function() {
229 | body.highlightText(this.toLowerCase(), 'highlighted');
230 | });
231 | }, 10);
232 | $('
' + _('Hide Search Matches') + '
')
234 | .appendTo($('#searchbox'));
235 | }
236 | },
237 |
238 | /**
239 | * init the domain index toggle buttons
240 | */
241 | initIndexTable : function() {
242 | var togglers = $('img.toggler').click(function() {
243 | var src = $(this).attr('src');
244 | var idnum = $(this).attr('id').substr(7);
245 | $('tr.cg-' + idnum).toggle();
246 | if (src.substr(-9) === 'minus.png')
247 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
248 | else
249 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
250 | }).css('display', '');
251 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
252 | togglers.click();
253 | }
254 | },
255 |
256 | /**
257 | * helper function to hide the search marks again
258 | */
259 | hideSearchWords : function() {
260 | $('#searchbox .highlight-link').fadeOut(300);
261 | $('span.highlighted').removeClass('highlighted');
262 | },
263 |
264 | /**
265 | * make the url absolute
266 | */
267 | makeURL : function(relativeURL) {
268 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
269 | },
270 |
271 | /**
272 | * get the current relative url
273 | */
274 | getCurrentURL : function() {
275 | var path = document.location.pathname;
276 | var parts = path.split(/\//);
277 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
278 | if (this === '..')
279 | parts.pop();
280 | });
281 | var url = parts.join('/');
282 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
283 | },
284 |
285 | initOnKeyListeners: function() {
286 | $(document).keydown(function(event) {
287 | var activeElementType = document.activeElement.tagName;
288 | // don't navigate when in search box or textarea
289 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
290 | && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {
291 | switch (event.keyCode) {
292 | case 37: // left
293 | var prevHref = $('link[rel="prev"]').prop('href');
294 | if (prevHref) {
295 | window.location.href = prevHref;
296 | return false;
297 | }
298 | case 39: // right
299 | var nextHref = $('link[rel="next"]').prop('href');
300 | if (nextHref) {
301 | window.location.href = nextHref;
302 | return false;
303 | }
304 | }
305 | }
306 | });
307 | }
308 | };
309 |
310 | // quick alias for translations
311 | _ = Documentation.gettext;
312 |
313 | $(document).ready(function() {
314 | Documentation.init();
315 | });
316 |
--------------------------------------------------------------------------------
/docs/_build/html/_static/documentation_options.js:
--------------------------------------------------------------------------------
1 | var DOCUMENTATION_OPTIONS = {
2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3 | VERSION: '0.0.1',
4 | LANGUAGE: 'None',
5 | COLLAPSE_INDEX: false,
6 | BUILDER: 'html',
7 | FILE_SUFFIX: '.html',
8 | LINK_SUFFIX: '.html',
9 | HAS_SOURCE: true,
10 | SOURCELINK_SUFFIX: '.txt',
11 | NAVIGATION_WITH_KEYS: false
12 | };
--------------------------------------------------------------------------------
/docs/_build/html/_static/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/file.png
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bold.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bold.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-italic.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-italic.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-italic.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-italic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-italic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-regular.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-regular.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-regular.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Lato/lato-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Lato/lato-regular.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Light.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Light.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Regular.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Regular.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Thin.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/Roboto-Slab-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/Roboto-Slab-Thin.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-bold-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-bold-italic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-bold-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-bold-italic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-bold.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-bold.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-normal-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-normal-italic.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-normal-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-normal-italic.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-normal.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-normal.woff
--------------------------------------------------------------------------------
/docs/_build/html/_static/fonts/lato-normal.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/fonts/lato-normal.woff2
--------------------------------------------------------------------------------
/docs/_build/html/_static/js/badge_only.js:
--------------------------------------------------------------------------------
1 | !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}});
--------------------------------------------------------------------------------
/docs/_build/html/_static/js/html5shiv-printshiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/docs/_build/html/_static/js/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
--------------------------------------------------------------------------------
/docs/_build/html/_static/js/modernizr.min.js:
--------------------------------------------------------------------------------
1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD
2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
3 | */
4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f"),n("table.docutils.footnote").wrap(""),n("table.docutils.citation").wrap(""),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}t.length>0&&($(".wy-menu-vertical .current").removeClass("current"),t.addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l1").parent().addClass("current"),t.closest("li.toctree-l1").addClass("current"),t.closest("li.toctree-l2").addClass("current"),t.closest("li.toctree-l3").addClass("current"),t.closest("li.toctree-l4").addClass("current"),t.closest("li.toctree-l5").addClass("current"),t[0].scrollIntoView())}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current"),e.siblings().find("li.current").removeClass("current"),e.find("> ul li.current").removeClass("current"),e.toggleClass("current")}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0
62 | var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
63 | var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
64 | var s_v = "^(" + C + ")?" + v; // vowel in stem
65 |
66 | this.stemWord = function (w) {
67 | var stem;
68 | var suffix;
69 | var firstch;
70 | var origword = w;
71 |
72 | if (w.length < 3)
73 | return w;
74 |
75 | var re;
76 | var re2;
77 | var re3;
78 | var re4;
79 |
80 | firstch = w.substr(0,1);
81 | if (firstch == "y")
82 | w = firstch.toUpperCase() + w.substr(1);
83 |
84 | // Step 1a
85 | re = /^(.+?)(ss|i)es$/;
86 | re2 = /^(.+?)([^s])s$/;
87 |
88 | if (re.test(w))
89 | w = w.replace(re,"$1$2");
90 | else if (re2.test(w))
91 | w = w.replace(re2,"$1$2");
92 |
93 | // Step 1b
94 | re = /^(.+?)eed$/;
95 | re2 = /^(.+?)(ed|ing)$/;
96 | if (re.test(w)) {
97 | var fp = re.exec(w);
98 | re = new RegExp(mgr0);
99 | if (re.test(fp[1])) {
100 | re = /.$/;
101 | w = w.replace(re,"");
102 | }
103 | }
104 | else if (re2.test(w)) {
105 | var fp = re2.exec(w);
106 | stem = fp[1];
107 | re2 = new RegExp(s_v);
108 | if (re2.test(stem)) {
109 | w = stem;
110 | re2 = /(at|bl|iz)$/;
111 | re3 = new RegExp("([^aeiouylsz])\\1$");
112 | re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
113 | if (re2.test(w))
114 | w = w + "e";
115 | else if (re3.test(w)) {
116 | re = /.$/;
117 | w = w.replace(re,"");
118 | }
119 | else if (re4.test(w))
120 | w = w + "e";
121 | }
122 | }
123 |
124 | // Step 1c
125 | re = /^(.+?)y$/;
126 | if (re.test(w)) {
127 | var fp = re.exec(w);
128 | stem = fp[1];
129 | re = new RegExp(s_v);
130 | if (re.test(stem))
131 | w = stem + "i";
132 | }
133 |
134 | // Step 2
135 | re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
136 | if (re.test(w)) {
137 | var fp = re.exec(w);
138 | stem = fp[1];
139 | suffix = fp[2];
140 | re = new RegExp(mgr0);
141 | if (re.test(stem))
142 | w = stem + step2list[suffix];
143 | }
144 |
145 | // Step 3
146 | re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
147 | if (re.test(w)) {
148 | var fp = re.exec(w);
149 | stem = fp[1];
150 | suffix = fp[2];
151 | re = new RegExp(mgr0);
152 | if (re.test(stem))
153 | w = stem + step3list[suffix];
154 | }
155 |
156 | // Step 4
157 | re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
158 | re2 = /^(.+?)(s|t)(ion)$/;
159 | if (re.test(w)) {
160 | var fp = re.exec(w);
161 | stem = fp[1];
162 | re = new RegExp(mgr1);
163 | if (re.test(stem))
164 | w = stem;
165 | }
166 | else if (re2.test(w)) {
167 | var fp = re2.exec(w);
168 | stem = fp[1] + fp[2];
169 | re2 = new RegExp(mgr1);
170 | if (re2.test(stem))
171 | w = stem;
172 | }
173 |
174 | // Step 5
175 | re = /^(.+?)e$/;
176 | if (re.test(w)) {
177 | var fp = re.exec(w);
178 | stem = fp[1];
179 | re = new RegExp(mgr1);
180 | re2 = new RegExp(meq1);
181 | re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
182 | if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
183 | w = stem;
184 | }
185 | re = /ll$/;
186 | re2 = new RegExp(mgr1);
187 | if (re.test(w) && re2.test(w)) {
188 | re = /.$/;
189 | w = w.replace(re,"");
190 | }
191 |
192 | // and turn initial Y back to y
193 | if (firstch == "y")
194 | w = firstch.toLowerCase() + w.substr(1);
195 | return w;
196 | }
197 | }
198 |
199 |
200 |
201 |
202 |
203 | var splitChars = (function() {
204 | var result = {};
205 | var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
206 | 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
207 | 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
208 | 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
209 | 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
210 | 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
211 | 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
212 | 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
213 | 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
214 | 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
215 | var i, j, start, end;
216 | for (i = 0; i < singles.length; i++) {
217 | result[singles[i]] = true;
218 | }
219 | var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
220 | [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
221 | [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
222 | [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
223 | [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
224 | [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
225 | [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
226 | [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
227 | [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
228 | [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
229 | [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
230 | [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
231 | [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
232 | [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
233 | [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
234 | [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
235 | [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
236 | [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
237 | [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
238 | [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
239 | [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
240 | [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
241 | [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
242 | [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
243 | [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
244 | [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
245 | [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
246 | [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
247 | [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
248 | [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
249 | [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
250 | [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
251 | [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
252 | [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
253 | [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
254 | [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
255 | [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
256 | [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
257 | [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
258 | [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
259 | [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
260 | [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
261 | [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
262 | [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
263 | [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
264 | [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
265 | [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
266 | [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
267 | [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
268 | for (i = 0; i < ranges.length; i++) {
269 | start = ranges[i][0];
270 | end = ranges[i][1];
271 | for (j = start; j <= end; j++) {
272 | result[j] = true;
273 | }
274 | }
275 | return result;
276 | })();
277 |
278 | function splitQuery(query) {
279 | var result = [];
280 | var start = -1;
281 | for (var i = 0; i < query.length; i++) {
282 | if (splitChars[query.charCodeAt(i)]) {
283 | if (start !== -1) {
284 | result.push(query.slice(start, i));
285 | start = -1;
286 | }
287 | } else if (start === -1) {
288 | start = i;
289 | }
290 | }
291 | if (start !== -1) {
292 | result.push(query.slice(start));
293 | }
294 | return result;
295 | }
296 |
297 |
298 |
--------------------------------------------------------------------------------
/docs/_build/html/_static/minus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/minus.png
--------------------------------------------------------------------------------
/docs/_build/html/_static/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/_static/plus.png
--------------------------------------------------------------------------------
/docs/_build/html/_static/pygments.css:
--------------------------------------------------------------------------------
1 | .highlight .hll { background-color: #ffffcc }
2 | .highlight { background: #f8f8f8; }
3 | .highlight .c { color: #408080; font-style: italic } /* Comment */
4 | .highlight .err { border: 1px solid #FF0000 } /* Error */
5 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */
6 | .highlight .o { color: #666666 } /* Operator */
7 | .highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
8 | .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
9 | .highlight .cp { color: #BC7A00 } /* Comment.Preproc */
10 | .highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
11 | .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
12 | .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
13 | .highlight .gd { color: #A00000 } /* Generic.Deleted */
14 | .highlight .ge { font-style: italic } /* Generic.Emph */
15 | .highlight .gr { color: #FF0000 } /* Generic.Error */
16 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
17 | .highlight .gi { color: #00A000 } /* Generic.Inserted */
18 | .highlight .go { color: #888888 } /* Generic.Output */
19 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
20 | .highlight .gs { font-weight: bold } /* Generic.Strong */
21 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
22 | .highlight .gt { color: #0044DD } /* Generic.Traceback */
23 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
24 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
25 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
26 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */
27 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
28 | .highlight .kt { color: #B00040 } /* Keyword.Type */
29 | .highlight .m { color: #666666 } /* Literal.Number */
30 | .highlight .s { color: #BA2121 } /* Literal.String */
31 | .highlight .na { color: #7D9029 } /* Name.Attribute */
32 | .highlight .nb { color: #008000 } /* Name.Builtin */
33 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
34 | .highlight .no { color: #880000 } /* Name.Constant */
35 | .highlight .nd { color: #AA22FF } /* Name.Decorator */
36 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
37 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
38 | .highlight .nf { color: #0000FF } /* Name.Function */
39 | .highlight .nl { color: #A0A000 } /* Name.Label */
40 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
41 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
42 | .highlight .nv { color: #19177C } /* Name.Variable */
43 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
44 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
45 | .highlight .mb { color: #666666 } /* Literal.Number.Bin */
46 | .highlight .mf { color: #666666 } /* Literal.Number.Float */
47 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */
48 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */
49 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */
50 | .highlight .sa { color: #BA2121 } /* Literal.String.Affix */
51 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
52 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */
53 | .highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
54 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
55 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */
56 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
57 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
58 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
59 | .highlight .sx { color: #008000 } /* Literal.String.Other */
60 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */
61 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */
62 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */
63 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
64 | .highlight .fm { color: #0000FF } /* Name.Function.Magic */
65 | .highlight .vc { color: #19177C } /* Name.Variable.Class */
66 | .highlight .vg { color: #19177C } /* Name.Variable.Global */
67 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */
68 | .highlight .vm { color: #19177C } /* Name.Variable.Magic */
69 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
--------------------------------------------------------------------------------
/docs/_build/html/_static/searchtools.js:
--------------------------------------------------------------------------------
1 | /*
2 | * searchtools.js
3 | * ~~~~~~~~~~~~~~~~
4 | *
5 | * Sphinx JavaScript utilities for the full-text search.
6 | *
7 | * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
8 | * :license: BSD, see LICENSE for details.
9 | *
10 | */
11 |
12 | if (!Scorer) {
13 | /**
14 | * Simple result scoring code.
15 | */
16 | var Scorer = {
17 | // Implement the following function to further tweak the score for each result
18 | // The function takes a result array [filename, title, anchor, descr, score]
19 | // and returns the new score.
20 | /*
21 | score: function(result) {
22 | return result[4];
23 | },
24 | */
25 |
26 | // query matches the full name of an object
27 | objNameMatch: 11,
28 | // or matches in the last dotted part of the object name
29 | objPartialMatch: 6,
30 | // Additive scores depending on the priority of the object
31 | objPrio: {0: 15, // used to be importantResults
32 | 1: 5, // used to be objectResults
33 | 2: -5}, // used to be unimportantResults
34 | // Used when the priority is not in the mapping.
35 | objPrioDefault: 0,
36 |
37 | // query found in title
38 | title: 15,
39 | partialTitle: 7,
40 | // query found in terms
41 | term: 5,
42 | partialTerm: 2
43 | };
44 | }
45 |
46 | if (!splitQuery) {
47 | function splitQuery(query) {
48 | return query.split(/\s+/);
49 | }
50 | }
51 |
52 | /**
53 | * Search Module
54 | */
55 | var Search = {
56 |
57 | _index : null,
58 | _queued_query : null,
59 | _pulse_status : -1,
60 |
61 | htmlToText : function(htmlString) {
62 | var htmlElement = document.createElement('span');
63 | htmlElement.innerHTML = htmlString;
64 | $(htmlElement).find('.headerlink').remove();
65 | docContent = $(htmlElement).find('[role=main]')[0];
66 | if(docContent === undefined) {
67 | console.warn("Content block not found. Sphinx search tries to obtain it " +
68 | "via '[role=main]'. Could you check your theme or template.");
69 | return "";
70 | }
71 | return docContent.textContent || docContent.innerText;
72 | },
73 |
74 | init : function() {
75 | var params = $.getQueryParameters();
76 | if (params.q) {
77 | var query = params.q[0];
78 | $('input[name="q"]')[0].value = query;
79 | this.performSearch(query);
80 | }
81 | },
82 |
83 | loadIndex : function(url) {
84 | $.ajax({type: "GET", url: url, data: null,
85 | dataType: "script", cache: true,
86 | complete: function(jqxhr, textstatus) {
87 | if (textstatus != "success") {
88 | document.getElementById("searchindexloader").src = url;
89 | }
90 | }});
91 | },
92 |
93 | setIndex : function(index) {
94 | var q;
95 | this._index = index;
96 | if ((q = this._queued_query) !== null) {
97 | this._queued_query = null;
98 | Search.query(q);
99 | }
100 | },
101 |
102 | hasIndex : function() {
103 | return this._index !== null;
104 | },
105 |
106 | deferQuery : function(query) {
107 | this._queued_query = query;
108 | },
109 |
110 | stopPulse : function() {
111 | this._pulse_status = 0;
112 | },
113 |
114 | startPulse : function() {
115 | if (this._pulse_status >= 0)
116 | return;
117 | function pulse() {
118 | var i;
119 | Search._pulse_status = (Search._pulse_status + 1) % 4;
120 | var dotString = '';
121 | for (i = 0; i < Search._pulse_status; i++)
122 | dotString += '.';
123 | Search.dots.text(dotString);
124 | if (Search._pulse_status > -1)
125 | window.setTimeout(pulse, 500);
126 | }
127 | pulse();
128 | },
129 |
130 | /**
131 | * perform a search for something (or wait until index is loaded)
132 | */
133 | performSearch : function(query) {
134 | // create the required interface elements
135 | this.out = $('#search-results');
136 | this.title = $('' + _('Searching') + '
').appendTo(this.out);
137 | this.dots = $('').appendTo(this.title);
138 | this.status = $('
').appendTo(this.out);
139 | this.output = $('').appendTo(this.out);
140 |
141 | $('#search-progress').text(_('Preparing search...'));
142 | this.startPulse();
143 |
144 | // index already loaded, the browser was quick!
145 | if (this.hasIndex())
146 | this.query(query);
147 | else
148 | this.deferQuery(query);
149 | },
150 |
151 | /**
152 | * execute search (requires search index to be loaded)
153 | */
154 | query : function(query) {
155 | var i;
156 |
157 | // stem the searchterms and add them to the correct list
158 | var stemmer = new Stemmer();
159 | var searchterms = [];
160 | var excluded = [];
161 | var hlterms = [];
162 | var tmp = splitQuery(query);
163 | var objectterms = [];
164 | for (i = 0; i < tmp.length; i++) {
165 | if (tmp[i] !== "") {
166 | objectterms.push(tmp[i].toLowerCase());
167 | }
168 |
169 | if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
170 | tmp[i] === "") {
171 | // skip this "word"
172 | continue;
173 | }
174 | // stem the word
175 | var word = stemmer.stemWord(tmp[i].toLowerCase());
176 | // prevent stemmer from cutting word smaller than two chars
177 | if(word.length < 3 && tmp[i].length >= 3) {
178 | word = tmp[i];
179 | }
180 | var toAppend;
181 | // select the correct list
182 | if (word[0] == '-') {
183 | toAppend = excluded;
184 | word = word.substr(1);
185 | }
186 | else {
187 | toAppend = searchterms;
188 | hlterms.push(tmp[i].toLowerCase());
189 | }
190 | // only add if not already in the list
191 | if (!$u.contains(toAppend, word))
192 | toAppend.push(word);
193 | }
194 | var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
195 |
196 | // console.debug('SEARCH: searching for:');
197 | // console.info('required: ', searchterms);
198 | // console.info('excluded: ', excluded);
199 |
200 | // prepare search
201 | var terms = this._index.terms;
202 | var titleterms = this._index.titleterms;
203 |
204 | // array of [filename, title, anchor, descr, score]
205 | var results = [];
206 | $('#search-progress').empty();
207 |
208 | // lookup as object
209 | for (i = 0; i < objectterms.length; i++) {
210 | var others = [].concat(objectterms.slice(0, i),
211 | objectterms.slice(i+1, objectterms.length));
212 | results = results.concat(this.performObjectSearch(objectterms[i], others));
213 | }
214 |
215 | // lookup as search terms in fulltext
216 | results = results.concat(this.performTermsSearch(searchterms, excluded, terms, titleterms));
217 |
218 | // let the scorer override scores with a custom scoring function
219 | if (Scorer.score) {
220 | for (i = 0; i < results.length; i++)
221 | results[i][4] = Scorer.score(results[i]);
222 | }
223 |
224 | // now sort the results by score (in opposite order of appearance, since the
225 | // display function below uses pop() to retrieve items) and then
226 | // alphabetically
227 | results.sort(function(a, b) {
228 | var left = a[4];
229 | var right = b[4];
230 | if (left > right) {
231 | return 1;
232 | } else if (left < right) {
233 | return -1;
234 | } else {
235 | // same score: sort alphabetically
236 | left = a[1].toLowerCase();
237 | right = b[1].toLowerCase();
238 | return (left > right) ? -1 : ((left < right) ? 1 : 0);
239 | }
240 | });
241 |
242 | // for debugging
243 | //Search.lastresults = results.slice(); // a copy
244 | //console.info('search results:', Search.lastresults);
245 |
246 | // print the results
247 | var resultCount = results.length;
248 | function displayNextItem() {
249 | // results left, load the summary and display it
250 | if (results.length) {
251 | var item = results.pop();
252 | var listItem = $('');
253 | var requestUrl = "";
254 | var linkUrl = "";
255 | if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') {
256 | // dirhtml builder
257 | var dirname = item[0] + '/';
258 | if (dirname.match(/\/index\/$/)) {
259 | dirname = dirname.substring(0, dirname.length-6);
260 | } else if (dirname == 'index/') {
261 | dirname = '';
262 | }
263 | requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname;
264 | linkUrl = requestUrl;
265 |
266 | } else {
267 | // normal html builders
268 | requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX;
269 | linkUrl = item[0] + DOCUMENTATION_OPTIONS.LINK_SUFFIX;
270 | }
271 | listItem.append($('').attr('href',
272 | linkUrl +
273 | highlightstring + item[2]).html(item[1]));
274 | if (item[3]) {
275 | listItem.append($(' (' + item[3] + ')'));
276 | Search.output.append(listItem);
277 | listItem.slideDown(5, function() {
278 | displayNextItem();
279 | });
280 | } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
281 | $.ajax({url: requestUrl,
282 | dataType: "text",
283 | complete: function(jqxhr, textstatus) {
284 | var data = jqxhr.responseText;
285 | if (data !== '' && data !== undefined) {
286 | listItem.append(Search.makeSearchSummary(data, searchterms, hlterms));
287 | }
288 | Search.output.append(listItem);
289 | listItem.slideDown(5, function() {
290 | displayNextItem();
291 | });
292 | }});
293 | } else {
294 | // no source available, just display title
295 | Search.output.append(listItem);
296 | listItem.slideDown(5, function() {
297 | displayNextItem();
298 | });
299 | }
300 | }
301 | // search finished, update title and status message
302 | else {
303 | Search.stopPulse();
304 | Search.title.text(_('Search Results'));
305 | if (!resultCount)
306 | Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
307 | else
308 | Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
309 | Search.status.fadeIn(500);
310 | }
311 | }
312 | displayNextItem();
313 | },
314 |
315 | /**
316 | * search for object names
317 | */
318 | performObjectSearch : function(object, otherterms) {
319 | var filenames = this._index.filenames;
320 | var docnames = this._index.docnames;
321 | var objects = this._index.objects;
322 | var objnames = this._index.objnames;
323 | var titles = this._index.titles;
324 |
325 | var i;
326 | var results = [];
327 |
328 | for (var prefix in objects) {
329 | for (var name in objects[prefix]) {
330 | var fullname = (prefix ? prefix + '.' : '') + name;
331 | var fullnameLower = fullname.toLowerCase()
332 | if (fullnameLower.indexOf(object) > -1) {
333 | var score = 0;
334 | var parts = fullnameLower.split('.');
335 | // check for different match types: exact matches of full name or
336 | // "last name" (i.e. last dotted part)
337 | if (fullnameLower == object || parts[parts.length - 1] == object) {
338 | score += Scorer.objNameMatch;
339 | // matches in last name
340 | } else if (parts[parts.length - 1].indexOf(object) > -1) {
341 | score += Scorer.objPartialMatch;
342 | }
343 | var match = objects[prefix][name];
344 | var objname = objnames[match[1]][2];
345 | var title = titles[match[0]];
346 | // If more than one term searched for, we require other words to be
347 | // found in the name/title/description
348 | if (otherterms.length > 0) {
349 | var haystack = (prefix + ' ' + name + ' ' +
350 | objname + ' ' + title).toLowerCase();
351 | var allfound = true;
352 | for (i = 0; i < otherterms.length; i++) {
353 | if (haystack.indexOf(otherterms[i]) == -1) {
354 | allfound = false;
355 | break;
356 | }
357 | }
358 | if (!allfound) {
359 | continue;
360 | }
361 | }
362 | var descr = objname + _(', in ') + title;
363 |
364 | var anchor = match[3];
365 | if (anchor === '')
366 | anchor = fullname;
367 | else if (anchor == '-')
368 | anchor = objnames[match[1]][1] + '-' + fullname;
369 | // add custom score for some objects according to scorer
370 | if (Scorer.objPrio.hasOwnProperty(match[2])) {
371 | score += Scorer.objPrio[match[2]];
372 | } else {
373 | score += Scorer.objPrioDefault;
374 | }
375 | results.push([docnames[match[0]], fullname, '#'+anchor, descr, score, filenames[match[0]]]);
376 | }
377 | }
378 | }
379 |
380 | return results;
381 | },
382 |
383 | /**
384 | * search for full-text terms in the index
385 | */
386 | performTermsSearch : function(searchterms, excluded, terms, titleterms) {
387 | var docnames = this._index.docnames;
388 | var filenames = this._index.filenames;
389 | var titles = this._index.titles;
390 |
391 | var i, j, file;
392 | var fileMap = {};
393 | var scoreMap = {};
394 | var results = [];
395 |
396 | // perform the search on the required terms
397 | for (i = 0; i < searchterms.length; i++) {
398 | var word = searchterms[i];
399 | var files = [];
400 | var _o = [
401 | {files: terms[word], score: Scorer.term},
402 | {files: titleterms[word], score: Scorer.title}
403 | ];
404 | // add support for partial matches
405 | if (word.length > 2) {
406 | for (var w in terms) {
407 | if (w.match(word) && !terms[word]) {
408 | _o.push({files: terms[w], score: Scorer.partialTerm})
409 | }
410 | }
411 | for (var w in titleterms) {
412 | if (w.match(word) && !titleterms[word]) {
413 | _o.push({files: titleterms[w], score: Scorer.partialTitle})
414 | }
415 | }
416 | }
417 |
418 | // no match but word was a required one
419 | if ($u.every(_o, function(o){return o.files === undefined;})) {
420 | break;
421 | }
422 | // found search word in contents
423 | $u.each(_o, function(o) {
424 | var _files = o.files;
425 | if (_files === undefined)
426 | return
427 |
428 | if (_files.length === undefined)
429 | _files = [_files];
430 | files = files.concat(_files);
431 |
432 | // set score for the word in each file to Scorer.term
433 | for (j = 0; j < _files.length; j++) {
434 | file = _files[j];
435 | if (!(file in scoreMap))
436 | scoreMap[file] = {};
437 | scoreMap[file][word] = o.score;
438 | }
439 | });
440 |
441 | // create the mapping
442 | for (j = 0; j < files.length; j++) {
443 | file = files[j];
444 | if (file in fileMap && fileMap[file].indexOf(word) === -1)
445 | fileMap[file].push(word);
446 | else
447 | fileMap[file] = [word];
448 | }
449 | }
450 |
451 | // now check if the files don't contain excluded terms
452 | for (file in fileMap) {
453 | var valid = true;
454 |
455 | // check if all requirements are matched
456 | var filteredTermCount = // as search terms with length < 3 are discarded: ignore
457 | searchterms.filter(function(term){return term.length > 2}).length
458 | if (
459 | fileMap[file].length != searchterms.length &&
460 | fileMap[file].length != filteredTermCount
461 | ) continue;
462 |
463 | // ensure that none of the excluded terms is in the search result
464 | for (i = 0; i < excluded.length; i++) {
465 | if (terms[excluded[i]] == file ||
466 | titleterms[excluded[i]] == file ||
467 | $u.contains(terms[excluded[i]] || [], file) ||
468 | $u.contains(titleterms[excluded[i]] || [], file)) {
469 | valid = false;
470 | break;
471 | }
472 | }
473 |
474 | // if we have still a valid result we can add it to the result list
475 | if (valid) {
476 | // select one (max) score for the file.
477 | // for better ranking, we should calculate ranking by using words statistics like basic tf-idf...
478 | var score = $u.max($u.map(fileMap[file], function(w){return scoreMap[file][w]}));
479 | results.push([docnames[file], titles[file], '', null, score, filenames[file]]);
480 | }
481 | }
482 | return results;
483 | },
484 |
485 | /**
486 | * helper function to return a node containing the
487 | * search summary for a given text. keywords is a list
488 | * of stemmed words, hlwords is the list of normal, unstemmed
489 | * words. the first one is used to find the occurrence, the
490 | * latter for highlighting it.
491 | */
492 | makeSearchSummary : function(htmlText, keywords, hlwords) {
493 | var text = Search.htmlToText(htmlText);
494 | var textLower = text.toLowerCase();
495 | var start = 0;
496 | $.each(keywords, function() {
497 | var i = textLower.indexOf(this.toLowerCase());
498 | if (i > -1)
499 | start = i;
500 | });
501 | start = Math.max(start - 120, 0);
502 | var excerpt = ((start > 0) ? '...' : '') +
503 | $.trim(text.substr(start, 240)) +
504 | ((start + 240 - text.length) ? '...' : '');
505 | var rv = $('').text(excerpt);
506 | $.each(hlwords, function() {
507 | rv = rv.highlightText(this, 'highlighted');
508 | });
509 | return rv;
510 | }
511 | };
512 |
513 | $(document).ready(function() {
514 | Search.init();
515 | });
516 |
--------------------------------------------------------------------------------
/docs/_build/html/_static/underscore.js:
--------------------------------------------------------------------------------
1 | // Underscore.js 1.3.1
2 | // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
3 | // Underscore is freely distributable under the MIT license.
4 | // Portions of Underscore are inspired or borrowed from Prototype,
5 | // Oliver Steele's Functional, and John Resig's Micro-Templating.
6 | // For all details and documentation:
7 | // http://documentcloud.github.com/underscore
8 | (function(){function q(a,c,d){if(a===c)return a!==0||1/a==1/c;if(a==null||c==null)return a===c;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual&&b.isFunction(a.isEqual))return a.isEqual(c);if(c.isEqual&&b.isFunction(c.isEqual))return c.isEqual(a);var e=l.call(a);if(e!=l.call(c))return false;switch(e){case "[object String]":return a==String(c);case "[object Number]":return a!=+a?c!=+c:a==0?1/a==1/c:a==+c;case "[object Date]":case "[object Boolean]":return+a==+c;case "[object RegExp]":return a.source==
9 | c.source&&a.global==c.global&&a.multiline==c.multiline&&a.ignoreCase==c.ignoreCase}if(typeof a!="object"||typeof c!="object")return false;for(var f=d.length;f--;)if(d[f]==a)return true;d.push(a);var f=0,g=true;if(e=="[object Array]"){if(f=a.length,g=f==c.length)for(;f--;)if(!(g=f in a==f in c&&q(a[f],c[f],d)))break}else{if("constructor"in a!="constructor"in c||a.constructor!=c.constructor)return false;for(var h in a)if(b.has(a,h)&&(f++,!(g=b.has(c,h)&&q(a[h],c[h],d))))break;if(g){for(h in c)if(b.has(c,
10 | h)&&!f--)break;g=!f}}d.pop();return g}var r=this,G=r._,n={},k=Array.prototype,o=Object.prototype,i=k.slice,H=k.unshift,l=o.toString,I=o.hasOwnProperty,w=k.forEach,x=k.map,y=k.reduce,z=k.reduceRight,A=k.filter,B=k.every,C=k.some,p=k.indexOf,D=k.lastIndexOf,o=Array.isArray,J=Object.keys,s=Function.prototype.bind,b=function(a){return new m(a)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports)exports=module.exports=b;exports._=b}else r._=b;b.VERSION="1.3.1";var j=b.each=
11 | b.forEach=function(a,c,d){if(a!=null)if(w&&a.forEach===w)a.forEach(c,d);else if(a.length===+a.length)for(var e=0,f=a.length;e2;a==
12 | null&&(a=[]);if(y&&a.reduce===y)return e&&(c=b.bind(c,e)),f?a.reduce(c,d):a.reduce(c);j(a,function(a,b,i){f?d=c.call(e,d,a,b,i):(d=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");return d};b.reduceRight=b.foldr=function(a,c,d,e){var f=arguments.length>2;a==null&&(a=[]);if(z&&a.reduceRight===z)return e&&(c=b.bind(c,e)),f?a.reduceRight(c,d):a.reduceRight(c);var g=b.toArray(a).reverse();e&&!f&&(c=b.bind(c,e));return f?b.reduce(g,c,d,e):b.reduce(g,c)};b.find=b.detect=
13 | function(a,c,b){var e;E(a,function(a,g,h){if(c.call(b,a,g,h))return e=a,true});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(A&&a.filter===A)return a.filter(c,b);j(a,function(a,g,h){c.call(b,a,g,h)&&(e[e.length]=a)});return e};b.reject=function(a,c,b){var e=[];if(a==null)return e;j(a,function(a,g,h){c.call(b,a,g,h)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=true;if(a==null)return e;if(B&&a.every===B)return a.every(c,b);j(a,function(a,g,h){if(!(e=
14 | e&&c.call(b,a,g,h)))return n});return e};var E=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=false;if(a==null)return e;if(C&&a.some===C)return a.some(c,d);j(a,function(a,b,h){if(e||(e=c.call(d,a,b,h)))return n});return!!e};b.include=b.contains=function(a,c){var b=false;if(a==null)return b;return p&&a.indexOf===p?a.indexOf(c)!=-1:b=E(a,function(a){return a===c})};b.invoke=function(a,c){var d=i.call(arguments,2);return b.map(a,function(a){return(b.isFunction(c)?c||a:a[c]).apply(a,d)})};b.pluck=
15 | function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);if(!c&&b.isEmpty(a))return-Infinity;var e={computed:-Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);if(!c&&b.isEmpty(a))return Infinity;var e={computed:Infinity};j(a,function(a,b,h){b=c?c.call(d,a,b,h):a;bd?1:0}),"value")};b.groupBy=function(a,c){var d={},e=b.isFunction(c)?c:function(a){return a[c]};j(a,function(a,b){var c=e(a,b);(d[c]||(d[c]=[])).push(a)});return d};b.sortedIndex=function(a,
17 | c,d){d||(d=b.identity);for(var e=0,f=a.length;e>1;d(a[g])=0})})};b.difference=function(a){var c=b.flatten(i.call(arguments,1));return b.filter(a,function(a){return!b.include(c,a)})};b.zip=function(){for(var a=i.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),e=0;e=0;d--)b=[a[d].apply(this,b)];return b[0]}};
24 | b.after=function(a,b){return a<=0?b():function(){if(--a<1)return b.apply(this,arguments)}};b.keys=J||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[],d;for(d in a)b.has(a,d)&&(c[c.length]=d);return c};b.values=function(a){return b.map(a,b.identity)};b.functions=b.methods=function(a){var c=[],d;for(d in a)b.isFunction(a[d])&&c.push(d);return c.sort()};b.extend=function(a){j(i.call(arguments,1),function(b){for(var d in b)a[d]=b[d]});return a};b.defaults=function(a){j(i.call(arguments,
25 | 1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return!b.isObject(a)?a:b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,b){return q(a,b,[])};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(b.has(a,c))return false;return true};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=o||function(a){return l.call(a)=="[object Array]"};b.isObject=function(a){return a===Object(a)};
26 | b.isArguments=function(a){return l.call(a)=="[object Arguments]"};if(!b.isArguments(arguments))b.isArguments=function(a){return!(!a||!b.has(a,"callee"))};b.isFunction=function(a){return l.call(a)=="[object Function]"};b.isString=function(a){return l.call(a)=="[object String]"};b.isNumber=function(a){return l.call(a)=="[object Number]"};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===true||a===false||l.call(a)=="[object Boolean]"};b.isDate=function(a){return l.call(a)=="[object Date]"};
27 | b.isRegExp=function(a){return l.call(a)=="[object RegExp]"};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.has=function(a,b){return I.call(a,b)};b.noConflict=function(){r._=G;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=0;e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};b.mixin=function(a){j(b.functions(a),
28 | function(c){K(c,b[c]=a[c])})};var L=0;b.uniqueId=function(a){var b=L++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var t=/.^/,u=function(a){return a.replace(/\\\\/g,"\\").replace(/\\'/g,"'")};b.template=function(a,c){var d=b.templateSettings,d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.escape||t,function(a,b){return"',_.escape("+
29 | u(b)+"),'"}).replace(d.interpolate||t,function(a,b){return"',"+u(b)+",'"}).replace(d.evaluate||t,function(a,b){return"');"+u(b).replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj","_",d);return c?e(c,b):function(a){return e.call(this,a,b)}};b.chain=function(a){return b(a).chain()};var m=function(a){this._wrapped=a};b.prototype=m.prototype;var v=function(a,c){return c?b(a).chain():a},K=function(a,c){m.prototype[a]=
30 | function(){var a=i.call(arguments);H.call(a,this._wrapped);return v(c.apply(b,a),this._chain)}};b.mixin(b);j("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var b=k[a];m.prototype[a]=function(){var d=this._wrapped;b.apply(d,arguments);var e=d.length;(a=="shift"||a=="splice")&&e===0&&delete d[0];return v(d,this._chain)}});j(["concat","join","slice"],function(a){var b=k[a];m.prototype[a]=function(){return v(b.apply(this._wrapped,arguments),this._chain)}});m.prototype.chain=function(){this._chain=
31 | true;return this};m.prototype.value=function(){return this._wrapped}}).call(this);
32 |
--------------------------------------------------------------------------------
/docs/_build/html/genindex.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Index — Quant Paradise 0.0.1 documentation
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
94 |
95 |
96 |
97 |
98 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 | - »
131 |
132 | - Index
133 |
134 |
135 | -
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
Index
151 |
152 |
153 |
C
154 | |
L
155 | |
M
156 | |
O
157 | |
P
158 | |
S
159 | |
Z
160 |
161 |
162 |
C
163 |
169 |
170 |
L
171 |
177 |
178 |
M
179 |
180 |
181 | -
182 | module
183 |
184 |
192 | |
193 |
194 |
195 |
O
196 |
202 |
203 |
P
204 |
205 |
206 | -
207 | PricingFIP
208 |
209 |
213 | -
214 | PricingFIP.Vaeick_CIR
215 |
216 |
220 | |
221 |
222 | -
223 | PricingFIP.Vaeick_CIR.Mod6
224 |
225 |
229 | |
230 |
231 |
232 |
S
233 |
239 |
240 |
Z
241 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
--------------------------------------------------------------------------------
/docs/_build/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Welcome to quantparadise’s documentation! — Quant Paradise 0.0.1 documentation
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
95 |
96 |
97 |
98 |
99 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 | - »
132 |
133 | - Welcome to quantparadise’s documentation!
134 |
135 |
136 | -
137 |
138 |
139 | View page source
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
Welcome to quantparadise’s documentation!
154 |
155 |
Contents:
156 |
162 |
163 |
164 |
165 |
Indices and tables
166 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
--------------------------------------------------------------------------------
/docs/_build/html/objects.inv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/harshhacks/quantparadise/a8039e7344b6c50f4c4382e5efa89220c368002c/docs/_build/html/objects.inv
--------------------------------------------------------------------------------
/docs/_build/html/search.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | Search — Quant Paradise 0.0.1 documentation
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
96 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | - »
133 |
134 | - Search
135 |
136 |
137 | -
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
203 |
204 |
205 |
206 |
207 |
208 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
--------------------------------------------------------------------------------
/docs/_build/html/searchindex.js:
--------------------------------------------------------------------------------
1 | Search.setIndex({docnames:["PricingFIP","PricingFIP.Vaeick_CIR","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["PricingFIP.rst","PricingFIP.Vaeick_CIR.rst","index.rst","modules.rst"],objects:{"":{PricingFIP:[0,0,0,"-"]},"PricingFIP.Vaeick_CIR":{Mod6:[1,0,0,"-"]},"PricingFIP.Vaeick_CIR.Mod6":{calibration:[1,1,1,""],liborRates:[1,1,1,""],objFunc1:[1,1,1,""],swapRates:[1,1,1,""],zero_coupon:[1,1,1,""]},PricingFIP:{Vaeick_CIR:[1,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{actual:1,approach:1,appropri:1,base:1,between:1,calcul:1,calibr:1,chang:1,cir:1,comput:1,content:[2,3],coupon:1,differ:1,extrem:1,fun:1,given:1,gradient:1,help:1,index:2,interpol:1,kappa:1,libor:1,liborr:1,mat:1,mod6:[0,3],model:1,modul:[2,3],objfunc1:1,packag:[2,3],page:2,param:1,param_0:1,paramet:1,price:1,pricingfip:[2,3],provid:1,rate:1,reduc:1,search:2,set:1,sigma:1,submodul:[0,3],subpackag:3,swap:1,swaprat:1,tau:1,theta:1,toler:1,tune:1,type:1,using:1,util:1,vaeick_cir:[0,3],valu:1,vasicek:1,zero:1,zero_coupon:1},titles:["PricingFIP package","PricingFIP.Vaeick_CIR package","Welcome to quantparadise\u2019s documentation!","quantparadise"],titleterms:{content:[0,1],document:2,indic:2,mod6:1,modul:[0,1],packag:[0,1],pricingfip:[0,1],quantparadis:[2,3],submodul:1,subpackag:0,tabl:2,vaeick_cir:1,welcom:2}})
--------------------------------------------------------------------------------
/docs/conf.py:
--------------------------------------------------------------------------------
1 | # Configuration file for the Sphinx documentation builder.
2 | #
3 | # This file only contains a selection of the most common options. For a full
4 | # list see the documentation:
5 | # https://www.sphinx-doc.org/en/master/usage/configuration.html
6 |
7 | # -- Path setup --------------------------------------------------------------
8 |
9 | # If extensions (or modules to document with autodoc) are in another directory,
10 | # add these directories to sys.path here. If the directory is relative to the
11 | # documentation root, use os.path.abspath to make it absolute, like shown here.
12 | #
13 | import os
14 | import sys
15 | sys.path.insert(0, os.path.abspath('..'))
16 |
17 |
18 | # -- Project information -----------------------------------------------------
19 |
20 | project = 'Quant Paradise'
21 | copyright = '2020, Naman Goyal, Harsh Mishra'
22 | author = 'Naman Goyal, Harsh Mishra'
23 |
24 | # The full version, including alpha/beta/rc tags
25 | release = '0.0.1'
26 |
27 |
28 | # -- General configuration ---------------------------------------------------
29 |
30 | # Add any Sphinx extension module names here, as strings. They can be
31 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
32 | # ones.
33 | extensions = ['sphinx.ext.autodoc', 'recommonmark']
34 |
35 | # Add any paths that contain templates here, relative to this directory.
36 | templates_path = ['_templates']
37 |
38 | # List of patterns, relative to source directory, that match files and
39 | # directories to ignore when looking for source files.
40 | # This pattern also affects html_static_path and html_extra_path.
41 | exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
42 | source_suffix = '.rst'
43 | master_doc = 'index'
44 |
45 |
46 | # -- Options for HTML output -------------------------------------------------
47 |
48 | # The theme to use for HTML and HTML Help pages. See the documentation for
49 | # a list of builtin themes.
50 | #
51 | html_theme = 'sphinx_rtd_theme'
52 |
53 | # Add any paths that contain custom static files (such as style sheets) here,
54 | # relative to this directory. They are copied after the builtin static files,
55 | # so a file named "default.css" will overwrite the builtin "default.css".
56 | html_static_path = ['_static']
57 |
--------------------------------------------------------------------------------
/docs/index.rst:
--------------------------------------------------------------------------------
1 | .. quantparadise documentation master file, created by
2 | sphinx-quickstart on Sat Nov 21 18:32:23 2020.
3 | You can adapt this file completely to your liking, but it should at least
4 | contain the root `toctree` directive.
5 |
6 | Welcome to quantparadise's documentation!
7 | =========================================
8 |
9 | .. toctree::
10 | :maxdepth: 2
11 | :caption: Contents:
12 |
13 | modules
14 |
15 | Indices and tables
16 | ==================
17 |
18 | * :ref:`genindex`
19 | * :ref:`modindex`
20 | * :ref:`search`
21 |
--------------------------------------------------------------------------------
/docs/make.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | pushd %~dp0
4 |
5 | REM Command file for Sphinx documentation
6 |
7 | if "%SPHINXBUILD%" == "" (
8 | set SPHINXBUILD=sphinx-build
9 | )
10 | set SOURCEDIR=.
11 | set BUILDDIR=_build
12 |
13 | if "%1" == "" goto help
14 |
15 | %SPHINXBUILD% >NUL 2>NUL
16 | if errorlevel 9009 (
17 | echo.
18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19 | echo.installed, then set the SPHINXBUILD environment variable to point
20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you
21 | echo.may add the Sphinx directory to PATH.
22 | echo.
23 | echo.If you don't have Sphinx installed, grab it from
24 | echo.http://sphinx-doc.org/
25 | exit /b 1
26 | )
27 |
28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29 | goto end
30 |
31 | :help
32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33 |
34 | :end
35 | popd
36 |
--------------------------------------------------------------------------------
/docs/modules.rst:
--------------------------------------------------------------------------------
1 | quantparadise
2 | =============
3 |
4 | .. toctree::
5 | :maxdepth: 4
6 |
7 | PricingFIP
8 |
--------------------------------------------------------------------------------
/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | sphinx==3.1.2
2 | sphinx_rtd_theme==0.5.0
--------------------------------------------------------------------------------