diff --git a/EpiJS/com.js b/EpiJS/com.js deleted file mode 100644 index 290c2f4..0000000 --- a/EpiJS/com.js +++ /dev/null @@ -1,409 +0,0 @@ -/** - * @file EpiJS module for representing communities - * - * Import it with: - * ``` - * const com = require('@epispot/epijs').com - * ``` - */ - - -const chart = require('chart.js') -const gaussian = require('gaussian') - - -/** - * Class representing a virus, which can infect a community. - * @param {Number} rnaught The disease's R-Naught - * @param {Number} u The disease's recovery rate - * @param {Number} a The disease's incubation period - * @param {Number} d The disease's death rate (for infected population) - * @example - * - * let covid = new Virus(5.7, 2.1/100) - */ -class Virus { - constructor (rnaught, u, a=0, d=0) { - this.rnaught = rnaught - this.u = u - this.a = a - this.d = d - } - -} - -/** - * Class representing a community, which can be infected with a disease, and compared to other communities. - * @param {Number} pop The population of the community - * @param {Number} i The start infected population of the community. - * @param {Number} s The start susceptible population of the community - * @example - * - * let NewYorkCity = new Community(8419000, 300, 8418700) - */ -class Community { - constructor (pop, i, s) { - this.pop = pop - this.i = i - this.s = s - this.r = pop-(i+s) - } - - /** - * SIR model for the community - * @param {Number} disease A virus class. The virus to infect the community with and model for. - * @param {Number} time Time to predict for. - * @param {Boolean} stochastic - Whether to make the model stochastic or not. - * @example - * - * let NewYorkCity = new Community(8419000, 300, 8418700) - *let covid = new Virus(5.7, 2.1/100, 1/8, 1/100) - * - *outbreak = NewYorkCity.sir(covid, 100, false) - */ - sir (disease, time, stochastic) { - let data = { - datasets: [{ - data: [this.s], - label: "Suseptible", - }, - { - data: [this.i], - label: "Infected", - }, - { - data: [this.r], - label: "Recovered", - }] - } - var f1 = 0; - var f2 = 0; - - for(let x = 0; x { + // Send the plot as HTML + res.writeHead(200, {'Content-Type': 'text/html'}) + res.write(` + + + + + +
+ + + `) + res.end() + }) + + // Start the server + server.listen(8080) + console.log('[@epispot/epijs] Plotly server running on http://localhost:8080') + } + else { // Is running in the browser + // Create the plot + let layout = { + title: title, + xaxis: { + title: 'Days' + }, + yaxis: { + title: 'Cases' + } + } + Plotly.newPlot(name, plotlyData, layout) + } } -exports.plot = plot; -exports.manipulate = manipulate; \ No newline at end of file +exports.plot = plot \ No newline at end of file diff --git a/EpiJS/pre.js b/EpiJS/pre.js index 5bd3652..9c18650 100644 --- a/EpiJS/pre.js +++ b/EpiJS/pre.js @@ -8,425 +8,213 @@ */ const gaussian = require('gaussian') +const modelm = require('./model') +const comp = require('./comp') /** - * The SIR Model. Returns a chart.js graph with the total Susceptible, Infected, and Recovered after the given amount of time. + * The SIR Model. Returns the model as a `model` class from the `model` module. * @param {Number} rn - R Naught, or the amount of people one infected infects whlie infected. * @param {Number} s - The Susceptible population at the beggining of the outbreak * @param {Number} i - The Infected population at the beggining of th outbreak - * @param {Number} time - The time the total simulation lasts. * @param {Number} u - The recovery rate * @param {Number} p - The total population. * @param {Boolean} stochastic - Whether to make the model stochastic or not. - * @returns The data for the model as a list. + * @returns A model class from the `model` module. . * @example * - * sir(4, 9999, 1, 100, 1/21, 10000, true) + * let sirmodel = sir(4, 9999, 1, 1/21, 10000, true) */ -function sir(rn, s, i, time, u, p, stochastic) { - let data = [ - { - data: [s], - label: "Suseptible" - }, - { - data: [i], - label: "Infected" - }, - { - data: [p-(s+i)], - label: "Recovered" - } - ] - var f1 = 0; - var f2 = 0; +function sir(rn, s, i, u, p, stochastic) { + let distribution = gaussian(0, 1) + let omega1 = distribution.random(1)[0] + let omega2 = distribution.random(1)[0] + let f1 = 'sqrt((B*S*I)/p)' + let f2 = 'sqrt(u*I)' + if (stochastic !== true) { + omega1 = 0 + omega2 = 0 + f1 = 0 + f2 = 0 + } - for(let x = 0; xEpiJS +

The epidemiology package for JavaScript [![License: GPL--3.0](https://img.shields.io/github/license/epispot/EpiJS?style=flat-square)](https://github.com/epispot/epijs/blob/main/LICENSE) [![npm version](https://img.shields.io/npm/v/@epispot/epijs?style=flat-square) @@ -7,6 +8,8 @@ The epidemiology package for JavaScript [![GitHub issues](https://img.shields.io/github/issues/epispot/epijs?style=flat-square) ](https://github.com/epispot/epijs/issues/) [![GitHub pull requests](https://img.shields.io/github/issues-pr/epispot/epijs?style=flat-square) ](https://github.com/epispot/EpiJS/pulls) [![Build Status](https://img.shields.io/github/workflow/status/epispot/EpiJS/Build?label=Build&logo=GitHub&logoColor=white&style=flat-square)](https://github.com/epispot/EpiJS/actions/workflows/build.yml) +

+
## About EpiJS is a epidemiological modelling package for JavaScript with built-in support diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 1ee940b..6857369 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -23,7 +23,6 @@ module.exports = { title: 'Module Docs', children: [ ['pre', 'Pre Module'], - ['com', 'Com Module'], ['comp', 'Comp Module'], ['model', 'Model Module'], ['utils', 'Utils Module'], diff --git a/docs/.vuepress/dist/404.html b/docs/.vuepress/dist/404.html index ce799ea..5b3e19f 100644 --- a/docs/.vuepress/dist/404.html +++ b/docs/.vuepress/dist/404.html @@ -4,17 +4,17 @@ EpiJS - + - + -

404

There's nothing here.
+ - + diff --git a/docs/.vuepress/dist/assets/js/11.872dc73d.js b/docs/.vuepress/dist/assets/js/10.267bb154.js similarity index 98% rename from docs/.vuepress/dist/assets/js/11.872dc73d.js rename to docs/.vuepress/dist/assets/js/10.267bb154.js index 81cffd5..69824e2 100644 --- a/docs/.vuepress/dist/assets/js/11.872dc73d.js +++ b/docs/.vuepress/dist/assets/js/10.267bb154.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{375:function(t,s,a){"use strict";a.r(s);var n=a(45),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),a("p",[t._v("The prefered way of installation is through npm or in your html:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"NodeJS"}},[a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n")])])])]),t._v(" "),a("tab",{attrs:{name:"HTML"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1),t._v(" "),a("h2",{attrs:{id:"other-installation-methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-installation-methods"}},[t._v("#")]),t._v(" Other Installation Methods")]),t._v(" "),a("p",[t._v("EpiJS can also be built from the source, however, this might introduce bugs.")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/epispot/EpiJS.git --depth"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" EpiJS\n")])])]),a("p",[t._v("Once cloned you can use it in the prefered way:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"NodeJS"}},[a("p",[t._v("Install")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),a("p",[t._v("Require:")]),t._v(" "),a("div",{staticClass:"language-JAVASCRIPT extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" epijs "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'./epijs/'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"HTML"}},[a("p",[t._v("First build:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run build\n")])])]),a("p",[t._v("Then import:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1),t._v(" "),a("h3",{attrs:{id:"cdns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cdns"}},[t._v("#")]),t._v(" CDNs")]),t._v(" "),a("p",[t._v("EpiJS is avaliable on multiple CDNs:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"JSDelivr"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS@2.0.0/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"Unpkg"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://unpkg.com/@epispot/epijs@2.0.0/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"CDNJS"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdnjs.cloudflare.com/ajax/libs/epijs/2.0.0/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"Download"}},[a("p",[t._v("Alternatively, you can download the minified js attachment and use that yourself from "),a("a",{attrs:{href:"https://github.com/epispot/EpiJS/releases/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./epijs.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Download is also avaliable through npm/yarn:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n")])])]),a("p",[t._v("And in your html:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./node_modules/@epispot/epijs/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1)],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{399:function(t,s,a){"use strict";a.r(s);var n=a(52),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[t._v("#")]),t._v(" Installation")]),t._v(" "),a("p",[t._v("The prefered way of installation is through npm or in your html:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"NodeJS"}},[a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n")])])])]),t._v(" "),a("tab",{attrs:{name:"HTML"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1),t._v(" "),a("h2",{attrs:{id:"other-installation-methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#other-installation-methods"}},[t._v("#")]),t._v(" Other Installation Methods")]),t._v(" "),a("p",[t._v("EpiJS can also be built from the source, however, this might introduce bugs.")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("git")]),t._v(" clone https://github.com/epispot/EpiJS.git --depth"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("cd")]),t._v(" EpiJS\n")])])]),a("p",[t._v("Once cloned you can use it in the prefered way:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"NodeJS"}},[a("p",[t._v("Install")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(".")]),t._v("\n")])])]),a("p",[t._v("Require:")]),t._v(" "),a("div",{staticClass:"language-JAVASCRIPT extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" epijs "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'./epijs/'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"HTML"}},[a("p",[t._v("First build:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run build\n")])])]),a("p",[t._v("Then import:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1),t._v(" "),a("h3",{attrs:{id:"cdns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cdns"}},[t._v("#")]),t._v(" CDNs")]),t._v(" "),a("p",[t._v("EpiJS is avaliable on multiple CDNs:")]),t._v(" "),a("tabs",[a("tab",{attrs:{name:"JSDelivr"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS@2.0.0/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"Unpkg"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://unpkg.com/@epispot/epijs@2.0.0/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"CDNJS"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdnjs.cloudflare.com/ajax/libs/epijs/2.0.0/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"Download"}},[a("p",[t._v("Alternatively, you can download the minified js attachment and use that yourself from "),a("a",{attrs:{href:"https://github.com/epispot/EpiJS/releases/",target:"_blank",rel:"noopener noreferrer"}},[t._v("here"),a("OutboundLink")],1)]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./epijs.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Download is also avaliable through npm/yarn:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n")])])]),a("p",[t._v("And in your html:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("./node_modules/@epispot/epijs/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])])],1)],1)}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/10.932528a4.js b/docs/.vuepress/dist/assets/js/10.932528a4.js deleted file mode 100644 index 0484c37..0000000 --- a/docs/.vuepress/dist/assets/js/10.932528a4.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{374:function(t,a,s){"use strict";s.r(a);var e=s(45),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("EpiJS is a toolset for creating and analysing disease outbreaks with epidemiology. It's feature set includes:")]),t._v(" "),s("ul",[s("li",[t._v("Custom models")]),t._v(" "),s("li",[t._v("Pre-built SIR-based compartmental models")]),t._v(" "),s("li",[t._v("Fast execution")]),t._v(" "),s("li",[t._v("Web-compatible")]),t._v(" "),s("li",[t._v("Community Modeling")])]),t._v(" "),s("p",[t._v("along with many other features.")]),t._v(" "),s("h2",{attrs:{id:"install"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[t._v("#")]),t._v(" Install")]),t._v(" "),s("p",[t._v("EpiJS is avaliable through npm, yarn, or on the web.")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n")])])]),s("p",[t._v("Or use it in your webpage:")]),t._v(" "),s("div",{staticClass:"language-HTML extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}}),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("p",[t._v("See "),s("a",{attrs:{href:"./installation"}},[t._v("installation")]),t._v(" for more.")]),t._v(" "),s("h2",{attrs:{id:"metadata"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#metadata"}},[t._v("#")]),t._v(" Metadata")]),t._v(" "),s("p",[t._v("You can fetch metadata about the package with the following commands:")]),t._v(" "),s("div",{staticClass:"language-JavaScript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" EpiJS "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nEpiJS"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("about "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// General metadata")]),t._v("\nEpiJS"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("version "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Your current package version")]),t._v("\n")])])]),s("h2",{attrs:{id:"modules"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#modules"}},[t._v("#")]),t._v(" Modules")]),t._v(" "),s("p",[t._v("EpiJS has several modules for specfic use cases:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"./pre"}},[s("code",[t._v("Pre")])]),t._v(" - pre-compiled compartmental models")]),t._v(" "),s("li",[s("a",{attrs:{href:"./comp"}},[s("code",[t._v("Comp")])]),t._v(" - creating compartments which can be used in the model module")]),t._v(" "),s("li",[s("a",{attrs:{href:"./model"}},[s("code",[t._v("Model")])]),t._v(" - for creating models with custom and pre-built compartments")]),t._v(" "),s("li",[s("a",{attrs:{href:"./utils"}},[s("code",[t._v("Utils")])]),t._v(" - for epidemiological-related utilities")]),t._v(" "),s("li",[s("a",{attrs:{href:"./com"}},[s("code",[t._v("Com")])]),t._v(" - for better modelling of community spread")])]),t._v(" "),s("p",[t._v("Each of these compartments have documentation avaliable.")]),t._v(" "),s("h2",{attrs:{id:"the-epijs-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-epijs-manual"}},[t._v("#")]),t._v(" The EpiJS Manual")]),t._v(" "),s("p",[t._v("To get you started, I suggest you check out the "),s("a",{attrs:{href:"./manual/SIR"}},[t._v("EpiJS Manual")]),t._v(", which is good if you are starting out in epidemiology, or if you are starting out in EpiJS.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/11.5fad8896.js b/docs/.vuepress/dist/assets/js/11.5fad8896.js new file mode 100644 index 0000000..b6b0cf6 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/11.5fad8896.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{400:function(t,s,a){"use strict";a.r(s);var e=a(52),n=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"creating-a-sir-model-in-epijs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-sir-model-in-epijs"}},[t._v("#")]),t._v(" Creating a SIR Model in EpiJS")]),t._v(" "),a("h2",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("p"),a("div",{staticClass:"table-of-contents"},[a("ul",[a("li",[a("a",{attrs:{href:"#table-of-contents"}},[t._v("Table of Contents")])]),a("li",[a("a",{attrs:{href:"#the-base"}},[t._v("The Base")])]),a("li",[a("a",{attrs:{href:"#approach-no-1-custom-models"}},[t._v("Approach No. 1 - Custom Models")])]),a("li",[a("a",{attrs:{href:"#approach-no-2-pre-compiled-models"}},[t._v("Approach No. 2 - Pre-Compiled Models")])]),a("li",[a("a",{attrs:{href:"#approach-no-3-pre-compiled-models-with-community-modelling"}},[t._v("Approach No. 3 - Pre-Compiled Models with Community Modelling")])])])]),a("p"),t._v(" "),a("h2",{attrs:{id:"the-base"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-base"}},[t._v("#")]),t._v(" The Base")]),t._v(" "),a("p",[t._v("There are several ways to create an SIR model, and we're going to go through all of them. But first, we need to cover what the SIR model is. The SIR model is made up of several compartments:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("S")]),t._v("usceptible")]),t._v(" "),a("li",[a("strong",[t._v("I")]),t._v("nfected")]),t._v(" "),a("li",[a("strong",[t._v("R")]),t._v("ecovered/removed")])]),t._v(" "),a("p",[t._v("For now, we'll treat the last compartment as removed and not recovered, to better represent an outbreak. To model the outbreak, we need to introduce some more parameters:")]),t._v(" "),a("ul",[a("li",[t._v("β - The infection rate")]),t._v(" "),a("li",[t._v("γ - The recovery rate")]),t._v(" "),a("li",[t._v("R"),a("sub",[t._v("0")]),t._v(" or R-Naught - The number of people one infected infects\n​")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("You don't need to know the infection rate when modelling. You can easily calculate it by taking R-Naught and multiplying it with the recovery rate. Because of this, we only need to know 2 of the 3 compartments, since you can find the other by finding the product or quotient of the other two numbers.")])]),t._v(" "),a("p",[t._v("Additionally, we have N, the total population, which we can quickly define as the sum of the three populations.")]),t._v(" "),a("p",[t._v("With these definitions, we can start to create equations for each compartment:")]),t._v(" "),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"https://i.ibb.co/5837sMf/image.png",alt:"Equations for the SIR Model"}})]),t._v(" "),a("p",[t._v("And now that we know our equations, we can start to create the models in code.")]),t._v(" "),a("h2",{attrs:{id:"approach-no-1-custom-models"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-1-custom-models"}},[t._v("#")]),t._v(" Approach No. 1 - Custom Models")]),t._v(" "),a("p",[t._v("Our first aproach is the most extensible. This allows us to easily add compartments beyond the S, I, and R. Let's start with the setup:")]),t._v(" "),a("tabs",{attrs:{"cache-lifetime":"10",options:{useUrlFragment:!1}}},[a("tab",{attrs:{name:"HTML",id:"first-tab"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"NodeJS",id:"second-tab"}},[a("p",[t._v("Install:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n")])])]),a("p",[t._v("Require:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" comp "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Import the required classes into the program")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" Model "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Model\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" Idiom "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" comp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Idiom\n")])])])])],1),t._v(" "),a("p",[t._v("Now that we have everything set up, we can define each of our compartments and create the model")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Include configuration from above")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sir "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Let's go through this code. The first few lines define compartments with the "),a("code",[t._v("Idiom")]),t._v(" class, which allows you to create compartments with equations. The next section defines the starting values for the variables in the equation. We define the start susceptible population as 10000, the infected population as 100, and the recovered populaton as 0. We then also define p, which is our total population. The other parameters are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("B")]),t._v(" - Infection rate")]),t._v(" "),a("li",[a("code",[t._v("u")]),t._v(" - The recovery rate")])]),t._v(" "),a("p",[t._v("Finally we define our model with the Model class, where we first pass in a list with sublists, where we define the compartment and their corresponding values in the key, and then the key itself.")]),t._v(" "),a("p",[t._v("We can now test the SIR model like so:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get_data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get's data for the 100th day")]),t._v("\n")])])]),a("p",[t._v("This will return something like:")]),t._v(" "),a("div",{staticClass:"language-JSON extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"approach-no-2-pre-compiled-models"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-2-pre-compiled-models"}},[t._v("#")]),t._v(" Approach No. 2 - Pre-Compiled Models")]),t._v(" "),a("p",[t._v("This step is the easiest of them all, as you don't really have to write that much code, most of the work is done for you.")]),t._v(" "),a("p",[t._v("Let's start by setting up your program:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("SIR-Model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** All Code Snippets Go Here */")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Now, we can use the one line of code:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("rn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" s"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" u"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" stochastic"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Where:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("c")]),t._v(" is the canvas element,")]),t._v(" "),a("li",[a("code",[t._v("rn")]),t._v(" is R-Naught,")]),t._v(" "),a("li",[a("code",[t._v("s")]),t._v(" is the susceptible population,")]),t._v(" "),a("li",[a("code",[t._v("i")]),t._v(" is the infected population,")]),t._v(" "),a("li",[a("code",[t._v("time")]),t._v(" is the time to model for,")]),t._v(" "),a("li",[a("code",[t._v("u")]),t._v(" is the recovery rate,")]),t._v(" "),a("li",[a("code",[t._v("p")]),t._v(" is the total population,")]),t._v(" "),a("li",[t._v("and "),a("code",[t._v("stochastic")]),t._v(" is whether or not our model is stochastic")])]),t._v(" "),a("p",[t._v("So let's create our model:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirdata "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Now, we can plot it with the plots module:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirdata"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SIR-Model"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"approach-no-3-pre-compiled-models-with-community-modelling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-3-pre-compiled-models-with-community-modelling"}},[t._v("#")]),t._v(" Approach No. 3 - Pre-Compiled Models with Community Modelling")]),t._v(" "),a("p",[t._v("EpiJS also has a "),a("code",[t._v("com")]),t._v(" module, which allows for community modelling with pre-built or custom models. We're going to use the pre-build models for today, however you can read the docs for the modue for detailed instructions on custom models, which are useful if you want to use compartments from the "),a("code",[t._v("comp")]),t._v(" module in the "),a("code",[t._v("com")]),t._v(" module. First, however, let's set up our program:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("our-model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** All Code Snippets Go Here */")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("First, we need to create our community, and our virus:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Let's go through this. When we define the virus, we pass in two parameters:")]),t._v(" "),a("ul",[a("li",[t._v("R-naught - 5.7")]),t._v(" "),a("li",[t._v("Recovery rate - 2.1/100")])]),t._v(" "),a("p",[t._v("Next, for the community, we pass in three:")]),t._v(" "),a("ul",[a("li",[t._v("Population - 8.419 million")]),t._v(" "),a("li",[t._v("Infected population at the beggining of the outbreak - 300")]),t._v(" "),a("li",[t._v("Total population - 8.4187 million")])]),t._v(" "),a("p",[t._v("We now use an SIR model:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("You'll get a console output of data from these compartments.")]),t._v(" "),a("p",[t._v("However, if you wanted to compare two compartments, you could also do that:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid_variant "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'our-model'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\ncovid_outbreak "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nvariant_outbreak "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid_variant"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" covid_outbreak"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" variant_outbreak"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19 Variant"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("and we get:\n"),a("img",{attrs:{src:"https://i.ibb.co/LRMLNBL/image.png",alt:"Output of the compare function"}})]),t._v(" "),a("p",[t._v("​")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("You can compare anything, as long as they are an output of the com module. You can compare two outbreaks of the same community with different viruses, or different communities with the same virus, or even two different communities with two different viruses!")])])],1)}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/12.87248bdf.js b/docs/.vuepress/dist/assets/js/12.87248bdf.js deleted file mode 100644 index ffd123a..0000000 --- a/docs/.vuepress/dist/assets/js/12.87248bdf.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{376:function(t,s,a){"use strict";a.r(s);var e=a(45),n=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"creating-a-sir-model-in-epijs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#creating-a-sir-model-in-epijs"}},[t._v("#")]),t._v(" Creating a SIR Model in EpiJS")]),t._v(" "),a("h2",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("p"),a("div",{staticClass:"table-of-contents"},[a("ul",[a("li",[a("a",{attrs:{href:"#table-of-contents"}},[t._v("Table of Contents")])]),a("li",[a("a",{attrs:{href:"#the-base"}},[t._v("The Base")])]),a("li",[a("a",{attrs:{href:"#approach-no-1-custom-models"}},[t._v("Approach No. 1 - Custom Models")])]),a("li",[a("a",{attrs:{href:"#approach-no-2-pre-compiled-models"}},[t._v("Approach No. 2 - Pre-Compiled Models")])]),a("li",[a("a",{attrs:{href:"#approach-no-3-pre-compiled-models-with-community-modelling"}},[t._v("Approach No. 3 - Pre-Compiled Models with Community Modelling")])])])]),a("p"),t._v(" "),a("h2",{attrs:{id:"the-base"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#the-base"}},[t._v("#")]),t._v(" The Base")]),t._v(" "),a("p",[t._v("There are several ways to create an SIR model, and we're going to go through all of them. But first, we need to cover what the SIR model is. The SIR model is made up of several compartments:")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("S")]),t._v("usceptible")]),t._v(" "),a("li",[a("strong",[t._v("I")]),t._v("nfected")]),t._v(" "),a("li",[a("strong",[t._v("R")]),t._v("ecovered/removed")])]),t._v(" "),a("p",[t._v("For now, we'll treat the last compartment as removed and not recovered, to better represent an outbreak. To model the outbreak, we need to introduce some more parameters:")]),t._v(" "),a("ul",[a("li",[t._v("β - The infection rate")]),t._v(" "),a("li",[t._v("γ - The recovery rate")]),t._v(" "),a("li",[t._v("R"),a("sub",[t._v("0")]),t._v(" or R-Naught - The number of people one infected infects\n​")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("You don't need to know the infection rate when modelling. You can easily calculate it by taking R-Naught and multiplying it with the recovery rate. Because of this, we only need to know 2 of the 3 compartments, since you can find the other by finding the product or quotient of the other two numbers.")])]),t._v(" "),a("p",[t._v("Additionally, we have N, the total population, which we can quickly define as the sum of the three populations.")]),t._v(" "),a("p",[t._v("With these definitions, we can start to create equations for each compartment:")]),t._v(" "),a("div",{attrs:{align:"center"}},[a("img",{attrs:{src:"https://i.ibb.co/5837sMf/image.png",alt:"Equations for the SIR Model"}})]),t._v(" "),a("p",[t._v("And now that we know our equations, we can start to create the models in code.")]),t._v(" "),a("h2",{attrs:{id:"approach-no-1-custom-models"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-1-custom-models"}},[t._v("#")]),t._v(" Approach No. 1 - Custom Models")]),t._v(" "),a("p",[t._v("Our first aproach is the most extensible. This allows us to easily add compartments beyond the S, I, and R. Let's start with the setup:")]),t._v(" "),a("tabs",{attrs:{"cache-lifetime":"10",options:{useUrlFragment:!1}}},[a("tab",{attrs:{name:"HTML",id:"first-tab"}},[a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])])]),t._v(" "),a("tab",{attrs:{name:"NodeJS",id:"second-tab"}},[a("p",[t._v("Install:")]),t._v(" "),a("div",{staticClass:"language-SH extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n")])])]),a("p",[t._v("Require:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" comp "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Import the required classes into the program")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" Model "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Model\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" Idiom "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" comp"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Idiom\n")])])])])],1),t._v(" "),a("p",[t._v("Now that we have everything set up, we can define each of our compartments and create the model")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Include configuration from above")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sir "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Let's go through this code. The first few lines define compartments with the "),a("code",[t._v("Idiom")]),t._v(" class, which allows you to create compartments with equations. The next section defines the starting values for the variables in the equation. We define the start susceptible population as 10000, the infected population as 100, and the recovered populaton as 0. We then also define p, which is our total population. The other parameters are:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("B")]),t._v(" - Infection rate")]),t._v(" "),a("li",[a("code",[t._v("u")]),t._v(" - The recovery rate")])]),t._v(" "),a("p",[t._v("Finally we define our model with the Model class, where we first pass in a list with sublists, where we define the compartment and their corresponding values in the key, and then the key itself.")]),t._v(" "),a("p",[t._v("We can now test the SIR model like so:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v("console"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sir"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get_data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get's data for the 100th day")]),t._v("\n")])])]),a("p",[t._v("This will return something like:")]),t._v(" "),a("div",{staticClass:"language-JSON extra-class"},[a("pre",{pre:!0,attrs:{class:"language-json"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" data\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("h2",{attrs:{id:"approach-no-2-pre-compiled-models"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-2-pre-compiled-models"}},[t._v("#")]),t._v(" Approach No. 2 - Pre-Compiled Models")]),t._v(" "),a("p",[t._v("This step is the easiest of them all, as you don't really have to write that much code, most of the work is done for you.")]),t._v(" "),a("p",[t._v("Let's start by setting up your program:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("SIR-Model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** All Code Snippets Go Here */")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("Now, we can use the one line of code:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("rn"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" s"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" i"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" u"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" p"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" stochastic"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Where:")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("c")]),t._v(" is the canvas element,")]),t._v(" "),a("li",[a("code",[t._v("rn")]),t._v(" is R-Naught,")]),t._v(" "),a("li",[a("code",[t._v("s")]),t._v(" is the susceptible population,")]),t._v(" "),a("li",[a("code",[t._v("i")]),t._v(" is the infected population,")]),t._v(" "),a("li",[a("code",[t._v("time")]),t._v(" is the time to model for,")]),t._v(" "),a("li",[a("code",[t._v("u")]),t._v(" is the recovery rate,")]),t._v(" "),a("li",[a("code",[t._v("p")]),t._v(" is the total population,")]),t._v(" "),a("li",[t._v("and "),a("code",[t._v("stochastic")]),t._v(" is whether or not our model is stochastic")])]),t._v(" "),a("p",[t._v("So let's create our model:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirdata "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1.5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Now, we can plot it with the plots module:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirdata"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SIR-Model"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"approach-no-3-pre-compiled-models-with-community-modelling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#approach-no-3-pre-compiled-models-with-community-modelling"}},[t._v("#")]),t._v(" Approach No. 3 - Pre-Compiled Models with Community Modelling")]),t._v(" "),a("p",[t._v("EpiJS also has a "),a("code",[t._v("com")]),t._v(" module, which allows for community modelling with pre-built or custom models. We're going to use the pre-build models for today, however you can read the docs for the modue for detailed instructions on custom models, which are useful if you want to use compartments from the "),a("code",[t._v("comp")]),t._v(" module in the "),a("code",[t._v("com")]),t._v(" module. First, however, let's set up our program:")]),t._v(" "),a("div",{staticClass:"language-HTML extra-class"},[a("pre",{pre:!0,attrs:{class:"language-html"}},[a("code",[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("canvas")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("id")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")]),t._v("our-model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("'")])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}}),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),a("span",{pre:!0,attrs:{class:"token script"}},[a("span",{pre:!0,attrs:{class:"token language-javascript"}},[t._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** All Code Snippets Go Here */")]),t._v("\n")])]),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),a("p",[t._v("First, we need to create our community, and our virus:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("Let's go through this. When we define the virus, we pass in two parameters:")]),t._v(" "),a("ul",[a("li",[t._v("R-naught - 5.7")]),t._v(" "),a("li",[t._v("Recovery rate - 2.1/100")])]),t._v(" "),a("p",[t._v("Next, for the community, we pass in three:")]),t._v(" "),a("ul",[a("li",[t._v("Population - 8.419 million")]),t._v(" "),a("li",[t._v("Infected population at the beggining of the outbreak - 300")]),t._v(" "),a("li",[t._v("Total population - 8.4187 million")])]),t._v(" "),a("p",[t._v("We now use an SIR model:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" data "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nconsole"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("You'll get a console output of data from these compartments.")]),t._v(" "),a("p",[t._v("However, if you wanted to compare two compartments, you could also do that:")]),t._v(" "),a("div",{staticClass:"language-JavaScript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid_variant "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'our-model'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\ncovid_outbreak "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nvariant_outbreak "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid_variant"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("compare")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("chart"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" covid_outbreak"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" variant_outbreak"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19 Variant"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v("and we get:\n"),a("img",{attrs:{src:"https://i.ibb.co/LRMLNBL/image.png",alt:"Output of the compare function"}})]),t._v(" "),a("p",[t._v("​")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("You can compare anything, as long as they are an output of the com module. You can compare two outbreaks of the same community with different viruses, or different communities with the same virus, or even two different communities with two different viruses!")])])],1)}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/13.69389283.js b/docs/.vuepress/dist/assets/js/12.c3943688.js similarity index 99% rename from docs/.vuepress/dist/assets/js/13.69389283.js rename to docs/.vuepress/dist/assets/js/12.c3943688.js index fed84f1..b1cdd2f 100644 --- a/docs/.vuepress/dist/assets/js/13.69389283.js +++ b/docs/.vuepress/dist/assets/js/12.c3943688.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{377:function(t,a,e){"use strict";e.r(a);var s=e(45),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"migration-from-v1-to-v2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#migration-from-v1-to-v2"}},[t._v("#")]),t._v(" Migration from v1 to v2")]),t._v(" "),e("p",[t._v("A lot of things have changed from v1 to v2. First and foremost, we have officially dropped support for NodeJS 10, "),e("a",{attrs:{href:"https://github.com/epispot/EpiJS/pull/54",target:"_blank",rel:"noopener noreferrer"}},[t._v("along with MathJS dropping support"),e("OutboundLink")],1),t._v(". This shouldn't change much as NodeJS 10.x was "),e("a",{attrs:{href:"https://endoflife.date/nodejs",target:"_blank",rel:"noopener noreferrer"}},[t._v("already end-of-lifed"),e("OutboundLink")],1),t._v(", so we highly suggest upgrading your NodeJS version to the latest version or a LTS release.")]),t._v(" "),e("p",[t._v("Next, the big deprecation. This release now removes built-in plotting from the "),e("code",[t._v("pre")]),t._v(" module, and moved it to the brand-new "),e("code",[t._v("plots")]),t._v(" module. Why? Currently, the only way to interact with the data is through the chart, but other things you might want to do with the data, whatever they might be, most likely can't be done. So, we've changed the output to this format:")]),t._v(" "),e("div",{staticClass:"language-JSON extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n label"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" '"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("COMPARTMENT NAME"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("'\n data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" ..."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("Note that this is repeated for each compartment in a list, so to access a compartment, use the number corresponding to the value in the name of the model, for example, "),e("code",[t._v("data[0]")]),t._v(" would access the susceptible compartment in any model for the "),e("code",[t._v("pre")]),t._v(" compartment, as it comes first in all the SIR-based models. "),e("code",[t._v("data[1]")]),t._v(" might access an infected compartment or exposed compartment, based on the model, and so on.")]),t._v(" "),e("p",[t._v("However the syntax has also changed. Before it was:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("parameters"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Take for example the SIR model:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This creates a graph on the canvas for a model of an infection which has an r-naught of 4, susceptble population of 9999, infected population of 1, recovery rate of 1/21, and a total population of 10000, which it plots for 100 days. However, now, it changed to this:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" ourmodel "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ourmodel"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("We obviously removed the canvas parameter, as we no longer plot with the pre model, and added the "),e("code",[t._v("plot")]),t._v(" function from the "),e("code",[t._v("plots")]),t._v(" module to plot it to the canvas. Let's start with that, however. First, we select the model, "),e("code",[t._v("ourmodel")]),t._v(", and then select the canvas, and then we add this new parameter, 100, which selects the amount of days to plot for, which allows us to plot 50 days, or even 1 day, but, for this case, we plot it for 100. As for the new parameter in the "),e("code",[t._v("sir")]),t._v(" function, is a new feature we added. Stochastic modelling. This allows for more accurate modelling of models, and we set it to true to make sure we model stochastically. Stochastic modelling also allows for extinctions, so when the infected population is very low, the disease might go extinct, as there is a probability they won't spread it to the people needed to keep the disease alive. Stochastic models then also give you different outputs each time, to better model an outbreak. You can still set this to false if you'd like to still have the same graph as before.")]),t._v(" "),e("p",[t._v("Another important aspect is that this variable was added to the majority of functions/classes. Your Idiom class can now be stochastic if you add a "),e("code",[t._v("w")]),t._v(" to the equation, which EpiJS will auto-generate each run as a random number from the gaussian distribution. In the "),e("code",[t._v("com")]),t._v(" module, when running a function on a class, there's the new parameter "),e("code",[t._v("stochastic")]),t._v(", which is like the other parameter in "),e("code",[t._v("pre")]),t._v(", it's a boolean which defines whether the model is stochastic or not.")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" outbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" com"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("virus"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Is now:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" oubreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" com"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("virus"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Makes a stochastic sir model.")]),t._v("\n")])])]),e("p",[t._v("On the topic of the com module, the "),e("code",[t._v("h")]),t._v(" parameter is now gone on creating viruses, as there was never a pre-built "),e("code",[t._v("seihrd")]),t._v(" model, or any model which used a hospitalized compartment.")]),t._v(" "),e("p",[t._v("So, then why should you switch? You're doing fine right now! Well, not only is v2 a LTS release, meaning we'll support it for a long time (we're thinking around 2 major releases, if we even get that far!), but the release is introducing tons of new features!")]),t._v(" "),e("h2",{attrs:{id:"new-features-in-v2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#new-features-in-v2"}},[t._v("#")]),t._v(" New Features in "),e("code",[t._v("v2")])]),t._v(" "),e("ul",[e("li",[t._v("Stochastic modelling,")]),t._v(" "),e("li",[t._v("Custom models in "),e("code",[t._v("com")]),t._v(" module,")]),t._v(" "),e("li",[t._v("New pre-built compartments for you to use in "),e("code",[t._v("comp")]),t._v(", including:\n"),e("ul",[e("li",[t._v("Susceptible,")]),t._v(" "),e("li",[t._v("Exposed,")]),t._v(" "),e("li",[t._v("Infected,")]),t._v(" "),e("li",[t._v("Hospitalized,")]),t._v(" "),e("li",[t._v("Critical,")]),t._v(" "),e("li",[t._v("Recovered,")]),t._v(" "),e("li",[t._v("Dead,")]),t._v(" "),e("li",[t._v("and Vaccinated compartments,")])])]),t._v(" "),e("li",[t._v("A new utils compartment, which has epidemiological related utilities,")]),t._v(" "),e("li",[t._v("Bug fixes,")]),t._v(" "),e("li",[t._v("Customizable plotting,")]),t._v(" "),e("li",[t._v("Allows for more interaction with data from "),e("code",[t._v("pre")]),t._v(" module,")]),t._v(" "),e("li",[t._v("metadata on the web, through "),e("code",[t._v("EpiJS.about")]),t._v(", "),e("code",[t._v("EpiJS.version")]),t._v(", etc.")])]),t._v(" "),e("p",[t._v("and there's more coming in the new releases! You can just look at the "),e("a",{attrs:{href:"https://github.com/epispot/EpiJS/projects/1",target:"_blank",rel:"noopener noreferrer"}},[t._v("features project board"),e("OutboundLink")],1),t._v(" to get a preview at what's ahead!")]),t._v(" "),e("p",[t._v("Additionally, you can access all the functions via:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("EpiJS"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("module"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("like:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("EpiJS.pre.sir()\n")])])]),e("p",[t._v("why you would want to do that when you can just do "),e("code",[t._v("sir()")]),t._v(" is beyond me, but, it's an option!")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{401:function(t,a,e){"use strict";e.r(a);var s=e(52),n=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"migration-from-v1-to-v2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#migration-from-v1-to-v2"}},[t._v("#")]),t._v(" Migration from v1 to v2")]),t._v(" "),e("p",[t._v("A lot of things have changed from v1 to v2. First and foremost, we have officially dropped support for NodeJS 10, "),e("a",{attrs:{href:"https://github.com/epispot/EpiJS/pull/54",target:"_blank",rel:"noopener noreferrer"}},[t._v("along with MathJS dropping support"),e("OutboundLink")],1),t._v(". This shouldn't change much as NodeJS 10.x was "),e("a",{attrs:{href:"https://endoflife.date/nodejs",target:"_blank",rel:"noopener noreferrer"}},[t._v("already end-of-lifed"),e("OutboundLink")],1),t._v(", so we highly suggest upgrading your NodeJS version to the latest version or a LTS release.")]),t._v(" "),e("p",[t._v("Next, the big deprecation. This release now removes built-in plotting from the "),e("code",[t._v("pre")]),t._v(" module, and moved it to the brand-new "),e("code",[t._v("plots")]),t._v(" module. Why? Currently, the only way to interact with the data is through the chart, but other things you might want to do with the data, whatever they might be, most likely can't be done. So, we've changed the output to this format:")]),t._v(" "),e("div",{staticClass:"language-JSON extra-class"},[e("pre",{pre:!0,attrs:{class:"language-json"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n label"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" '"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("COMPARTMENT NAME"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("'\n data"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" ..."),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),e("p",[t._v("Note that this is repeated for each compartment in a list, so to access a compartment, use the number corresponding to the value in the name of the model, for example, "),e("code",[t._v("data[0]")]),t._v(" would access the susceptible compartment in any model for the "),e("code",[t._v("pre")]),t._v(" compartment, as it comes first in all the SIR-based models. "),e("code",[t._v("data[1]")]),t._v(" might access an infected compartment or exposed compartment, based on the model, and so on.")]),t._v(" "),e("p",[t._v("However the syntax has also changed. Before it was:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("parameters"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Take for example the SIR model:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("This creates a graph on the canvas for a model of an infection which has an r-naught of 4, susceptble population of 9999, infected population of 1, recovery rate of 1/21, and a total population of 10000, which it plots for 100 days. However, now, it changed to this:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" ourmodel "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("ourmodel"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'canvas'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("We obviously removed the canvas parameter, as we no longer plot with the pre model, and added the "),e("code",[t._v("plot")]),t._v(" function from the "),e("code",[t._v("plots")]),t._v(" module to plot it to the canvas. Let's start with that, however. First, we select the model, "),e("code",[t._v("ourmodel")]),t._v(", and then select the canvas, and then we add this new parameter, 100, which selects the amount of days to plot for, which allows us to plot 50 days, or even 1 day, but, for this case, we plot it for 100. As for the new parameter in the "),e("code",[t._v("sir")]),t._v(" function, is a new feature we added. Stochastic modelling. This allows for more accurate modelling of models, and we set it to true to make sure we model stochastically. Stochastic modelling also allows for extinctions, so when the infected population is very low, the disease might go extinct, as there is a probability they won't spread it to the people needed to keep the disease alive. Stochastic models then also give you different outputs each time, to better model an outbreak. You can still set this to false if you'd like to still have the same graph as before.")]),t._v(" "),e("p",[t._v("Another important aspect is that this variable was added to the majority of functions/classes. Your Idiom class can now be stochastic if you add a "),e("code",[t._v("w")]),t._v(" to the equation, which EpiJS will auto-generate each run as a random number from the gaussian distribution. In the "),e("code",[t._v("com")]),t._v(" module, when running a function on a class, there's the new parameter "),e("code",[t._v("stochastic")]),t._v(", which is like the other parameter in "),e("code",[t._v("pre")]),t._v(", it's a boolean which defines whether the model is stochastic or not.")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" outbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" com"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("virus"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("Is now:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" oubreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" com"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("virus"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" time"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Makes a stochastic sir model.")]),t._v("\n")])])]),e("p",[t._v("On the topic of the com module, the "),e("code",[t._v("h")]),t._v(" parameter is now gone on creating viruses, as there was never a pre-built "),e("code",[t._v("seihrd")]),t._v(" model, or any model which used a hospitalized compartment.")]),t._v(" "),e("p",[t._v("So, then why should you switch? You're doing fine right now! Well, not only is v2 a LTS release, meaning we'll support it for a long time (we're thinking around 2 major releases, if we even get that far!), but the release is introducing tons of new features!")]),t._v(" "),e("h2",{attrs:{id:"new-features-in-v2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#new-features-in-v2"}},[t._v("#")]),t._v(" New Features in "),e("code",[t._v("v2")])]),t._v(" "),e("ul",[e("li",[t._v("Stochastic modelling,")]),t._v(" "),e("li",[t._v("Custom models in "),e("code",[t._v("com")]),t._v(" module,")]),t._v(" "),e("li",[t._v("New pre-built compartments for you to use in "),e("code",[t._v("comp")]),t._v(", including:\n"),e("ul",[e("li",[t._v("Susceptible,")]),t._v(" "),e("li",[t._v("Exposed,")]),t._v(" "),e("li",[t._v("Infected,")]),t._v(" "),e("li",[t._v("Hospitalized,")]),t._v(" "),e("li",[t._v("Critical,")]),t._v(" "),e("li",[t._v("Recovered,")]),t._v(" "),e("li",[t._v("Dead,")]),t._v(" "),e("li",[t._v("and Vaccinated compartments,")])])]),t._v(" "),e("li",[t._v("A new utils compartment, which has epidemiological related utilities,")]),t._v(" "),e("li",[t._v("Bug fixes,")]),t._v(" "),e("li",[t._v("Customizable plotting,")]),t._v(" "),e("li",[t._v("Allows for more interaction with data from "),e("code",[t._v("pre")]),t._v(" module,")]),t._v(" "),e("li",[t._v("metadata on the web, through "),e("code",[t._v("EpiJS.about")]),t._v(", "),e("code",[t._v("EpiJS.version")]),t._v(", etc.")])]),t._v(" "),e("p",[t._v("and there's more coming in the new releases! You can just look at the "),e("a",{attrs:{href:"https://github.com/epispot/EpiJS/projects/1",target:"_blank",rel:"noopener noreferrer"}},[t._v("features project board"),e("OutboundLink")],1),t._v(" to get a preview at what's ahead!")]),t._v(" "),e("p",[t._v("Additionally, you can access all the functions via:")]),t._v(" "),e("div",{staticClass:"language-JavaScript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v("EpiJS"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("module"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("like:")]),t._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("EpiJS.pre.sir()\n")])])]),e("p",[t._v("why you would want to do that when you can just do "),e("code",[t._v("sir()")]),t._v(" is beyond me, but, it's an option!")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/13.de3abb58.js b/docs/.vuepress/dist/assets/js/13.de3abb58.js new file mode 100644 index 0000000..8ff3d59 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/13.de3abb58.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{402:function(t,s,a){"use strict";a.r(s);var e=a(52),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h3",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#model"}},[t._v("Model")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#get-data"}},[t._v("get_data")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#remove"}},[t._v("remove")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-2"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-2"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#add"}},[t._v("add")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-3"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-3"}},[t._v("Examples")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#mexport"}},[t._v("mexport")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-4"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-4"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#mimport"}},[t._v("mimport")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-5"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-5"}},[t._v("Examples")])])])])]),t._v(" "),a("h1",{attrs:{id:"model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model"}},[t._v("#")]),t._v(" Model")]),t._v(" "),a("p",[t._v("EpiJS module for creating custom models, which are made of compartments.")]),t._v(" "),a("p",[t._v("Import it with:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" model "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model\n")])])]),a("h2",{attrs:{id:"model-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-2"}},[t._v("#")]),t._v(" Model")]),t._v(" "),a("p",[t._v("Create a model.")]),t._v(" "),a("h3",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartments")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" Compartments in the model. Each should be a list, with the first value being the compartment, and the second being it's start value in the key.")]),t._v(" "),a("li",[a("code",[t._v("key")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),a("OutboundLink")],1)]),t._v(" The key of values for any variable used in the equation. If you use any variable which represents the population of a compartment, add the starting value into the key.")])]),t._v(" "),a("h3",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"get-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-data"}},[t._v("#")]),t._v(" get_data")]),t._v(" "),a("p",[t._v("Get data for the outbreak.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("time")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" The total time to model.")])]),t._v(" "),a("h4",{attrs:{id:"examples-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get_data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get data for 100 days.")]),t._v("\n")])])]),a("h3",{attrs:{id:"remove"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remove"}},[t._v("#")]),t._v(" remove")]),t._v(" "),a("p",[t._v("Remove a compartment from the model.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartment")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),a("OutboundLink")],1)]),t._v(" The compartment to remove.")])]),t._v(" "),a("h4",{attrs:{id:"examples-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("remove")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removes the recovered compartment.")]),t._v("\n")])])]),a("h3",{attrs:{id:"add"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add"}},[t._v("#")]),t._v(" add")]),t._v(" "),a("p",[t._v("Add a compartment to the model.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartment")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" The compartment to add, should be a list, with the first value being the compartment, and the second being it's value in the key.")]),t._v(" "),a("li",[a("code",[t._v("index")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" The index to add the compartment at.")])]),t._v(" "),a("h4",{attrs:{id:"examples-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("remove")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removes the susceptible compartment.")]),t._v("\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Adds the susceptible compartment back to the beginning")]),t._v("\n")])])]),a("h2",{attrs:{id:"mexport"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mexport"}},[t._v("#")]),t._v(" mexport")]),t._v(" "),a("p",[t._v("NodeJS only! Exports models to a file which can then be imported later on.")]),t._v(" "),a("h3",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("model")]),t._v(" The EpiJS model to export")]),t._v(" "),a("li",[a("code",[t._v("output")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The output file path, doesn't have to exist")]),t._v(" "),a("li",[a("code",[t._v("file_type")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(' The file type to output. Supported inputs are ".json" and ".js". (optional, default '),a("code",[t._v('".json"')]),t._v(")")])]),t._v(" "),a("h3",{attrs:{id:"examples-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("mexport")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"output.js"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" file_type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('".js"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"mimport"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mimport"}},[t._v("#")]),t._v(" mimport")]),t._v(" "),a("p",[t._v("NodeJS only! Imports a model from a file.")]),t._v(" "),a("h3",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("input")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The input file path, as a relative path.")]),t._v(" "),a("li",[a("code",[t._v("file_type")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(' The file type of the input. Supported inputs are ".json" and ".js". (optional, default '),a("code",[t._v('".json"')]),t._v(")")])]),t._v(" "),a("h3",{attrs:{id:"examples-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-6"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Use mexport to export a model into a file")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("mimport")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./output.json"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/14.2151a125.js b/docs/.vuepress/dist/assets/js/14.2151a125.js deleted file mode 100644 index f94679d..0000000 --- a/docs/.vuepress/dist/assets/js/14.2151a125.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{378:function(t,s,a){"use strict";a.r(s);var e=a(45),n=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h3",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#model"}},[t._v("Model")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#get_data"}},[t._v("get_data")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#remove"}},[t._v("remove")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-2"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-2"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#add"}},[t._v("add")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-3"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-3"}},[t._v("Examples")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#mexport"}},[t._v("mexport")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-4"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-4"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#mimport"}},[t._v("mimport")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-5"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-5"}},[t._v("Examples")])])])])]),t._v(" "),a("h1",{attrs:{id:"model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model"}},[t._v("#")]),t._v(" Model")]),t._v(" "),a("p",[t._v("EpiJS module for creating custom models, which are made of compartments.")]),t._v(" "),a("p",[t._v("Import it with:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" model "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("model\n")])])]),a("h2",{attrs:{id:"model-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-2"}},[t._v("#")]),t._v(" Model")]),t._v(" "),a("p",[t._v("Create a model.")]),t._v(" "),a("h3",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartments")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" Compartments in the model. Each should be a list, with the first value being the compartment, and the second being it's start value in the key.")]),t._v(" "),a("li",[a("code",[t._v("key")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),a("OutboundLink")],1)]),t._v(" The key of values for any variable used in the equation. If you use any variable which represents the population of a compartment, add the starting value into the key.")])]),t._v(" "),a("h3",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"get-data"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-data"}},[t._v("#")]),t._v(" get_data")]),t._v(" "),a("p",[t._v("Get data for the outbreak.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("time")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" The total time to model.")])]),t._v(" "),a("h4",{attrs:{id:"examples-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nmodel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get_data")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Get data for 100 days.")]),t._v("\n")])])]),a("h3",{attrs:{id:"remove"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#remove"}},[t._v("#")]),t._v(" remove")]),t._v(" "),a("p",[t._v("Remove a compartment from the model.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartment")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),a("OutboundLink")],1)]),t._v(" The compartment to remove.")])]),t._v(" "),a("h4",{attrs:{id:"examples-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("remove")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removes the recovered compartment.")]),t._v("\n")])])]),a("h3",{attrs:{id:"add"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add"}},[t._v("#")]),t._v(" add")]),t._v(" "),a("p",[t._v("Add a compartment to the model.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("compartment")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" The compartment to add, should be a list, with the first value being the compartment, and the second being it's value in the key.")])]),t._v(" "),a("h4",{attrs:{id:"examples-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\t\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" #model"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\t"),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" #get"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("data\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("remove")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Removes the susceptible compartment.")]),t._v("\nsirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Adds the susceptible compartment back.")]),t._v("\n")])])]),a("h2",{attrs:{id:"mexport"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mexport"}},[t._v("#")]),t._v(" mexport")]),t._v(" "),a("p",[t._v("NodeJS only! Exports models to a file which can then be imported later on.")]),t._v(" "),a("h3",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("model")]),t._v(" The EpiJS model to export")]),t._v(" "),a("li",[a("code",[t._v("output")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The output file path, doesn't have to exist")]),t._v(" "),a("li",[a("code",[t._v("file_type")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(' The file type to output. Supported inputs are ".json" and ".js". (optional, default '),a("code",[t._v('".json"')]),t._v(")")])]),t._v(" "),a("h3",{attrs:{id:"examples-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("mexport")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirm"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"output.js"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" file_type"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('".js"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"mimport"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mimport"}},[t._v("#")]),t._v(" mimport")]),t._v(" "),a("p",[t._v("NodeJS only! Imports a model from a file.")]),t._v(" "),a("h3",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("input")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The input file path, as a relative path.")]),t._v(" "),a("li",[a("code",[t._v("file_type")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(' The file type of the input. Supported inputs are ".json" and ".js". (optional, default '),a("code",[t._v('".json"')]),t._v(")")])]),t._v(" "),a("h3",{attrs:{id:"examples-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-6"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Use mexport to export a model into a file")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("mimport")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./output.json"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/14.68e929e6.js b/docs/.vuepress/dist/assets/js/14.68e929e6.js new file mode 100644 index 0000000..17c640f --- /dev/null +++ b/docs/.vuepress/dist/assets/js/14.68e929e6.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{403:function(t,s,a){"use strict";a.r(s);var e=a(52),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h3",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#plot"}},[t._v("plot")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples"}},[t._v("Examples")])])])])]),t._v(" "),a("h1",{attrs:{id:"plot"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plot"}},[t._v("#")]),t._v(" Plot")]),t._v(" "),a("p",[t._v("Graphs plots from the pre module.")]),t._v(" "),a("p",[t._v("Import it with:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" plots "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("plots\n")])])]),a("h2",{attrs:{id:"plot-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plot-2"}},[t._v("#")]),t._v(" plot")]),t._v(" "),a("p",[t._v("Plots models from pre or model modules. If in Node, this will generate a localhost, otherwise it will plot it in the HTML div element provided.")]),t._v(" "),a("h3",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("model")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),a("OutboundLink")],1)]),t._v(" A model class from the pre or model modules.")]),t._v(" "),a("li",[a("code",[t._v("time")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" The number of days to plot.")]),t._v(" "),a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The ID of the plot. If this is in HTML, it will be the ID of the div element for the graph.")]),t._v(" "),a("li",[a("code",[t._v("title")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The title of the graph. (optional, default "),a("code",[t._v("'Cases vs. Time'")]),t._v(")")])]),t._v(" "),a("h3",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" key "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10000")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"B"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"p"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"u"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirm "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Model")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" key"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirout1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SIR"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"SIR Model (Population vs. Time)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/15.1b080847.js b/docs/.vuepress/dist/assets/js/15.1b080847.js deleted file mode 100644 index 8892752..0000000 --- a/docs/.vuepress/dist/assets/js/15.1b080847.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{379:function(t,a,s){"use strict";s.r(a);var e=s(45),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h3",{attrs:{id:"table-of-contents"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#plot"}},[t._v("plot")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#examples"}},[t._v("Examples")])])])]),t._v(" "),s("li",[s("a",{attrs:{href:"#manipulate"}},[t._v("manipulate")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),s("li",[s("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])])])])]),t._v(" "),s("h2",{attrs:{id:"plot"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plot"}},[t._v("#")]),t._v(" Plot")]),t._v(" "),s("p",[t._v("Graphs plots from the pre module.")]),t._v(" "),s("p",[t._v("Import it with:")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" plots "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("plots\n")])])]),s("h2",{attrs:{id:"plot-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plot-2"}},[t._v("#")]),t._v(" plot")]),t._v(" "),s("p",[t._v("Plots a output of a model from the pre module.")]),t._v(" "),s("h3",{attrs:{id:"parameters"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("model")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),s("OutboundLink")],1)]),t._v(" The output from the pre module function.")]),t._v(" "),s("li",[s("code",[t._v("canvas")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTMLCanvasElement"),s("OutboundLink")],1)]),t._v(" The canvas to show the output.")]),t._v(" "),s("li",[s("code",[t._v("days")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),s("OutboundLink")],1)]),t._v(" The amount of days to plot")]),t._v(" "),s("li",[s("code",[t._v("colors")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),s("OutboundLink")],1)]),t._v(" Custom colors for the graph, in the same order the compartments are. (optional, default "),s("code",[t._v("null")]),t._v(")")]),t._v(" "),s("li",[s("code",[t._v("options")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),s("OutboundLink")],1)]),t._v(" Optional. Custom configuration to pass into the options parameter for chart.js, defaults to:")])]),t._v(" "),s("div",{staticClass:"language-JSON extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n title"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n display"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n text"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Total Cases"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n scales"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n yAxes"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n ticks"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n beginAtZero"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirout1 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10999")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirout1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"canvas-pre1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Plots data for 100 days onto the canvas-pre1 chart, with the data from the SIR model.")]),t._v("\n")])])]),s("p",[t._v("Returns "),s("strong",[t._v("any")]),t._v(" Returns the chart.js chart, if needed for modification.")]),t._v(" "),s("h2",{attrs:{id:"manipulate"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#manipulate"}},[t._v("#")]),t._v(" manipulate")]),t._v(" "),s("p",[t._v("Manipulate the chart.js graph")]),t._v(" "),s("h3",{attrs:{id:"parameters-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("id")]),t._v(" The chart.js graph")]),t._v(" "),s("li",[s("code",[t._v("mvalue")]),t._v(" "),s("strong",[s("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),s("OutboundLink")],1)]),t._v(" The value to manipulate in "),s("code",[t._v("chart.data.datasets[x]")]),t._v(". This can be any valid chart.js parameter. See "),s("a",{attrs:{href:"https://www.chartjs.org/docs/latest/charts/line.html#line-styling",target:"_blank",rel:"noopener noreferrer"}},[t._v("https://www.chartjs.org/docs/latest/charts/line.html#line-styling"),s("OutboundLink")],1)]),t._v(" "),s("li",[s("code",[t._v("value")]),t._v(" The value to insert into the graph")])]),t._v(" "),s("h3",{attrs:{id:"examples-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),s("div",{staticClass:"language-javascript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirout1 "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("9999")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("21")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("10999")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" sirplot "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("plot")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirout1"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"canvas-pre1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nsirplot"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("manipulate")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("sirplot"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"fill"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Set fill to true")]),t._v("\n")])])]),s("p",[t._v("Returns "),s("strong",[t._v("any")]),t._v(" The chart.js graph")])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/15.46739f33.js b/docs/.vuepress/dist/assets/js/15.46739f33.js new file mode 100644 index 0000000..b4cf3d3 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/15.46739f33.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{405:function(e,t,r){"use strict";r.r(t);var a=r(52),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h3",{attrs:{id:"table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[e._v("#")]),e._v(" Table of Contents")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#sir"}},[e._v("sir")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seir"}},[e._v("seir")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-1"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-1"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seird"}},[e._v("seird")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-2"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-2"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seihrd"}},[e._v("seihrd")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-3"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-3"}},[e._v("Examples")])])])])]),e._v(" "),r("h1",{attrs:{id:"pre"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pre"}},[e._v("#")]),e._v(" Pre")]),e._v(" "),r("p",[e._v("Pre-made models for disease outbreaks.")]),e._v(" "),r("p",[e._v("Import it with:")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[e._v(" "),r("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" pre "),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token function"}},[e._v("require")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token string"}},[e._v("'@epispot/epijs'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("pre\n")])])]),r("h2",{attrs:{id:"sir"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#sir"}},[e._v("#")]),e._v(" sir")]),e._v(" "),r("p",[e._v("The SIR Model. Returns the model as a "),r("code",[e._v("model")]),e._v(" class from the "),r("code",[e._v("model")]),e._v(" module.")]),e._v(" "),r("h3",{attrs:{id:"parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of th outbreak")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("let")]),e._v(" sirmodel "),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token function"}},[e._v("sir")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" A model class from the "),r("code",[e._v("model")]),e._v(" module. .")]),e._v(" "),r("h2",{attrs:{id:"seir"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seir"}},[e._v("#")]),e._v(" seir")]),e._v(" "),r("p",[e._v("The SEIR Model. Returns the model as a "),r("code",[e._v("model")]),e._v(" class from the "),r("code",[e._v("model")]),e._v(" module.")]),e._v(" "),r("h3",{attrs:{id:"parameters-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of th outbreak")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seir")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("7")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("7")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" A model class from the "),r("code",[e._v("model")]),e._v(" module. .")]),e._v(" "),r("h2",{attrs:{id:"seird"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seird"}},[e._v("#")]),e._v(" seird")]),e._v(" "),r("p",[e._v("The SEIRD Model. Returns the model as a "),r("code",[e._v("model")]),e._v(" class from the "),r("code",[e._v("model")]),e._v(" module.")]),e._v(" "),r("h3",{attrs:{id:"parameters-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("d")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seird")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("99999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("14")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" A model class from the "),r("code",[e._v("model")]),e._v(" module. .")]),e._v(" "),r("h2",{attrs:{id:"seihrd"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seihrd"}},[e._v("#")]),e._v(" seihrd")]),e._v(" "),r("p",[e._v("The SEIHRD Model. Returns the model as a "),r("code",[e._v("model")]),e._v(" class from the "),r("code",[e._v("model")]),e._v(" module.")]),e._v(" "),r("h3",{attrs:{id:"parameters-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("uh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("di")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("dh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("h")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The hospitalization rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seihrd")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("40")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("14")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("20")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("30")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" A model class from the "),r("code",[e._v("model")]),e._v(" module. .")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/17.113e2690.js b/docs/.vuepress/dist/assets/js/16.3658cb0b.js similarity index 97% rename from docs/.vuepress/dist/assets/js/17.113e2690.js rename to docs/.vuepress/dist/assets/js/16.3658cb0b.js index f73f6aa..04a33a1 100644 --- a/docs/.vuepress/dist/assets/js/17.113e2690.js +++ b/docs/.vuepress/dist/assets/js/16.3658cb0b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{381:function(e,a,r){"use strict";r.r(a);var t=r(45),s=Object(t.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h3",{attrs:{id:"table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[e._v("#")]),e._v(" Table of Contents")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#calcrn-1"}},[e._v("calcrn")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-1"}},[e._v("Parameters")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#calcb"}},[e._v("calcb")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-2"}},[e._v("Parameters")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#calcu"}},[e._v("calcu")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-3"}},[e._v("Parameters")])])])])]),e._v(" "),r("h1",{attrs:{id:"utils"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#utils"}},[e._v("#")]),e._v(" Utils")]),e._v(" "),r("p",[e._v("Epidemiological Utilities, like calculating the R-Naught and the infection rate of a disease.")]),e._v(" "),r("p",[e._v("Import it with:")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[e._v(" "),r("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" utils "),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token function"}},[e._v("require")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token string"}},[e._v("'@epispot/epijs'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("utils\n")])])]),r("h2",{attrs:{id:"calcrn"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcrn"}},[e._v("#")]),e._v(" calcrn")]),e._v(" "),r("p",[e._v("Calculate R-Naught")]),e._v(" "),r("h3",{attrs:{id:"parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("b")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The infection rate")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")])]),e._v(" "),r("h2",{attrs:{id:"calcb"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcb"}},[e._v("#")]),e._v(" calcb")]),e._v(" "),r("p",[e._v("Calculate Infection rate")]),e._v(" "),r("h3",{attrs:{id:"parameters-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R-Naught Value")]),e._v(" "),r("li",[r("code",[e._v("u1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")])]),e._v(" "),r("h2",{attrs:{id:"calcu"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcu"}},[e._v("#")]),e._v(" calcu")]),e._v(" "),r("p",[e._v("Calculate Recovery Rate")]),e._v(" "),r("h3",{attrs:{id:"parameters-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R-Naught Value")]),e._v(" "),r("li",[r("code",[e._v("b1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The infection rate")])])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{404:function(e,a,r){"use strict";r.r(a);var t=r(52),s=Object(t.a)({},(function(){var e=this,a=e.$createElement,r=e._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h3",{attrs:{id:"table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[e._v("#")]),e._v(" Table of Contents")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#calcrn-1"}},[e._v("calcrn")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-1"}},[e._v("Parameters")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#calcb"}},[e._v("calcb")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-2"}},[e._v("Parameters")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#calcu"}},[e._v("calcu")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-3"}},[e._v("Parameters")])])])])]),e._v(" "),r("h1",{attrs:{id:"utils"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#utils"}},[e._v("#")]),e._v(" Utils")]),e._v(" "),r("p",[e._v("Epidemiological Utilities, like calculating the R-Naught and the infection rate of a disease.")]),e._v(" "),r("p",[e._v("Import it with:")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[e._v(" "),r("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" utils "),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token function"}},[e._v("require")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token string"}},[e._v("'@epispot/epijs'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("utils\n")])])]),r("h2",{attrs:{id:"calcrn"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcrn"}},[e._v("#")]),e._v(" calcrn")]),e._v(" "),r("p",[e._v("Calculate R-Naught")]),e._v(" "),r("h3",{attrs:{id:"parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("b")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The infection rate")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")])]),e._v(" "),r("h2",{attrs:{id:"calcb"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcb"}},[e._v("#")]),e._v(" calcb")]),e._v(" "),r("p",[e._v("Calculate Infection rate")]),e._v(" "),r("h3",{attrs:{id:"parameters-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R-Naught Value")]),e._v(" "),r("li",[r("code",[e._v("u1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")])]),e._v(" "),r("h2",{attrs:{id:"calcu"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#calcu"}},[e._v("#")]),e._v(" calcu")]),e._v(" "),r("p",[e._v("Calculate Recovery Rate")]),e._v(" "),r("h3",{attrs:{id:"parameters-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R-Naught Value")]),e._v(" "),r("li",[r("code",[e._v("b1")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The infection rate")])])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/16.a484d9e5.js b/docs/.vuepress/dist/assets/js/16.a484d9e5.js deleted file mode 100644 index f361e2c..0000000 --- a/docs/.vuepress/dist/assets/js/16.a484d9e5.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{380:function(e,t,r){"use strict";r.r(t);var a=r(45),s=Object(a.a)({},(function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("h3",{attrs:{id:"table-of-contents"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[e._v("#")]),e._v(" Table of Contents")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#sir"}},[e._v("sir")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seir"}},[e._v("seir")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-1"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-1"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seird"}},[e._v("seird")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-2"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-2"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seihrd"}},[e._v("seihrd")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-3"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-3"}},[e._v("Examples")])])])]),e._v(" "),r("li",[r("a",{attrs:{href:"#seihcrd"}},[e._v("seihcrd")]),e._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"#parameters-4"}},[e._v("Parameters")])]),e._v(" "),r("li",[r("a",{attrs:{href:"#examples-4"}},[e._v("Examples")])])])])]),e._v(" "),r("h1",{attrs:{id:"pre"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pre"}},[e._v("#")]),e._v(" Pre")]),e._v(" "),r("p",[e._v("Pre-made models for disease outbreaks.")]),e._v(" "),r("p",[e._v("Import it with:")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[e._v(" "),r("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" pre "),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token function"}},[e._v("require")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token string"}},[e._v("'@epispot/epijs'")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),e._v("pre\n")])])]),r("h2",{attrs:{id:"sir"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#sir"}},[e._v("#")]),e._v(" sir")]),e._v(" "),r("p",[e._v("The SIR Model. Returns a chart.js graph with the total Susceptible, Infected, and Recovered after the given amount of time.")]),e._v(" "),r("h3",{attrs:{id:"parameters"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of th outbreak")]),e._v(" "),r("li",[r("code",[e._v("time")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The time the total simulation lasts.")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("sir")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" The data for the model as a list.")]),e._v(" "),r("h2",{attrs:{id:"seir"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seir"}},[e._v("#")]),e._v(" seir")]),e._v(" "),r("p",[e._v("The SEIR Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, and Recovered after the given amount of time.")]),e._v(" "),r("h3",{attrs:{id:"parameters-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of th outbreak")]),e._v(" "),r("li",[r("code",[e._v("t")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The time the total simulation lasts.")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seir")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("7")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("7")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" The data for the model as a list.")]),e._v(" "),r("h2",{attrs:{id:"seird"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seird"}},[e._v("#")]),e._v(" seird")]),e._v(" "),r("p",[e._v("The SEIRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Recovered, and Dead populations after the given amount of time.")]),e._v(" "),r("h3",{attrs:{id:"parameters-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("t")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The time the total simulation lasts.")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("d")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-3"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seird")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("99999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("14")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" The data for the model as a list.")]),e._v(" "),r("h2",{attrs:{id:"seihrd"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seihrd"}},[e._v("#")]),e._v(" seihrd")]),e._v(" "),r("p",[e._v("The SEIHRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Recovered, and Dead populations after the given amount of time.")]),e._v(" "),r("h3",{attrs:{id:"parameters-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("t")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The time the total simulation lasts.")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("uh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("di")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("dh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("h")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The hospitalization rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-4"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seihrd")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("265")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("40")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("14")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("20")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("30")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" The data for the model as a list.")]),e._v(" "),r("h2",{attrs:{id:"seihcrd"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#seihcrd"}},[e._v("#")]),e._v(" seihcrd")]),e._v(" "),r("p",[e._v("The SEIHCRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Critical, Recovered, and Dead populations after the given amount of time.")]),e._v(" "),r("h3",{attrs:{id:"parameters-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),r("ul",[r("li",[r("code",[e._v("rn")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" R Naught, or the amount of people one infected infects whlie infected.")]),e._v(" "),r("li",[r("code",[e._v("s")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Susceptible population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("i")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The Infected population at the beggining of the outbreak")]),e._v(" "),r("li",[r("code",[e._v("t")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The time the total simulation lasts.")]),e._v(" "),r("li",[r("code",[e._v("u")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("uh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("a")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The incubation period")]),e._v(" "),r("li",[r("code",[e._v("di")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the infected population")]),e._v(" "),r("li",[r("code",[e._v("dh")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for the hospitalized population")]),e._v(" "),r("li",[r("code",[e._v("ch")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The rate at which patients go to the critical stage from the hospitalized compartment.")]),e._v(" "),r("li",[r("code",[e._v("ci")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The rate at which patients go to the critical stage from the infected compartemnt.")]),e._v(" "),r("li",[r("code",[e._v("dc")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The death rate for critical patients")]),e._v(" "),r("li",[r("code",[e._v("uc")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The recovery rate for critical patients")]),e._v(" "),r("li",[r("code",[e._v("hc")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The rate at which a critical patient goes to the hospitalized compartment, and are no longer critical.")]),e._v(" "),r("li",[r("code",[e._v("ic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The rate at which a critical patient goes to the infected compartment, and are no longer critical.")]),e._v(" "),r("li",[r("code",[e._v("h")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The hospitalization rate")]),e._v(" "),r("li",[r("code",[e._v("p")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[e._v("Number"),r("OutboundLink")],1)]),e._v(" The total population.")]),e._v(" "),r("li",[r("code",[e._v("stochastic")]),e._v(" "),r("strong",[r("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[e._v("Boolean"),r("OutboundLink")],1)]),e._v(" Whether to make the model stochastic or not.")])]),e._v(" "),r("h3",{attrs:{id:"examples-5"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),r("div",{staticClass:"language-javascript extra-class"},[r("pre",{pre:!0,attrs:{class:"language-javascript"}},[r("code",[r("span",{pre:!0,attrs:{class:"token function"}},[e._v("seihcrd")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("4")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("9999")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("265")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("21")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("40")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("14")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("100")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("20")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("40")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("2")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("5")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("5")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("5")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("5")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("1")]),r("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("30")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token number"}},[e._v("10000")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(",")]),e._v(" "),r("span",{pre:!0,attrs:{class:"token boolean"}},[e._v("true")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),r("p",[e._v("Returns "),r("strong",[e._v("any")]),e._v(" The data for the model as a list.")])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/2.ad492dd0.js b/docs/.vuepress/dist/assets/js/2.ad492dd0.js new file mode 100644 index 0000000..27a2edf --- /dev/null +++ b/docs/.vuepress/dist/assets/js/2.ad492dd0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{337:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(29),n(81),n(338),n(109),n(340),n(194),n(80),n(112),n(7),n(113),n(34),n(114),n(187);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function f(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function p(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return p(n,e,i);if(Array.isArray(e))return Object.assign(p(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(p(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},338:function(t,e,n){"use strict";var i=n(10),r=n(191),a=n(8),s=n(82),o=n(20),u=n(30),l=n(53),c=n(192),h=n(193);r("match",(function(t,e,n){return[function(e){var n=u(this),r=null==e?void 0:l(e,t);return r?i(r,e,n):new RegExp(e)[t](o(n))},function(t){var i=a(this),r=o(t),u=n(e,i,r);if(u.done)return u.value;if(!i.global)return h(i,r);var l=i.unicode;i.lastIndex=0;for(var f,p=[],d=0;null!==(f=h(i,r));){var g=o(f[0]);p[d]=g,""===g&&(i.lastIndex=c(r,s(i.lastIndex),l)),d++}return 0===d?null:p}]}))},339:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},340:function(t,e,n){"use strict";var i=n(36),r=n(10),a=n(2),s=n(191),o=n(188),u=n(8),l=n(30),c=n(117),h=n(192),f=n(82),p=n(20),d=n(53),g=n(196),v=n(193),m=n(85),b=n(186),k=n(3),_=b.UNSUPPORTED_Y,x=Math.min,y=[].push,C=a(/./.exec),$=a(y),L=a("".slice);s("split",(function(t,e,n){var a;return a="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var a=p(l(this)),s=void 0===n?4294967295:n>>>0;if(0===s)return[];if(void 0===t)return[a];if(!o(t))return r(e,a,t,s);for(var u,c,h,f=[],d=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),v=0,b=new RegExp(t.source,d+"g");(u=r(m,b,a))&&!((c=b.lastIndex)>v&&($(f,L(a,v,u.index)),u.length>1&&u.index=s));)b.lastIndex===u.index&&b.lastIndex++;return v===a.length?!h&&C(b,"")||$(f,""):$(f,L(a,v)),f.length>s?g(f,0,s):f}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r(e,this,t,n)}:e,[function(e,n){var i=l(this),s=null==e?void 0:d(e,t);return s?r(s,e,i,n):r(a,p(i),e,n)},function(t,i){var r=u(this),s=p(t),o=n(a,r,s,i,a!==e);if(o.done)return o.value;var l=c(r,RegExp),d=r.unicode,g=(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(_?"g":"y"),m=new l(_?"^(?:"+r.source+")":r,g),b=void 0===i?4294967295:i>>>0;if(0===b)return[];if(0===s.length)return null===v(m,s)?[s]:[];for(var k=0,y=0,C=[];y@^][^\s!#%&*+<=>@^]*>/,N=/a/g,A=/a/g,D=new L(N)!==N,U=g.MISSED_STICKY,H=g.UNSUPPORTED_Y,W=i&&(!D||U||y||C||m((function(){return A[$]=!1,L(N)!=N||L(A)==A||"/a/i"!=L(N,"i")})));if(s("RegExp",W)){for(var G=function(t,e){var n,i,r,a,s,l,c=h(w,this),d=f(t),g=void 0===e,v=[],m=t;if(!c&&d&&g&&t.constructor===G)return t;if((d||h(w,t))&&(t=t.source,g&&(e="flags"in m?m.flags:S(m))),t=void 0===t?"":p(t),e=void 0===e?"":p(e),m=t,y&&"dotAll"in N&&(i=!!e&&R(e,"s")>-1)&&(e=j(e,/s/g,"")),n=e,U&&"sticky"in N&&(r=!!e&&R(e,"y")>-1)&&H&&(e=j(e,/y/g,"")),C&&(t=(a=function(t){for(var e,n=t.length,i=0,r="",a=[],s={},o=!1,u=!1,l=0,c="";i<=n;i++){if("\\"===(e=E(t,i)))e+=E(t,++i);else if("]"===e)o=!1;else if(!o)switch(!0){case"["===e:o=!0;break;case"("===e:I(P,T(t,i+1))&&(i+=2,u=!0),r+=e,l++;continue;case">"===e&&u:if(""===c||b(s,c))throw new O("Invalid capture group name");s[c]=!0,a[a.length]=[c,l],u=!1,c="";continue}u?c+=e:r+=e}return[r,a]}(t))[0],v=a[1]),s=o(L(t,e),c?this:w,G),(i||r||v.length)&&(l=k(s),i&&(l.dotAll=!0,l.raw=G(function(t){for(var e,n=t.length,i=0,r="",a=!1;i<=n;i++)"\\"!==(e=E(t,i))?a||"."!==e?("["===e?a=!0:"]"===e&&(a=!1),r+=e):r+="[\\s\\S]":r+=e+E(t,++i);return r}(t),n)),r&&(l.sticky=!0),v.length&&(l.groups=v)),t!==m)try{u(s,"source",""===m?"(?:)":m)}catch(t){}return s},B=function(t){t in G||l(G,t,{configurable:!0,get:function(){return L[t]},set:function(e){L[t]=e}})},M=c(L),q=0;M.length>q;)B(M[q++]);w.constructor=G,G.prototype=w,v(r,"RegExp",G)}_("RegExp")},345:function(t,e,n){var i=n(0),r=n(9),a=n(190),s=n(21),o=n(12).f,u=n(31).get,l=RegExp.prototype,c=i.TypeError;r&&a&&o(l,"dotAll",{configurable:!0,get:function(){if(this!==l){if("RegExp"===s(this))return!!u(this).dotAll;throw c("Incompatible receiver, RegExp required")}}})},346:function(t,e,n){var i=n(0),r=n(9),a=n(186).MISSED_STICKY,s=n(21),o=n(12).f,u=n(31).get,l=RegExp.prototype,c=i.TypeError;r&&a&&o(l,"sticky",{configurable:!0,get:function(){if(this!==l){if("RegExp"===s(this))return!!u(this).sticky;throw c("Incompatible receiver, RegExp required")}}})},347:function(t,e,n){"use strict";var i=n(2),r=n(83).PROPER,a=n(16),s=n(8),o=n(35),u=n(20),l=n(3),c=n(189),h=RegExp.prototype,f=h.toString,p=i(c),d=l((function(){return"/a/b"!=f.call({source:"a",flags:"b"})})),g=r&&"toString"!=f.name;(d||g)&&a(RegExp.prototype,"toString",(function(){var t=s(this),e=u(t.source),n=t.flags;return"/"+e+"/"+u(void 0===n&&o(h,t)&&!("flags"in h)?p(t):n)}),{unsafe:!0})},348:function(t,e,n){},349:function(t,e,n){},350:function(t,e,n){},351:function(t,e,n){},352:function(t,e,n){},353:function(t,e,n){},354:function(t,e){t.exports=function(t){return null==t}},355:function(t,e,n){},356:function(t,e,n){},357:function(t,e,n){},358:function(t,e,n){},359:function(t,e,n){},360:function(t,e,n){},364:function(t,e,n){"use strict";n.r(e);n(110),n(7);var i=n(337),r={name:"SidebarGroup",components:{DropdownTransition:n(365).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(364).default},methods:{isActive:i.e}},a=(n(385),n(52)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,"initial-open-group-index":t.item.initialOpenGroupIndex,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(386),n(29),n(109),n(80);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,f=c.sidebarDepth,p=Object(i.e)(a,h.path),d="auto"===h.type?p||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):p,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,f,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(387);function c(t,e){if("group"===e.type){var n=e.path&&Object(i.e)(t,e.path),r=e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}));return n||r}return!1}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data:function(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},f=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=f.exports},365:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(377),n(52)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},366:function(t,e,n){"use strict";var i=n(1),r=n(367);i({target:"String",proto:!0,forced:n(368)("link")},{link:function(t){return r(this,"a","href",t)}})},367:function(t,e,n){var i=n(2),r=n(30),a=n(20),s=/"/g,o=i("".replace);t.exports=function(t,e,n,i){var u=a(r(t)),l="<"+e;return""!==n&&(l+=" "+n+'="'+o(a(i),s,""")+'"'),l+">"+u+""}},368:function(t,e,n){var i=n(3);t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},369:function(t,e,n){"use strict";n(341)},370:function(t,e,n){var i=n(1),r=n(371);i({global:!0,forced:parseInt!=r},{parseInt:r})},371:function(t,e,n){var i=n(0),r=n(3),a=n(2),s=n(20),o=n(342).trim,u=n(339),l=i.parseInt,c=i.Symbol,h=c&&c.iterator,f=/^[+-]?0x/i,p=a(f.exec),d=8!==l(u+"08")||22!==l(u+"0x16")||h&&!r((function(){l(Object(h))}));t.exports=d?function(t,e){var n=o(s(t));return l(n,e>>>0||(p(f,n)?16:10))}:l},372:function(t,e,n){var i=n(83).PROPER,r=n(3),a=n(339);t.exports=function(t){return r((function(){return!!a[t]()||"​…᠎"!=="​…᠎"[t]()||i&&a[t].name!==t}))}},373:function(t,e,n){var i=n(5),r=n(6),a=n(84);t.exports=function(t,e,n){var s,o;return a&&i(s=e.constructor)&&s!==n&&r(o=s.prototype)&&o!==n.prototype&&a(t,o),t}},374:function(t,e,n){"use strict";var i,r=n(1),a=n(2),s=n(32).f,o=n(82),u=n(20),l=n(118),c=n(30),h=n(119),f=n(22),p=a("".endsWith),d=a("".slice),g=Math.min,v=h("endsWith");r({target:"String",proto:!0,forced:!!(f||v||(i=s(String.prototype,"endsWith"),!i||i.writable))&&!v},{endsWith:function(t){var e=u(c(this));l(t);var n=arguments.length>1?arguments[1]:void 0,i=e.length,r=void 0===n?i:g(o(n),i),a=u(t);return p?p(e,a,r):d(e,r-a.length,r)===a}})},375:function(t,e,n){"use strict";n(348)},376:function(t,e,n){"use strict";n(349)},377:function(t,e,n){"use strict";n(350)},378:function(t,e,n){"use strict";n(351)},379:function(t,e,n){"use strict";n(352)},380:function(t,e,n){"use strict";n(353)},381:function(t,e,n){"use strict";n(355)},382:function(t,e,n){var i=n(38),r=n(17),a=n(33);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},383:function(t,e,n){"use strict";n(356)},384:function(t,e,n){"use strict";n(357)},385:function(t,e,n){"use strict";n(358)},386:function(t,e,n){"use strict";var i=n(1),r=n(37).find,a=n(115),s=!0;"find"in[]&&Array(1).find((function(){s=!1})),i({target:"Array",proto:!0,forced:s},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},387:function(t,e,n){"use strict";n(359)},388:function(t,e,n){"use strict";n(360)},392:function(t,e,n){"use strict";n.r(e);n(366),n(110),n(7),n(111);var i=n(337),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI||!1===this.item.rel?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":null}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(52),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction.apply(null,arguments)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(369),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":null!==t.data.heroText?"main-title":null}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(370),n(343),n(187),n(114),n(34),n(29),n(338),n(198),n(199),n(194),n(81),n(344),n(345),n(346),n(347),n(80),n(340),n(109),n(374),n(201)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),f(t,i)},f=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},p={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(376),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),v=n(50),m=(n(200),n(365)),b=n(202),k=n.n(b),_={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return k()(e)===t},handleDropdown:function(){0===event.detail&&this.setOpen(!this.open)}}},x=(n(378),{name:"NavLinks",components:{NavLink:s,DropdownLink:Object(a.a)(_,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:t.handleDropdown}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow down"})]),t._v(" "),n("button",{staticClass:"mobile-dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),G=Object(a.a)(W,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=G.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/2.b0282dab.js b/docs/.vuepress/dist/assets/js/2.b0282dab.js deleted file mode 100644 index 9568824..0000000 --- a/docs/.vuepress/dist/assets/js/2.b0282dab.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{314:function(t,e,n){"use strict";n.d(e,"d",(function(){return i})),n.d(e,"a",(function(){return a})),n.d(e,"i",(function(){return s})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"b",(function(){return h})),n.d(e,"e",(function(){return p})),n.d(e,"k",(function(){return f})),n.d(e,"l",(function(){return d})),n.d(e,"c",(function(){return v})),n.d(e,"j",(function(){return m}));n(46),n(70),n(315),n(317),n(174),n(69),n(97),n(98),n(30),n(99),n(167);var i=/#.*$/,r=/\.(md|html)$/,a=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(r,"")}function u(t){return s.test(t)}function l(t){return/^mailto:/.test(t)}function c(t){return/^tel:/.test(t)}function h(t){if(u(t))return t;var e=t.match(i),n=e?e[0]:"",r=o(t);return a.test(r)?t:r+".html"+n}function p(t,e){var n=decodeURIComponent(t.hash),r=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!r||n===r)&&o(t.path)===o(e)}function f(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var r=e.split("/");n&&r[r.length-1]||r.pop();for(var a=t.replace(/^\//,"").split("/"),s=0;s3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return f(n,e,i);if(Array.isArray(e))return Object.assign(f(n,e[0],i),{title:e[1]});var a=e.children||[];return 0===a.length&&e.path?Object.assign(f(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,initialOpenGroupIndex:e.initialOpenGroupIndex,children:a.map((function(e){return t(e,n,i,r+1)})),collapsable:!1!==e.collapsable}}(t,r,l)})):[]}return[]}function g(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map((function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}}))}]}function v(t){var e;return(t=t.map((function(t){return Object.assign({},t)}))).forEach((function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)})),t.filter((function(t){return 2===t.level}))}function m(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},315:function(t,e,n){"use strict";var i=n(171),r=n(5),a=n(12),s=n(20),o=n(24),u=n(172),l=n(173);i("match",(function(t,e,n){return[function(e){var n=o(this),i=null==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](s(n))},function(t){var i=r(this),o=s(t),c=n(e,i,o);if(c.done)return c.value;if(!i.global)return l(i,o);var h=i.unicode;i.lastIndex=0;for(var p,f=[],d=0;null!==(p=l(i,o));){var g=s(p[0]);f[d]=g,""===g&&(i.lastIndex=u(o,a(i.lastIndex),h)),d++}return 0===d?null:f}]}))},316:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},317:function(t,e,n){"use strict";var i=n(171),r=n(168),a=n(5),s=n(24),o=n(102),u=n(172),l=n(12),c=n(20),h=n(173),p=n(72),f=n(170),d=n(1),g=f.UNSUPPORTED_Y,v=[].push,m=Math.min;i("split",(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=c(s(this)),a=void 0===n?4294967295:n>>>0;if(0===a)return[];if(void 0===t)return[i];if(!r(t))return e.call(i,t,a);for(var o,u,l,h=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),d=0,g=new RegExp(t.source,f+"g");(o=p.call(g,i))&&!((u=g.lastIndex)>d&&(h.push(i.slice(d,o.index)),o.length>1&&o.index=a));)g.lastIndex===o.index&&g.lastIndex++;return d===i.length?!l&&g.test("")||h.push(""):h.push(i.slice(d)),h.length>a?h.slice(0,a):h}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var r=s(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,r,n):i.call(c(r),e,n)},function(t,r){var s=a(this),p=c(t),f=n(i,s,p,r,i!==e);if(f.done)return f.value;var d=o(s,RegExp),v=s.unicode,b=(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.unicode?"u":"")+(g?"g":"y"),k=new d(g?"^(?:"+s.source+")":s,b),_=void 0===r?4294967295:r>>>0;if(0===_)return[];if(0===p.length)return null===h(k,p)?[p]:[];for(var x=0,C=0,y=[];C@^][^\s!#%&*+<=>@^]*>/,w=/a/g,O=/a/g,S=new y(w)!==w,I=f.UNSUPPORTED_Y,E=i&&(!S||I||_||x||g((function(){return O[C]=!1,y(w)!=w||y(O)==O||"/a/i"!=y(w,"i")})));if(a("RegExp",E)){for(var j=function(t,e){var n,i,r,a,u,l,f=this instanceof j,d=c(t),g=void 0===e,b=[],k=t;if(!f&&d&&g&&t.constructor===j)return t;if((d||t instanceof j)&&(t=t.source,g&&(e="flags"in k?k.flags:p.call(k))),t=void 0===t?"":h(t),e=void 0===e?"":h(e),k=t,_&&"dotAll"in w&&(i=!!e&&e.indexOf("s")>-1)&&(e=e.replace(/s/g,"")),n=e,I&&"sticky"in w&&(r=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,"")),x&&(t=(a=function(t){for(var e,n=t.length,i=0,r="",a=[],s={},o=!1,u=!1,l=0,c="";i<=n;i++){if("\\"===(e=t.charAt(i)))e+=t.charAt(++i);else if("]"===e)o=!1;else if(!o)switch(!0){case"["===e:o=!0;break;case"("===e:L.test(t.slice(i+1))&&(i+=2,u=!0),r+=e,l++;continue;case">"===e&&u:if(""===c||v(s,c))throw new SyntaxError("Invalid capture group name");s[c]=!0,a.push([c,l]),u=!1,c="";continue}u?c+=e:r+=e}return[r,a]}(t))[0],b=a[1]),u=s(y(t,e),f?this:$,j),(i||r||b.length)&&(l=m(u),i&&(l.dotAll=!0,l.raw=j(function(t){for(var e,n=t.length,i=0,r="",a=!1;i<=n;i++)"\\"!==(e=t.charAt(i))?a||"."!==e?("["===e?a=!0:"]"===e&&(a=!1),r+=e):r+="[\\s\\S]":r+=e+t.charAt(++i);return r}(t),n)),r&&(l.sticky=!0),b.length&&(l.groups=b)),t!==k)try{o(u,"source",""===k?"(?:)":k)}catch(t){}return u},A=function(t){t in j||u(j,t,{configurable:!0,get:function(){return y[t]},set:function(e){y[t]=e}})},N=l(y),T=0;N.length>T;)A(N[T++]);$.constructor=j,j.prototype=$,d(r,"RegExp",j)}b("RegExp")},322:function(t,e,n){"use strict";var i=n(19),r=n(5),a=n(20),s=n(1),o=n(169),u=RegExp.prototype,l=u.toString,c=s((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),h="toString"!=l.name;(c||h)&&i(RegExp.prototype,"toString",(function(){var t=r(this),e=a(t.source),n=t.flags;return"/"+e+"/"+a(void 0===n&&t instanceof RegExp&&!("flags"in u)?o.call(t):n)}),{unsafe:!0})},323:function(t,e,n){},324:function(t,e,n){},325:function(t,e,n){},326:function(t,e,n){},327:function(t,e,n){},328:function(t,e,n){},329:function(t,e){t.exports=function(t){return null==t}},330:function(t,e,n){},331:function(t,e,n){},332:function(t,e,n){},333:function(t,e,n){},334:function(t,e,n){},335:function(t,e,n){},339:function(t,e,n){"use strict";n.r(e);n(95);var i=n(314),r={name:"SidebarGroup",components:{DropdownTransition:n(340).a},props:["item","open","collapsable","depth"],beforeCreate:function(){this.$options.components.SidebarLinks=n(339).default},methods:{isActive:i.e}},a=(n(360),n(45)),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("RouterLink",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,"sidebar-depth":t.item.sidebarDepth,"initial-open-group-index":t.item.initialOpenGroupIndex,depth:t.depth+1}}):t._e()],1)],1)}),[],!1,null,null,null).exports;n(361),n(69);function o(t,e,n,i,r){var a={props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}};return r>2&&(a.style={"padding-left":r+"rem"}),t("RouterLink",a,n)}function u(t,e,n,r,a){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>a?null:t("ul",{class:"sidebar-sub-headers"},e.map((function(e){var l=Object(i.e)(r,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,l,e.level-1),u(t,e.children,n,r,a,s+1)])})))}var l={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,r=n.$page,a=(n.$site,n.$route),s=n.$themeConfig,l=n.$themeLocaleConfig,c=e.props,h=c.item,p=c.sidebarDepth,f=Object(i.e)(a,h.path),d="auto"===h.type?f||h.children.some((function(t){return Object(i.e)(a,h.basePath+"#"+t.slug)})):f,g="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,d),v=[r.frontmatter.sidebarDepth,p,l.sidebarDepth,s.sidebarDepth,1].find((function(t){return void 0!==t})),m=l.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[g,u(t,h.children,h.basePath,a,v)]:(d||m)&&h.headers&&!i.d.test(h.path)?[g,u(t,Object(i.c)(h.headers),h.path,a,v)]:g}};n(362);function c(t,e){if("group"===e.type){var n=e.path&&Object(i.e)(t,e.path),r=e.children.some((function(e){return"group"===e.type?c(t,e):"page"===e.type&&Object(i.e)(t,e.path)}));return n||r}return!1}var h={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(a.a)(l,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth","initialOpenGroupIndex"],data:function(){return{openGroupIndex:this.initialOpenGroupIndex||0}},watch:{$route:function(){this.refreshIndex()}},created:function(){this.refreshIndex()},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},p=Object(a.a)(h,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,(function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{"sidebar-depth":t.sidebarDepth,item:e}})],1)})),0):t._e()}),[],!1,null,null,null);e.default=p.exports},340:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},r=(n(352),n(45)),a=Object(r.a)(i,(function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},341:function(t,e,n){"use strict";var i=n(0),r=n(342);i({target:"String",proto:!0,forced:n(343)("link")},{link:function(t){return r(this,"a","href",t)}})},342:function(t,e,n){var i=n(24),r=n(20),a=/"/g;t.exports=function(t,e,n,s){var o=r(i(t)),u="<"+e;return""!==n&&(u+=" "+n+'="'+r(s).replace(a,""")+'"'),u+">"+o+""}},343:function(t,e,n){var i=n(1);t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},344:function(t,e,n){"use strict";n(318)},345:function(t,e,n){var i=n(0),r=n(346);i({global:!0,forced:parseInt!=r},{parseInt:r})},346:function(t,e,n){var i=n(3),r=n(20),a=n(319).trim,s=n(316),o=i.parseInt,u=/^[+-]?0[Xx]/,l=8!==o(s+"08")||22!==o(s+"0x16");t.exports=l?function(t,e){var n=a(r(t));return o(n,e>>>0||(u.test(n)?16:10))}:o},347:function(t,e,n){var i=n(1),r=n(316);t.exports=function(t){return i((function(){return!!r[t]()||"​…᠎"!="​…᠎"[t]()||r[t].name!==t}))}},348:function(t,e,n){var i=n(4),r=n(71);t.exports=function(t,e,n){var a,s;return r&&"function"==typeof(a=e.constructor)&&a!==n&&i(s=a.prototype)&&s!==n.prototype&&r(t,s),t}},349:function(t,e,n){"use strict";var i,r=n(0),a=n(26).f,s=n(12),o=n(20),u=n(103),l=n(24),c=n(104),h=n(21),p="".endsWith,f=Math.min,d=c("endsWith");r({target:"String",proto:!0,forced:!!(h||d||(i=a(String.prototype,"endsWith"),!i||i.writable))&&!d},{endsWith:function(t){var e=o(l(this));u(t);var n=arguments.length>1?arguments[1]:void 0,i=s(e.length),r=void 0===n?i:f(s(n),i),a=o(t);return p?p.call(e,a,r):e.slice(r-a.length,r)===a}})},350:function(t,e,n){"use strict";n(323)},351:function(t,e,n){"use strict";n(324)},352:function(t,e,n){"use strict";n(325)},353:function(t,e,n){"use strict";n(326)},354:function(t,e,n){"use strict";n(327)},355:function(t,e,n){"use strict";n(328)},356:function(t,e,n){"use strict";n(330)},357:function(t,e,n){var i=n(32),r=n(14),a=n(27);t.exports=function(t){return"string"==typeof t||!r(t)&&a(t)&&"[object String]"==i(t)}},358:function(t,e,n){"use strict";n(331)},359:function(t,e,n){"use strict";n(332)},360:function(t,e,n){"use strict";n(333)},361:function(t,e,n){"use strict";var i=n(0),r=n(31).find,a=n(100),s=!0;"find"in[]&&Array(1).find((function(){s=!1})),i({target:"Array",proto:!0,forced:s},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),a("find")},362:function(t,e,n){"use strict";n(334)},363:function(t,e,n){"use strict";n(335)},367:function(t,e,n){"use strict";n.r(e);n(341),n(95),n(96);var i=n(314),r={name:"NavLink",props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some((function(e){return e===t.link})):"/"===this.link},isNonHttpURI:function(){return Object(i.g)(this.link)||Object(i.h)(this.link)},isBlankTarget:function(){return"_blank"===this.target},isInternal:function(){return!Object(i.f)(this.link)&&!this.isBlankTarget},target:function(){return this.isNonHttpURI?null:this.item.target?this.item.target:Object(i.f)(this.link)?"_blank":""},rel:function(){return this.isNonHttpURI||!1===this.item.rel?null:this.item.rel?this.item.rel:this.isBlankTarget?"noopener noreferrer":null}},methods:{focusoutAction:function(){this.$emit("focusout")}}},a=n(45),s=Object(a.a)(r,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isInternal?n("RouterLink",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact},nativeOn:{focusout:function(e){return t.focusoutAction.apply(null,arguments)}}},[t._v("\n "+t._s(t.item.text)+"\n")]):n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.target,rel:t.rel},on:{focusout:t.focusoutAction}},[t._v("\n "+t._s(t.item.text)+"\n "),t.isBlankTarget?n("OutboundLink"):t._e()],1)}),[],!1,null,null,null).exports,o={name:"Home",components:{NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(344),Object(a.a)(o,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":null!==t.data.heroText?"main-title":null}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v("\n "+t._s(t.data.heroText||t.$title||"Hello")+"\n ")]):t._e(),t._v(" "),null!==t.data.tagline?n("p",{staticClass:"description"},[t._v("\n "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n ")]):t._e(),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,(function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])})),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n "+t._s(t.data.footer)+"\n ")]):t._e()],1)}),[],!1,null,null,null).exports),l=(n(345),n(320),n(167),n(99),n(30),n(46),n(315),n(178),n(179),n(174),n(70),n(321),n(322),n(69),n(317),n(349),n(181)),c=n.n(l),h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=c()(e,"title","");return c()(e,"frontmatter.tags")&&(i+=" ".concat(e.frontmatter.tags.join(" "))),n&&(i+=" ".concat(n)),p(t,i)},p=function(t,e){var n=function(t){return t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")},i=new RegExp("[^\0-]"),r=t.split(/\s+/g).map((function(t){return t.trim()})).filter((function(t){return!!t}));if(i.test(t))return r.some((function(t){return e.toLowerCase().indexOf(t)>-1}));var a=t.endsWith(" ");return new RegExp(r.map((function(t,e){return r.length!==e+1||a?"(?=.*\\b".concat(n(t),"\\b)"):"(?=.*\\b".concat(n(t),")")})).join("")+".+","gi").test(e)},f={name:"SearchBox",data:function(){return{query:"",focused:!1,focusIndex:0,placeholder:void 0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$site.themeConfig.searchMaxSuggestions||5,i=this.$localePath,r=[],a=0;a=n);a++){var s=e[a];if(this.getPageLocalePath(s)===i&&this.isSearchable(s))if(h(t,s))r.push(s);else if(s.headers)for(var o=0;o=n);o++){var u=s.headers[o];u.title&&h(t,s,u.title)&&r.push(Object.assign({},s,{path:s.path+"#"+u.slug,header:u}))}}return r}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},mounted:function(){this.placeholder=this.$site.themeConfig.searchPlaceholder||"",document.addEventListener("keydown",this.onHotkey)},beforeDestroy:function(){document.removeEventListener("keydown",this.onHotkey)},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter((function(e){return t.path.match(e)})).length>0},onHotkey:function(t){t.srcElement===document.body&&["s","/"].includes(t.key)&&(this.$refs.input.focus(),t.preventDefault())},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex "+t._s(e.header.title))]):t._e()])])})),0):t._e()])}),[],!1,null,null,null).exports),g=(n(351),Object(a.a)({},(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])}),[],!1,null,null,null).exports),v=n(43),m=(n(180),n(340)),b=n(182),k=n.n(b),_={name:"DropdownLink",components:{NavLink:s,DropdownTransition:m.a},props:{item:{required:!0}},data:function(){return{open:!1}},computed:{dropdownAriaLabel:function(){return this.item.ariaLabel||this.item.text}},watch:{$route:function(){this.open=!1}},methods:{setOpen:function(t){this.open=t},isLastItemOfArray:function(t,e){return k()(e)===t},handleDropdown:function(){0===event.detail&&this.setOpen(!this.open)}}},x=(n(353),{name:"NavLinks",components:{NavLink:s,DropdownLink:Object(a.a)(_,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("button",{staticClass:"dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:t.handleDropdown}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow down"})]),t._v(" "),n("button",{staticClass:"mobile-dropdown-title",attrs:{type:"button","aria-label":t.dropdownAriaLabel},on:{click:function(e){return t.setOpen(!t.open)}}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,(function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v("\n "+t._s(e.text)+"\n ")]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,(function(i){return n("li",{key:i.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:i},on:{focusout:function(n){t.isLastItemOfArray(i,e.items)&&t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0):n("NavLink",{attrs:{item:e},on:{focusout:function(n){t.isLastItemOfArray(e,t.item.items)&&t.setOpen(!1)}}})],1)})),0)])],1)}),[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,r=this.$site.themeConfig.locales||{},a={text:this.$themeLocaleConfig.selectText||"Languages",ariaLabel:this.$themeLocaleConfig.ariaLabel||"Select language",items:Object.keys(e).map((function(a){var s,o=e[a],u=r[a]&&r[a].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,a),i.some((function(t){return t.path===s}))||(s=a)),{text:u,link:s}}))};return[].concat(Object(v.a)(this.userNav),[a])}return this.userNav},userLinks:function(){return(this.nav||[]).map((function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})}))},repoLink:function(){var t=this.$site.themeConfig.repo;return t?/^https?:/.test(t)?t:"https://github.com/".concat(t):null},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;nMath.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),G=Object(a.a)(W,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("sidebar-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("sidebar-bottom")]},proxy:!0}],null,!0)}),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems},scopedSlots:t._u([{key:"top",fn:function(){return[t._t("page-top")]},proxy:!0},{key:"bottom",fn:function(){return[t._t("page-bottom")]},proxy:!0}],null,!0)})],1)}),[],!1,null,null,null);e.default=G.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/3.6af3db70.js b/docs/.vuepress/dist/assets/js/3.76f07777.js similarity index 62% rename from docs/.vuepress/dist/assets/js/3.6af3db70.js rename to docs/.vuepress/dist/assets/js/3.76f07777.js index f9b9a22..2890f7f 100644 --- a/docs/.vuepress/dist/assets/js/3.6af3db70.js +++ b/docs/.vuepress/dist/assets/js/3.76f07777.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{336:function(t,e,n){},364:function(t,e,n){"use strict";n(336)},382:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(364),n(45)),p=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=p.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{361:function(t,e,n){},389:function(t,e,n){"use strict";n(361)},406:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(389),n(52)),p=Object(r.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=p.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/4.2a5d96fc.js b/docs/.vuepress/dist/assets/js/4.a8768175.js similarity index 67% rename from docs/.vuepress/dist/assets/js/4.2a5d96fc.js rename to docs/.vuepress/dist/assets/js/4.a8768175.js index 0f55c80..66d4ec6 100644 --- a/docs/.vuepress/dist/assets/js/4.2a5d96fc.js +++ b/docs/.vuepress/dist/assets/js/4.a8768175.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{337:function(t,e,a){},365:function(t,e,a){"use strict";a(337)},369:function(t,e,a){"use strict";a.r(e);var n={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(365),a(45)),s=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{362:function(t,e,a){},390:function(t,e,a){"use strict";a(362)},394:function(t,e,a){"use strict";a.r(e);var n={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(390),a(52)),s=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.33ec2a2e.js b/docs/.vuepress/dist/assets/js/5.33ec2a2e.js deleted file mode 100644 index 9ddb3b5..0000000 --- a/docs/.vuepress/dist/assets/js/5.33ec2a2e.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{338:function(e,t,a){},366:function(e,t,a){"use strict";a(338)},370:function(e,t,a){"use strict";a.r(t);a(69),a(30),a(97),a(98);var o={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.activateCodeTab(e)}},mounted:function(){this.loadTabs()},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e},loadTabs:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,a){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=a),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab:function(e){this.codeTabs.forEach((function(e){e.elm&&e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},n=(a(366),a(45)),c=Object(n.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/5.abe8183b.js b/docs/.vuepress/dist/assets/js/5.abe8183b.js new file mode 100644 index 0000000..bf9bed9 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/5.abe8183b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{363:function(e,t,a){},391:function(e,t,a){"use strict";a(363)},395:function(e,t,a){"use strict";a.r(t);a(80),a(34),a(7),a(112),a(113);var o={name:"CodeGroup",data:function(){return{codeTabs:[],activeCodeTabIndex:-1}},watch:{activeCodeTabIndex:function(e){this.activateCodeTab(e)}},mounted:function(){this.loadTabs()},methods:{changeCodeTab:function(e){this.activeCodeTabIndex=e},loadTabs:function(){var e=this;this.codeTabs=(this.$slots.default||[]).filter((function(e){return Boolean(e.componentOptions)})).map((function(t,a){return""===t.componentOptions.propsData.active&&(e.activeCodeTabIndex=a),{title:t.componentOptions.propsData.title,elm:t.elm}})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab:function(e){this.codeTabs.forEach((function(e){e.elm&&e.elm.classList.remove("theme-code-block__active")})),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},n=(a(391),a(52)),c=Object(n.a)(o,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ClientOnly",[a("div",{staticClass:"theme-code-group"},[a("div",{staticClass:"theme-code-group__nav"},[a("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(t,o){return a("li",{key:t.title,staticClass:"theme-code-group__li"},[a("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(t.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?a("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/6.66b67ff0.js b/docs/.vuepress/dist/assets/js/6.f802771e.js similarity index 81% rename from docs/.vuepress/dist/assets/js/6.66b67ff0.js rename to docs/.vuepress/dist/assets/js/6.f802771e.js index 2f3281f..8b91e7e 100644 --- a/docs/.vuepress/dist/assets/js/6.66b67ff0.js +++ b/docs/.vuepress/dist/assets/js/6.f802771e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{368:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(45),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{393:function(t,e,s){"use strict";s.r(e);var n=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],o={methods:{getMsg:function(){return n[Math.floor(Math.random()*n.length)]}}},i=s(52),h=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=h.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.b814ca0b.js b/docs/.vuepress/dist/assets/js/7.b814ca0b.js new file mode 100644 index 0000000..17a702d --- /dev/null +++ b/docs/.vuepress/dist/assets/js/7.b814ca0b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{396:function(t,s,e){"use strict";e.r(s);var n=e(52),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("br"),this._v(" "),s("br"),this._v(" "),s("br")])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/7.bbf703d4.js b/docs/.vuepress/dist/assets/js/7.bbf703d4.js deleted file mode 100644 index 271ee00..0000000 --- a/docs/.vuepress/dist/assets/js/7.bbf703d4.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{371:function(t,e,s){"use strict";s.r(e);var r=s(45),i=Object(r.a)({},(function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("div",{attrs:{align:"center"}},[e("h2",[this._v("Don't take it from us, see for yourself!")]),this._v(" "),e("a",{attrs:{href:"/getting-started.html"}},[this._v("Get Started →")])]),this._v(" "),e("br"),this._v(" "),e("br"),this._v(" "),e("br")])}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.22d960c1.js b/docs/.vuepress/dist/assets/js/8.22d960c1.js deleted file mode 100644 index 0b36afc..0000000 --- a/docs/.vuepress/dist/assets/js/8.22d960c1.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{372:function(t,a,e){"use strict";e.r(a);var s=e(45),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h3",{attrs:{id:"table-of-contents"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#virus"}},[t._v("Virus")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples"}},[t._v("Examples")])])])]),t._v(" "),e("li",[e("a",{attrs:{href:"#community"}},[t._v("Community")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#sir"}},[t._v("sir")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-2"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-2"}},[t._v("Examples")])])])]),t._v(" "),e("li",[e("a",{attrs:{href:"#seir"}},[t._v("seir")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-3"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-3"}},[t._v("Examples")])])])]),t._v(" "),e("li",[e("a",{attrs:{href:"#seird"}},[t._v("seird")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-4"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-4"}},[t._v("Examples")])])])]),t._v(" "),e("li",[e("a",{attrs:{href:"#custom"}},[t._v("custom")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-5"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-5"}},[t._v("Examples")])])])])])]),t._v(" "),e("li",[e("a",{attrs:{href:"#compare"}},[t._v("compare")]),t._v(" "),e("ul",[e("li",[e("a",{attrs:{href:"#parameters-6"}},[t._v("Parameters")])]),t._v(" "),e("li",[e("a",{attrs:{href:"#examples-6"}},[t._v("Examples")])])])])]),t._v(" "),e("h1",{attrs:{id:"com"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#com"}},[t._v("#")]),t._v(" Com")]),t._v(" "),e("p",[t._v("EpiJS module for representing communities")]),t._v(" "),e("p",[t._v("Import it with:")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" com "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("com\n")])])]),e("h2",{attrs:{id:"virus"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#virus"}},[t._v("#")]),t._v(" Virus")]),t._v(" "),e("p",[t._v("Class representing a virus, which can infect a community.")]),t._v(" "),e("h3",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("rnaught")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The disease's R-Naught")]),t._v(" "),e("li",[e("code",[t._v("u")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The disease's recovery rate")]),t._v(" "),e("li",[e("code",[t._v("a")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The disease's incubation period (optional, default "),e("code",[t._v("0")]),t._v(")")]),t._v(" "),e("li",[e("code",[t._v("d")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The disease's death rate (for infected population) (optional, default "),e("code",[t._v("0")]),t._v(")")])]),t._v(" "),e("h3",{attrs:{id:"examples"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"community"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#community"}},[t._v("#")]),t._v(" Community")]),t._v(" "),e("p",[t._v("Class representing a community, which can be infected with a disease, and compared to other communities.")]),t._v(" "),e("h3",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("pop")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The population of the community")]),t._v(" "),e("li",[e("code",[t._v("i")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The start infected population of the community.")]),t._v(" "),e("li",[e("code",[t._v("s")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The start susceptible population of the community")])]),t._v(" "),e("h3",{attrs:{id:"examples-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"sir"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sir"}},[t._v("#")]),t._v(" sir")]),t._v(" "),e("p",[t._v("SIR model for the community")]),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("disease")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" A virus class. The virus to infect the community with and model for.")]),t._v(" "),e("li",[e("code",[t._v("time")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" Time to predict for.")]),t._v(" "),e("li",[e("code",[t._v("stochastic")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),e("OutboundLink")],1)]),t._v(" Whether to make the model stochastic or not.")])]),t._v(" "),e("h4",{attrs:{id:"examples-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\noutbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"seir"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#seir"}},[t._v("#")]),t._v(" seir")]),t._v(" "),e("p",[t._v("SEIR model for the community")]),t._v(" "),e("h4",{attrs:{id:"parameters-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("disease")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" A virus class. The virus to infect the community with and model for.")]),t._v(" "),e("li",[e("code",[t._v("time")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" Time to predict for.")]),t._v(" "),e("li",[e("code",[t._v("stochastic")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),e("OutboundLink")],1)]),t._v(" Whether to make the model stochastic or not.")])]),t._v(" "),e("h4",{attrs:{id:"examples-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\noutbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("seir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"seird"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#seird"}},[t._v("#")]),t._v(" seird")]),t._v(" "),e("p",[t._v("SEIRD model for the community")]),t._v(" "),e("h4",{attrs:{id:"parameters-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("disease")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" A virus class. The virus to infect the community with and model for.")]),t._v(" "),e("li",[e("code",[t._v("time")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" Time to predict for.")]),t._v(" "),e("li",[e("code",[t._v("stochastic")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),e("OutboundLink")],1)]),t._v(" Whether to make the model stochastic or not.")])]),t._v(" "),e("h4",{attrs:{id:"examples-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\noutbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("seird")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"custom"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#custom"}},[t._v("#")]),t._v(" custom")]),t._v(" "),e("p",[t._v("Custom model for the community")]),t._v(" "),e("h4",{attrs:{id:"parameters-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("p",[e("code",[t._v("compartments")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),e("OutboundLink")],1)]),t._v(" The compartments for the model. Pass in as an array with sub arrays of the form [compartment, name in key].\nNote that the 'name in key' is a string with the same value that is stored in your extra key, otherwise it should be the same name that we store it as.\nYou can find these names below.")]),t._v(" "),e("ul",[e("li",[t._v("Susceptible - stored as 'S'")]),t._v(" "),e("li",[t._v("Infected - stored as 'I'")]),t._v(" "),e("li",[t._v("Recovered - stored as 'R'")])])])]),t._v(" "),e("p",[t._v("Make sure that you use the same names that are stored in the key in the equations for the compartments. These values are found from parameters passed into the virus class and the community class.")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("time")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The time to predict for.")]),t._v(" "),e("li",[e("code",[t._v("virus")]),t._v(" The virus class to infect the community with.")]),t._v(" "),e("li",[e("code",[t._v("extrakey")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object",target:"_blank",rel:"noopener noreferrer"}},[t._v("Object"),e("OutboundLink")],1)]),t._v(" Optional, any extra parameters for the compartments equations.\nWe already have the following parameters:\n"),e("ul",[e("li",[t._v("Population - stored as 'p' in our key.")]),t._v(" "),e("li",[t._v("Susceptible Population - stored as 'S' in our key.")]),t._v(" "),e("li",[t._v("R-naught - stored as 'rn' in our key.")]),t._v(" "),e("li",[t._v("Recovery rate - stored as 'u' in our key.")]),t._v(" "),e("li",[t._v("Recovered - stored as 'R' in our key.")]),t._v(" "),e("li",[t._v("Infected - stored as 'I' in our key.")]),t._v(" "),e("li",[t._v("Death Rate - stored as 'd' in our key.")]),t._v(" "),e("li",[t._v("Incubation Period - stored as 'a' in our key.")])])])]),t._v(" "),e("h4",{attrs:{id:"examples-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-6"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I/p)"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+(B*S*I/p)-(u*I)"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" recovered "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"R+(u*I)"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\noutbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("custom")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("susceptible"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'S'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("infected"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'I'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("recovered"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'R'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),e("span",{pre:!0,attrs:{class:"token constant"}},[t._v("B")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rnaught"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("*")]),t._v("covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("u"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h2",{attrs:{id:"compare"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#compare"}},[t._v("#")]),t._v(" compare")]),t._v(" "),e("p",[t._v("Compare's two different outbreaks, communities, or anything else.")]),t._v(" "),e("h3",{attrs:{id:"parameters-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("code",[t._v("c")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement",target:"_blank",rel:"noopener noreferrer"}},[t._v("HTMLCanvasElement"),e("OutboundLink")],1)]),t._v(" The canvas element")]),t._v(" "),e("li",[e("code",[t._v("model1")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function",target:"_blank",rel:"noopener noreferrer"}},[t._v("Function"),e("OutboundLink")],1)]),t._v(" The first model to compare.")]),t._v(" "),e("li",[e("code",[t._v("model2")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function",target:"_blank",rel:"noopener noreferrer"}},[t._v("Function"),e("OutboundLink")],1)]),t._v(" The second model to compare.")]),t._v(" "),e("li",[e("code",[t._v("m1name")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),e("OutboundLink")],1)]),t._v(" The name of the first model")]),t._v(" "),e("li",[e("code",[t._v("m2name")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),e("OutboundLink")],1)]),t._v(" The name of the second model")]),t._v(" "),e("li",[e("code",[t._v("days")]),t._v(" "),e("strong",[e("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),e("OutboundLink")],1)]),t._v(" The total amount of days to compare for.")])]),t._v(" "),e("h3",{attrs:{id:"examples-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples-7"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("div",{staticClass:"language-javascript extra-class"},[e("pre",{pre:!0,attrs:{class:"language-javascript"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" NewYorkCity "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Community")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8419000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("300")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("8418700")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.7")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("2.1")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" covid_variant "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Virus")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" chart "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" document"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("getElementById")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'model'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\ncovid_outbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nvariant_outbreak "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" NewYorkCity"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("sir")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("covid_variant"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token function"}},[t._v("compare")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("chart"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" covid_outbreak"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" variant_outbreak"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[t._v('"COVID-19 Variant"')]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// We chose 100 as the amount of days, but it could be 50 or 25, not the lenght of the prediction that was in the model.")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/8.696a9b2b.js b/docs/.vuepress/dist/assets/js/8.696a9b2b.js new file mode 100644 index 0000000..832981b --- /dev/null +++ b/docs/.vuepress/dist/assets/js/8.696a9b2b.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{397:function(t,e,a){"use strict";a.r(e);var r=a(52),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h3",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#idiom"}},[t._v("Idiom")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#susceptible"}},[t._v("Susceptible")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-2"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-2"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-1"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-3"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#infected"}},[t._v("Infected")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-4"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-3"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-2"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-5"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#exposed"}},[t._v("Exposed")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-6"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-4"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-3"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-7"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#critical"}},[t._v("Critical")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-8"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-5"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-4"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-9"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#hospitalized"}},[t._v("Hospitalized")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-10"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-6"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-5"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-11"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#dead"}},[t._v("Dead")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-12"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-7"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-6"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-13"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#vaccinated"}},[t._v("Vaccinated")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-14"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-8"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-7"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-15"}},[t._v("Parameters")])])])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#recovered"}},[t._v("Recovered")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-16"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-9"}},[t._v("Examples")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#addsub-8"}},[t._v("addSub")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-17"}},[t._v("Parameters")])])])])])])]),t._v(" "),a("h1",{attrs:{id:"comp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#comp"}},[t._v("#")]),t._v(" Comp")]),t._v(" "),a("p",[t._v("EpiJS module for creating compartments, which can be combined into models.")]),t._v(" "),a("p",[t._v("Import it with:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" comp "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("comp\n")])])]),a("h2",{attrs:{id:"idiom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#idiom"}},[t._v("#")]),t._v(" Idiom")]),t._v(" "),a("p",[t._v("Class for a custom compartments.")]),t._v(" "),a("h3",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("equation")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key.\nIf using other compartment classes, they each have their own corresponding variable:* 'S' - Susceptible\n"),a("ul",[a("li",[t._v("'E' - Exposed")]),t._v(" "),a("li",[t._v("'I' - Infectious")]),t._v(" "),a("li",[t._v("'R' - Recovered")]),t._v(" "),a("li",[t._v("'D' - Dead")]),t._v(" "),a("li",[t._v("'C' - Critical")]),t._v(" "),a("li",[t._v("'H' - Hospitalized")]),t._v(" "),a("li",[t._v("'V' - Vaccinated")]),t._v(" "),a("li",[t._v("'w' - Reserved for stochastic models. If put, it will be replaced with a random number generated from the gaussian distribution.")])])])]),t._v(" "),a("h3",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h4",{attrs:{id:"examples-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" infected "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I+((B*S*I)/p)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\ninfected"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addSub")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Asymptomatic"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 10% of the infected population are asymptomatic.")]),t._v("\n")])])]),a("h2",{attrs:{id:"susceptible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#susceptible"}},[t._v("#")]),t._v(" Susceptible")]),t._v(" "),a("p",[t._v("Class for Suscepible compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current susceptible population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "S" as the id. This parameter is useful\nif you want to model a disease with re-susceptibility.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will\nauto generate the equations from what you pass in.")])]),t._v(" "),a("h3",{attrs:{id:"examples-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a number as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a string because we want to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. This applies to the prev parameter too. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("S")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Susceptible")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-2"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"infected"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#infected"}},[t._v("#")]),t._v(" Infected")]),t._v(" "),a("p",[t._v("Class for Infected compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current infected population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "I" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("I")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Infected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-3"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"exposed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#exposed"}},[t._v("#")]),t._v(" Exposed")]),t._v(" "),a("p",[t._v("Class for Exposed compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current exposed population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "E" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("E")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exposed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-4"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"critical"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#critical"}},[t._v("#")]),t._v(" Critical")]),t._v(" "),a("p",[t._v("Class for Critical compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current critical population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "C" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-6"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("C")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Critical")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.14")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"H"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-5"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"hospitalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hospitalized"}},[t._v("#")]),t._v(" Hospitalized")]),t._v(" "),a("p",[t._v("Class for Hospitalized compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current hospitalized population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "H" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-7"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("H")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Hospitalized")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"E"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-6"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"dead"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dead"}},[t._v("#")]),t._v(" Dead")]),t._v(" "),a("p",[t._v("Class for the Dead compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments. This is multiplied by the current dead population.\nUseful if you want to have a dead population that can also be the walking dead.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "D" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-8"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("D")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dead")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This disease also gives you a 3/10 chance to come alive after death.")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-7"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"vaccinated"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vaccinated"}},[t._v("#")]),t._v(" Vaccinated")]),t._v(" "),a("p",[t._v("Class for Vaccinated compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "V" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-9"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("I")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Infected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.001")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S*0.4"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-8"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])]),t._v(" "),a("h2",{attrs:{id:"recovered"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#recovered"}},[t._v("#")]),t._v(" Recovered")]),t._v(" "),a("p",[t._v("Class for Recovered compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "V" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-10"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("R")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Recovered")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"addsub-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#addsub-9"}},[t._v("#")]),t._v(" addSub")]),t._v(" "),a("p",[t._v("Add a subcompartment to this compartment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("name")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" Name of sub-compartment.")]),t._v(" "),a("li",[a("code",[t._v("percentage")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number",target:"_blank",rel:"noopener noreferrer"}},[t._v("Number"),a("OutboundLink")],1)]),t._v(" Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.")])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/9.570eb5e8.js b/docs/.vuepress/dist/assets/js/9.570eb5e8.js deleted file mode 100644 index 6181b0f..0000000 --- a/docs/.vuepress/dist/assets/js/9.570eb5e8.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{373:function(t,e,a){"use strict";a.r(e);var s=a(45),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h3",{attrs:{id:"table-of-contents"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#table-of-contents"}},[t._v("#")]),t._v(" Table of Contents")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#idiom"}},[t._v("Idiom")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#susceptible"}},[t._v("Susceptible")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-1"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-1"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#infected"}},[t._v("Infected")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-2"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-2"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#exposed"}},[t._v("Exposed")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-3"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-3"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#critical"}},[t._v("Critical")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-4"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-4"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#hospitalized"}},[t._v("Hospitalized")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-5"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-5"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#dead"}},[t._v("Dead")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-6"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-6"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#vaccinated"}},[t._v("Vaccinated")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-7"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-7"}},[t._v("Examples")])])])]),t._v(" "),a("li",[a("a",{attrs:{href:"#recovered"}},[t._v("Recovered")]),t._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"#parameters-8"}},[t._v("Parameters")])]),t._v(" "),a("li",[a("a",{attrs:{href:"#examples-8"}},[t._v("Examples")])])])])]),t._v(" "),a("h1",{attrs:{id:"comp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#comp"}},[t._v("#")]),t._v(" Comp")]),t._v(" "),a("p",[t._v("EpiJS module for creating compartments, which can be combined into models.")]),t._v(" "),a("p",[t._v("Import it with:")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" comp "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("comp\n")])])]),a("h2",{attrs:{id:"idiom"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#idiom"}},[t._v("#")]),t._v(" Idiom")]),t._v(" "),a("p",[t._v("Class for a custom compartments.")]),t._v(" "),a("h3",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("equation")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String",target:"_blank",rel:"noopener noreferrer"}},[t._v("String"),a("OutboundLink")],1)]),t._v(" The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key.\nIf using other compartment classes, they each have their own corresponding variable:\n"),a("ul",[a("li",[t._v("'S' - Susceptible")]),t._v(" "),a("li",[t._v("'E' - Exposed")]),t._v(" "),a("li",[t._v("'I' - Infectious")]),t._v(" "),a("li",[t._v("'R' - Recovered")]),t._v(" "),a("li",[t._v("'D' - Dead")]),t._v(" "),a("li",[t._v("'C' - Critical")]),t._v(" "),a("li",[t._v("'H' - Hospitalized")]),t._v(" "),a("li",[t._v("'V' - Vaccinated")]),t._v(" "),a("li",[t._v("'w' - Reserved for stochastic models. If put, it will be replaced with a random number generated from the gaussian distribution.")])])])]),t._v(" "),a("h3",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" susceptible "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Idiom")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S-(B*S*I)"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"susceptible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#susceptible"}},[t._v("#")]),t._v(" Susceptible")]),t._v(" "),a("p",[t._v("Class for Suscepible compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current susceptible population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "S" as the id. This parameter is useful\nif you want to model a disease with re-susceptibility.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will\nauto generate the equations from what you pass in.")])]),t._v(" "),a("h3",{attrs:{id:"examples-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-2"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a number as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a string because we want to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. This applies to the prev parameter too. ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("S")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Susceptible")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"infected"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#infected"}},[t._v("#")]),t._v(" Infected")]),t._v(" "),a("p",[t._v("Class for Infected compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current infected population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "I" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-3"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("I")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Infected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"exposed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#exposed"}},[t._v("#")]),t._v(" Exposed")]),t._v(" "),a("p",[t._v("Class for Exposed compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current exposed population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "E" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-4"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("E")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Exposed")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("14")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S*0.4/N"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"critical"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#critical"}},[t._v("#")]),t._v(" Critical")]),t._v(" "),a("p",[t._v("Class for Critical compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current critical population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "C" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-5"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("C")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Critical")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.14")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"H"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"hospitalized"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hospitalized"}},[t._v("#")]),t._v(" Hospitalized")]),t._v(" "),a("p",[t._v("Class for Hospitalized compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments This is multiplied by the current hospitalized population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "H" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-6"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("H")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Hospitalized")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"E"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"dead"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dead"}},[t._v("#")]),t._v(" Dead")]),t._v(" "),a("p",[t._v("Class for the Dead compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments. This is multiplied by the current dead population.\nUseful if you want to have a dead population that can also be the walking dead.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "D" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-7"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("D")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Dead")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This disease also gives you a 3/10 chance to come alive after death.")]),t._v("\n")])])]),a("h2",{attrs:{id:"vaccinated"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vaccinated"}},[t._v("#")]),t._v(" Vaccinated")]),t._v(" "),a("p",[t._v("Class for Vaccinated compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "V" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-8"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("I")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Infected")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.001")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"S*0.4"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h2",{attrs:{id:"recovered"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#recovered"}},[t._v("#")]),t._v(" Recovered")]),t._v(" "),a("p",[t._v("Class for Recovered compartment.")]),t._v(" "),a("h3",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("code",[t._v("next")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(" List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.")]),t._v(" "),a("li",[a("code",[t._v("prev")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array",target:"_blank",rel:"noopener noreferrer"}},[t._v("Array"),a("OutboundLink")],1)]),t._v(' List of rates of the previous compartments, which include sub-arrays\nwith the compartment id (one letter only), as a string, and the rate for the compartment.\nIf reffering to this compartment\'s population, use "V" as the id.')]),t._v(" "),a("li",[a("code",[t._v("stochastic")]),t._v(" "),a("strong",[a("a",{attrs:{href:"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean",target:"_blank",rel:"noopener noreferrer"}},[t._v("Boolean"),a("OutboundLink")],1)]),t._v(" If true, the compartment will be stochastic.")])]),t._v(" "),a("h3",{attrs:{id:"examples-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples-9"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),a("div",{staticClass:"language-javascript extra-class"},[a("pre",{pre:!0,attrs:{class:"language-javascript"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Note that you can pass in a string as a rate too, ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// but we use a number in this case because we don't need to multiply ")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// by other compartment populations. We do actually do this for the prev parameter, though.")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[t._v("R")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Recovered")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v('"I"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])])}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/9.f7cf1c81.js b/docs/.vuepress/dist/assets/js/9.f7cf1c81.js new file mode 100644 index 0000000..e0f8330 --- /dev/null +++ b/docs/.vuepress/dist/assets/js/9.f7cf1c81.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{398:function(t,a,s){"use strict";s.r(a);var e=s(52),n=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"getting-started"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting Started")]),t._v(" "),s("p",[t._v("EpiJS is a toolset for creating and analysing disease outbreaks with epidemiology. It's feature set includes:")]),t._v(" "),s("ul",[s("li",[t._v("Custom models")]),t._v(" "),s("li",[t._v("Pre-built SIR-based compartmental models")]),t._v(" "),s("li",[t._v("Fast execution")]),t._v(" "),s("li",[t._v("Web-compatible")]),t._v(" "),s("li",[t._v("Community Modeling")])]),t._v(" "),s("p",[t._v("along with many other features.")]),t._v(" "),s("h2",{attrs:{id:"install"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install"}},[t._v("#")]),t._v(" Install")]),t._v(" "),s("p",[t._v("EpiJS is avaliable through npm, yarn, or on the web.")]),t._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("install")]),t._v(" @epispot/epijs\n"),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("yarn")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("add")]),t._v(" @epispot/epijs\n")])])]),s("p",[t._v("Or use it in your webpage:")]),t._v(" "),s("div",{staticClass:"language-HTML extra-class"},[s("pre",{pre:!0,attrs:{class:"language-html"}},[s("code",[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("script")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("src")]),s("span",{pre:!0,attrs:{class:"token attr-value"}},[s("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("https://cdn.jsdelivr.net/gh/epispot/EpiJS/web/index.min.js"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{pre:!0,attrs:{class:"token script"}}),s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token tag"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("")])]),t._v("\n")])])]),s("p",[t._v("See "),s("a",{attrs:{href:"./installation"}},[t._v("installation")]),t._v(" for more.")]),t._v(" "),s("h2",{attrs:{id:"metadata"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#metadata"}},[t._v("#")]),t._v(" Metadata")]),t._v(" "),s("p",[t._v("You can fetch metadata about the package with the following commands:")]),t._v(" "),s("div",{staticClass:"language-JavaScript extra-class"},[s("pre",{pre:!0,attrs:{class:"language-javascript"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" EpiJS "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("require")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("'@epispot/epijs'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\nEpiJS"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("about "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// General metadata")]),t._v("\nEpiJS"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("version "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Your current package version")]),t._v("\n")])])]),s("h2",{attrs:{id:"modules"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#modules"}},[t._v("#")]),t._v(" Modules")]),t._v(" "),s("p",[t._v("EpiJS has several modules for specfic use cases:")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"./pre"}},[s("code",[t._v("Pre")])]),t._v(" - pre-compiled compartmental models")]),t._v(" "),s("li",[s("a",{attrs:{href:"./comp"}},[s("code",[t._v("Comp")])]),t._v(" - creating compartments which can be used in the model module")]),t._v(" "),s("li",[s("a",{attrs:{href:"./model"}},[s("code",[t._v("Model")])]),t._v(" - for creating models with custom and pre-built compartments")]),t._v(" "),s("li",[s("a",{attrs:{href:"./utils"}},[s("code",[t._v("Utils")])]),t._v(" - for epidemiological-related utilities")]),t._v(" "),s("li",[s("a",{attrs:{href:"./com"}},[s("code",[t._v("Com")])]),t._v(" - for better modelling of community spread")])]),t._v(" "),s("p",[t._v("Each of these compartments have documentation avaliable.")]),t._v(" "),s("h2",{attrs:{id:"the-epijs-manual"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#the-epijs-manual"}},[t._v("#")]),t._v(" The EpiJS Manual")]),t._v(" "),s("p",[t._v("To get you started, I suggest you check out the "),s("a",{attrs:{href:"./manual/SIR"}},[t._v("EpiJS Manual")]),t._v(", which is good if you are starting out in epidemiology, or if you are starting out in EpiJS.")])])}),[],!1,null,null,null);a.default=n.exports}}]); \ No newline at end of file diff --git a/docs/.vuepress/dist/assets/js/app.91f8e8e3.js b/docs/.vuepress/dist/assets/js/app.91f8e8e3.js deleted file mode 100644 index 4b67c1c..0000000 --- a/docs/.vuepress/dist/assets/js/app.91f8e8e3.js +++ /dev/null @@ -1,8 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],l=0,p=[];l=n.length?{value:void 0,done:!0}:(t=r(n,o),e.index+=t.length,{value:t,done:!1})}))},function(t,e,n){var r=n(53),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(7),o=n(8),i=n(37);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n=Array.isArray;t.exports=n},function(t,e,n){var r=n(33),o=n(24);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(3),o=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},function(t,e,n){var r=n(3),o=n(128),i=n(105),a=n(13),s=n(2),u=s("iterator"),c=s("toStringTag"),f=i.values;for(var l in o){var p=r[l],h=p&&p.prototype;if(h){if(h[u]!==f)try{a(h,u,f)}catch(t){h[u]=f}if(h[c]||a(h,c,l),o[l])for(var d in i)if(h[d]!==i[d])try{a(h,d,i[d])}catch(t){h[d]=i[d]}}}},function(t,e,n){var r=n(139),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){var r=n(3),o=n(13),i=n(6),a=n(74),s=n(80),u=n(25),c=u.get,f=u.enforce,l=String(String).split("String");(t.exports=function(t,e,n,s){var u,c=!!s&&!!s.unsafe,p=!!s&&!!s.enumerable,h=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||o(n,"name",e),(u=f(n)).source||(u.source=l.join("string"==typeof e?e:""))),t!==r?(c?!h&&t[e]&&(p=!0):delete t[e],p?t[e]=n:o(t,e,n)):p?t[e]=n:a(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||s(this)}))},function(t,e,n){var r=n(51);t.exports=function(t){if(r(t))throw TypeError("Cannot convert a Symbol value to a string");return String(t)}},function(t,e){t.exports=!1},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},function(t,e,n){var r=n(232),o=n(235);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r,o,i,a=n(187),s=n(3),u=n(4),c=n(13),f=n(6),l=n(73),p=n(54),h=n(35),d=s.WeakMap;if(a||l.state){var v=l.state||(l.state=new d),y=v.get,m=v.has,g=v.set;r=function(t,e){if(m.call(v,t))throw new TypeError("Object already initialized");return e.facade=t,g.call(v,t,e),e},o=function(t){return y.call(v,t)||{}},i=function(t){return m.call(v,t)}}else{var b=p("state");h[b]=!0,r=function(t,e){if(f(t,b))throw new TypeError("Object already initialized");return e.facade=t,c(t,b,e),e},o=function(t){return f(t,b)?t[b]:{}},i=function(t){return f(t,b)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(7),o=n(81),i=n(37),a=n(15),s=n(50),u=n(6),c=n(107),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=s(e),c)try{return f(t,e)}catch(t){}if(u(t,e))return i(!o.f.call(t,e),t[e])}},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r,o=n(5),i=n(184),a=n(79),s=n(35),u=n(110),c=n(77),f=n(54),l=f("IE_PROTO"),p=function(){},h=function(t){return" - - diff --git a/docs/.vuepress/dist/comp.html b/docs/.vuepress/dist/comp.html index ead2146..5d9ee01 100644 --- a/docs/.vuepress/dist/comp.html +++ b/docs/.vuepress/dist/comp.html @@ -4,11 +4,11 @@ EpiJS Module - Comp | EpiJS - + - + @@ -24,70 +24,73 @@ Demo (opens new window)

# Table of Contents

# Comp

EpiJS module for creating compartments, which can be combined into models.

Import it with:

       const comp = require('@epispot/epijs').comp
+   (opens new window)

# Table of Contents

# Comp

EpiJS module for creating compartments, which can be combined into models.

Import it with:

       const comp = require('@epispot/epijs').comp
 

# Idiom

Class for a custom compartments.

# Parameters

  • equation String (opens new window) The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key. -If using other compartment classes, they each have their own corresponding variable: -
    • 'S' - Susceptible
    • 'E' - Exposed
    • 'I' - Infectious
    • 'R' - Recovered
    • 'D' - Dead
    • 'C' - Critical
    • 'H' - Hospitalized
    • 'V' - Vaccinated
    • 'w' - Reserved for stochastic models. If put, it will be replaced with a random number generated from the gaussian distribution.

# Examples

let susceptible = new Idiom("S-(B*S*I)")
-

# Susceptible

Class for Suscepible compartment.

# Parameters

  • next Array (opens new window) List of rates of the next compartments This is multiplied by the current susceptible population.
  • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays +If using other compartment classes, they each have their own corresponding variable:* 'S' - Susceptible +
    • 'E' - Exposed
    • 'I' - Infectious
    • 'R' - Recovered
    • 'D' - Dead
    • 'C' - Critical
    • 'H' - Hospitalized
    • 'V' - Vaccinated
    • 'w' - Reserved for stochastic models. If put, it will be replaced with a random number generated from the gaussian distribution.

# Examples

let susceptible = new Idiom("S-(B*S*I)")
+

# addSub

Add a subcompartment to this compartment.

# Parameters

  • name String (opens new window) Name of sub-compartment.
  • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

# Examples

let infected = new Idiom("I+((B*S*I)/p)")
+
+infected.addSub("Asymptomatic", 10) // 10% of the infected population are asymptomatic.
+

# Susceptible

Class for Suscepible compartment.

# Parameters

  • next Array (opens new window) List of rates of the next compartments This is multiplied by the current susceptible population.
  • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "S" as the id. This parameter is useful if you want to model a disease with re-susceptibility.
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will -auto generate the equations from what you pass in.

# Examples

// Note that you can pass in a number as a rate too, 
+auto generate the equations from what you pass in. 

# Examples

// Note that you can pass in a number as a rate too, 
      // but we use a string because we want to multiply 
      // by other compartment populations. This applies to the prev parameter too. 
      let S = new Susceptible(["I*0.4/N"], [], true)
-

# Infected

Class for Infected compartment.

# Parameters

# addSub

Add a subcompartment to this compartment.

# Parameters

  • name String (opens new window) Name of sub-compartment.
  • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

# Infected

Class for Infected compartment.

# Parameters

  • next Array (opens new window) List of rates of the next compartments This is multiplied by the current infected population.
  • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "I" as the id.
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

# Examples

// Note that you can pass in a string as a rate too, 
+If reffering to this compartment's population, use "I" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations. We do actually do this for the prev parameter, though.
          let I = new Infected([0.3], [["S", "I*0.4/N"]], false)
    -

    # Exposed

    Class for Exposed compartment.

    # Parameters

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Exposed

    Class for Exposed compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments This is multiplied by the current exposed population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "E" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "E" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations. We do actually do this for the prev parameter, though.
          let E = new Exposed([1/14], ["S*0.4/N"], false)
    -

    # Critical

    Class for Critical compartment.

    # Parameters

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Critical

    Class for Critical compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments This is multiplied by the current critical population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "C" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "C" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations.
          let C = new Critical([0.14, 0.1], [["H", 0.3]], false)
    -

    # Hospitalized

    Class for Hospitalized compartment.

    # Parameters

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Hospitalized

    Class for Hospitalized compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments This is multiplied by the current hospitalized population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "H" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "H" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations.
          let H = new Hospitalized([0.3], [["I", 0.1], ["E", 0.2]], false)
    -

    # Dead

    Class for the Dead compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments. This is multiplied by the current dead population. +

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Dead

    Class for the Dead compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments. This is multiplied by the current dead population. Useful if you want to have a dead population that can also be the walking dead.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "D" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "D" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations. We do actually do this for the prev parameter, though.
          let D = new Dead([0.3], [["I", 0.3]], false) // This disease also gives you a 3/10 chance to come alive after death.
    -

    # Vaccinated

    Class for Vaccinated compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays +

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Vaccinated

    Class for Vaccinated compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "V" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "V" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations. We do actually do this for the prev parameter, though.
          let I = new Infected([0.001], ["S*0.4"], false)
    -

    # Recovered

    Class for Recovered compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays +

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.

    # Recovered

    Class for Recovered compartment.

    # Parameters

    • next Array (opens new window) List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population.
    • prev Array (opens new window) List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. -If reffering to this compartment's population, use "V" as the id.
    • stochastic Boolean (opens new window) If true, the compartment will be stochastic.

    # Examples

    // Note that you can pass in a string as a rate too, 
    +If reffering to this compartment's population, use "V" as the id. 
  • stochastic Boolean (opens new window) If true, the compartment will be stochastic.
  • # Examples

    // Note that you can pass in a string as a rate too, 
          // but we use a number in this case because we don't need to multiply 
          // by other compartment populations. We do actually do this for the prev parameter, though.
          let R = new Recovered([ ], [["I", 0.1]], false)
    -

    # addSub

    Add a subcompartment to this compartment.

    # Parameters

    • name String (opens new window) Name of sub-compartment.
    • percentage Number (opens new window) Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment.
    - + diff --git a/docs/.vuepress/dist/getting-started.html b/docs/.vuepress/dist/getting-started.html index 2feef8f..4a97068 100644 --- a/docs/.vuepress/dist/getting-started.html +++ b/docs/.vuepress/dist/getting-started.html @@ -4,11 +4,11 @@ EpiJS - Getting Started | EpiJS - + - + @@ -36,6 +36,6 @@ →

    - + diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html index fb61483..552f53d 100644 --- a/docs/.vuepress/dist/index.html +++ b/docs/.vuepress/dist/index.html @@ -4,11 +4,11 @@ EpiJS - + - + @@ -30,9 +30,9 @@ A disease modeling package for JS.

    Get Started → -

    Customized SIR-Based Models

    Quick, readable graphs

    Complex, yet simple

    Easy, customizable SIR based models, with SEIR, SEIRD, SIR, and more models for you to choose from.

    Quick and readable graphs made with chart.js to get the info you need, when you need it.

    Complex models like SEIHCRD models done simply, in only 1-line of code.

    Don't take it from us, see for yourself!

    Get Started →



    - + diff --git a/docs/.vuepress/dist/installation.html b/docs/.vuepress/dist/installation.html index 6f32267..825d26b 100644 --- a/docs/.vuepress/dist/installation.html +++ b/docs/.vuepress/dist/installation.html @@ -4,11 +4,11 @@ EpiJS - Installation | EpiJS - + - + @@ -49,6 +49,6 @@ →

    - + diff --git a/docs/.vuepress/dist/manual/SIR.html b/docs/.vuepress/dist/manual/SIR.html index d5d6356..7022a95 100644 --- a/docs/.vuepress/dist/manual/SIR.html +++ b/docs/.vuepress/dist/manual/SIR.html @@ -4,11 +4,11 @@ Creating a SIR Model in EpiJS | Manual | EpiJS - + - + @@ -38,12 +38,12 @@ let recovered = new Idiom("R+(u*I)"); let key = { - "S": 10000, - "B": 0.3, - "I": 100, - "R": 0, - "p": 10100, - "u": 0.2 + "S": 10000, + "B": 0.3, + "I": 100, + "R": 0, + "p": 10100, + "u": 0.2 }; let sir = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key) @@ -90,6 +90,6 @@ →

    - + diff --git a/docs/.vuepress/dist/manual/migration.html b/docs/.vuepress/dist/manual/migration.html index d0c4788..e612ece 100644 --- a/docs/.vuepress/dist/manual/migration.html +++ b/docs/.vuepress/dist/manual/migration.html @@ -4,11 +4,11 @@ EpiJS Migration Gide | EpiJS - + - + @@ -42,6 +42,6 @@

    - + diff --git a/docs/.vuepress/dist/model.html b/docs/.vuepress/dist/model.html index c64e574..8acbe25 100644 --- a/docs/.vuepress/dist/model.html +++ b/docs/.vuepress/dist/model.html @@ -4,11 +4,11 @@ EpiJS Module - Model | EpiJS - + - + @@ -24,18 +24,18 @@ Demo (opens new window)

    # Table of Contents

    # Model

    EpiJS module for creating custom models, which are made of compartments.

    Import it with:

           const model = require('@epispot/epijs').model
    +   (opens new window)

    # Table of Contents

    # Model

    EpiJS module for creating custom models, which are made of compartments.

    Import it with:

           const model = require('@epispot/epijs').model
     

    # Model

    Create a model.

    # Parameters

    • compartments Array (opens new window) Compartments in the model. Each should be a list, with the first value being the compartment, and the second being it's start value in the key.
    • key Object (opens new window) The key of values for any variable used in the equation. If you use any variable which represents the population of a compartment, add the starting value into the key.

    # Examples

    let susceptible = new Idiom("S-(B*S*I/p)");
     let infected = new Idiom("I+(B*S*I/p)-(u*I)");
     let recovered = new Idiom("R+(u*I)");
     
     let key = {
    - "S": 10000,
    - "B": 0.3,
    - "I": 100,
    - "R": 0,
    - "p": 10100,
    - "u": 0.2
    + "S": 10000,
    + "B": 0.3,
    + "I": 100,
    + "R": 0,
    + "p": 10100,
    + "u": 0.2
     };
     
     let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key)
    @@ -44,12 +44,12 @@
     let recovered = new Idiom("R+(u*I)");
     
     let key = {
    - "S": 10000,
    - "B": 0.3,
    - "I": 100,
    - "R": 0,
    - "p": 10100,
    - "u": 0.2
    + "S": 10000,
    + "B": 0.3,
    + "I": 100,
    + "R": 0,
    + "p": 10100,
    + "u": 0.2
     };
     
     let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key)
    @@ -60,45 +60,45 @@
     let recovered = new Idiom("R+(u*I)");
     
     let key = {
    -	"S": 10000,
    -	"B": 0.3,
    -	"I": 100,
    -	"R": 0,
    -	"p": 10100,
    -	"u": 0.2
    +	"S": 10000,
    +	"B": 0.3,
    +	"I": 100,
    +	"R": 0,
    +	"p": 10100,
    +	"u": 0.2
     };
     
     let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key)
     
     sirm.remove(recovered) // Removes the recovered compartment.
    -

    # add

    Add a compartment to the model.

    # Parameters

    • compartment Array (opens new window) The compartment to add, should be a list, with the first value being the compartment, and the second being it's value in the key.

    # Examples

    let susceptible = new Idiom("S-(B*S*I/p)");
    +

    # add

    Add a compartment to the model.

    # Parameters

    # Examples

    let susceptible = new Idiom("S-(B*S*I/p)");
     let infected = new Idiom("I+(B*S*I/p)-(u*I)");
     let recovered = new Idiom("R+(u*I)");
     	
     let key = {
    -	"S": 10000,
    -	"B": 0.3,
    -[1]: #model-2
    -	"R": 0,
    -	"p": 10100,
    -	"u": 0.2
    -[3]: #get-data
    +	"S": 10000,
    +	"B": 0.3,
    +	"I": 100,
    +	"R": 0,
    +	"p": 10100,
    +	"u": 0.2
    +};
     
     let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key)
     
     sirm.remove(susceptible) // Removes the susceptible compartment.
    -sirm.add([susceptible, "S"]) // Adds the susceptible compartment back.
    +sirm.add([susceptible, "S"], 0) // Adds the susceptible compartment back to the beginning
     

    # mexport

    NodeJS only! Exports models to a file which can then be imported later on.

    # Parameters

    # Examples

    let susceptible = new Idiom("S-(B*S*I/p)");
     let infected = new Idiom("I+(B*S*I/p)-(u*I)");
     let recovered = new Idiom("R+(u*I)");
     
     let key = {
    - "S": 10000,
    - "B": 0.3,
    - "I": 100,
    - "R": 0,
    - "p": 10100,
    - "u": 0.2
    + "S": 10000,
    + "B": 0.3,
    + "I": 100,
    + "R": 0,
    + "p": 10100,
    + "u": 0.2
     };
     
     let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key)
    @@ -115,6 +115,6 @@
           
           →
         

    - + diff --git a/docs/.vuepress/dist/plots.html b/docs/.vuepress/dist/plots.html index 665b83a..7f58f5d 100644 --- a/docs/.vuepress/dist/plots.html +++ b/docs/.vuepress/dist/plots.html @@ -4,11 +4,11 @@ EpiJS - + - + @@ -24,29 +24,24 @@ Demo (opens new window)

    # Table of Contents

    # Plot

    Graphs plots from the pre module.

    Import it with:

           const plots = require('@epispot/epijs').plots
    -

    # plot

    Plots a output of a model from the pre module.

    # Parameters

        {
    -     title: {
    -         display: true,
    -         text: "Total Cases"
    -     },
    -     scales: {
    -         yAxes: [{
    -             ticks: {
    -                 beginAtZero: true
    -             }
    -         }]
    -     }
    -    }
    -

    # Examples

    let sirout1 = sir(4, 9999, 1000, 100, 1/21, 10999, true)
    +   (opens new window)

    # Table of Contents

    # Plot

    Graphs plots from the pre module.

    Import it with:

           const plots = require('@epispot/epijs').plots
    +

    # plot

    Plots models from pre or model modules. If in Node, this will generate a localhost, otherwise it will plot it in the HTML div element provided.

    # Parameters

    # Examples

    let susceptible = new Idiom("S-(B*S*I/p)");
    +let infected = new Idiom("I+(B*S*I/p)-(u*I)");
    +let recovered = new Idiom("R+(u*I)");
     
    -plot(sirout1, "canvas-pre1", 100) // Plots data for 100 days onto the canvas-pre1 chart, with the data from the SIR model.
    -

    Returns any Returns the chart.js chart, if needed for modification.

    # manipulate

    Manipulate the chart.js graph

    # Parameters

    # Examples

    let sirout1 = sir(4, 9999, 1000, 100, 1/21, 10999, true)
    +let key = {
    +    "S": 10000,
    +    "B": 0.3,
    +    "I": 100,
    +    "R": 0,
    +    "p": 10100,
    +    "u": 0.2
    +};
     
    -let sirplot = plot(sirout1, "canvas-pre1", 100)
    +let sirm = new Model([[susceptible2, "S"], [infected2, "I"], [recovered2, "R"]], key)
     
    -sirplot.manipulate(sirplot, "fill", true) // Set fill to true
    -

    Returns any The chart.js graph

    - + diff --git a/docs/.vuepress/dist/pre.html b/docs/.vuepress/dist/pre.html index 985deaa..f2516d9 100644 --- a/docs/.vuepress/dist/pre.html +++ b/docs/.vuepress/dist/pre.html @@ -4,11 +4,11 @@ EpiJS Module - Pre | EpiJS - + - + @@ -24,21 +24,20 @@ Demo (opens new window)

    # Table of Contents

    # Pre

    Pre-made models for disease outbreaks.

    Import it with:

           const pre = require('@epispot/epijs').pre
    -

    # sir

    The SIR Model. Returns a chart.js graph with the total Susceptible, Infected, and Recovered after the given amount of time.

    # Parameters

    # Examples

    sir(4, 9999, 1, 100, 1/21, 10000, true)
    -

    Returns any The data for the model as a list.

    # seir

    The SEIR Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, and Recovered after the given amount of time.

    # Parameters

    # Examples

    seir(4, 9999, 1, 100, 1/7, 1/7, 10000, true)
    -

    Returns any The data for the model as a list.

    # seird

    The SEIRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Recovered, and Dead populations after the given amount of time.

    # Parameters

    # Examples

    seird(4, 99999, 1, 100, 1/21, 1/14, 1/100, 10000, true)
    -

    Returns any The data for the model as a list.

    # seihrd

    The SEIHRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Recovered, and Dead populations after the given amount of time.

    # Parameters

    # Examples

    seihrd(4, 9999, 1, 265, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 10000, true)
    -

    Returns any The data for the model as a list.

    # seihcrd

    The SEIHCRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Critical, Recovered, and Dead populations after the given amount of time.

    # Parameters

    # Examples

    seihcrd(4, 9999, 1, 265, 1/21, 1/40, 1/14, 1/100, 1/20, 1/10, 1/40, 2/5, 1/5, 1/5, 1/5, 1/30, 10000, true)
    -

    Returns any The data for the model as a list.

    # Table of Contents

    # Pre

    Pre-made models for disease outbreaks.

    Import it with:

           const pre = require('@epispot/epijs').pre
    +

    # sir

    The SIR Model. Returns the model as a model class from the model module.

    # Parameters

    # Examples

    let sirmodel = sir(4, 9999, 1, 1/21, 10000, true)
    +

    Returns any A model class from the model module. .

    # seir

    The SEIR Model. Returns the model as a model class from the model module.

    # Parameters

    # Examples

    seir(4, 9999, 1, 1/7, 1/7, 10000, true)
    +

    Returns any A model class from the model module. .

    # seird

    The SEIRD Model. Returns the model as a model class from the model module.

    # Parameters

    # Examples

    seird(4, 99999, 1, 1/21, 1/14, 1/100, 10000, true)
    +

    Returns any A model class from the model module. .

    # seihrd

    The SEIHRD Model. Returns the model as a model class from the model module.

    # Parameters

    # Examples

    seihrd(4, 9999, 1, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 10000, true)
    +

    Returns any A model class from the model module. .

    - + diff --git a/docs/.vuepress/dist/utils.html b/docs/.vuepress/dist/utils.html index 1e11720..9e96d41 100644 --- a/docs/.vuepress/dist/utils.html +++ b/docs/.vuepress/dist/utils.html @@ -4,11 +4,11 @@ EpiJS - + - + @@ -24,7 +24,7 @@ Demo (opens new window)

    # Table of Contents

    # Utils

    Epidemiological Utilities, like calculating the R-Naught and the infection rate of a disease.

    Import it with:

           const utils = require('@epispot/epijs').utils
    +   (opens new window)

    # Table of Contents

    # Utils

    Epidemiological Utilities, like calculating the R-Naught and the infection rate of a disease.

    Import it with:

           const utils = require('@epispot/epijs').utils
     

    # calcrn

    Calculate R-Naught

    # Parameters

    # calcb

    Calculate Infection rate

    # Parameters

    # calcu

    Calculate Recovery Rate

    # Parameters

    - + diff --git a/docs/README.md b/docs/README.md index e491b82..8dd4663 100644 --- a/docs/README.md +++ b/docs/README.md @@ -10,12 +10,9 @@ features: - details: Easy, customizable SIR based models, with SEIR, SEIRD, SIR, and more models for you to choose from. - details: Quick and readable graphs made with chart.js to get the info you need, when you need it. - details: Complex models like SEIHCRD models done simply, in only 1-line of code. -footer: GPL-3.0 Licensed | Copyright © 2021-present epispot + footer: GPL-3.0 Licensed | Copyright © 2022-present epispot --- -
    -

    Don't take it from us, see for yourself!

    -Get Started →


    diff --git a/docs/com.md b/docs/com.md deleted file mode 100644 index 0b41dc9..0000000 --- a/docs/com.md +++ /dev/null @@ -1,254 +0,0 @@ ---- -title: EpiJS Module - Com ---- - - -### Table of Contents - - -* [Virus][2] - * [Parameters][3] - * [Examples][4] -* [Community][5] - * [Parameters][6] - * [Examples][7] - * [sir][8] - * [Parameters][9] - * [Examples][10] - * [seir][11] - * [Parameters][12] - * [Examples][13] - * [seird][14] - * [Parameters][15] - * [Examples][16] - * [custom][17] - * [Parameters][18] - * [Examples][19] -* [compare][20] - * [Parameters][21] - * [Examples][22] - -# Com - -EpiJS module for representing communities - -Import it with: -```javascript - const com = require('@epispot/epijs').com -``` -## Virus - -Class representing a virus, which can infect a community. - -### Parameters - -* `rnaught` **[Number][23]** The disease's R-Naught -* `u` **[Number][23]** The disease's recovery rate -* `a` **[Number][23]** The disease's incubation period (optional, default `0`) -* `d` **[Number][23]** The disease's death rate (for infected population) (optional, default `0`) - -### Examples - -```javascript -let covid = new Virus(5.7, 2.1/100) -``` - -## Community - -Class representing a community, which can be infected with a disease, and compared to other communities. - -### Parameters - -* `pop` **[Number][23]** The population of the community -* `i` **[Number][23]** The start infected population of the community. -* `s` **[Number][23]** The start susceptible population of the community - -### Examples - -```javascript -let NewYorkCity = new Community(8419000, 300, 8418700) -``` - -### sir - -SIR model for the community - -#### Parameters - -* `disease` **[Number][23]** A virus class. The virus to infect the community with and model for. -* `time` **[Number][23]** Time to predict for. -* `stochastic` **[Boolean][24]** Whether to make the model stochastic or not. - -#### Examples - -```javascript -let NewYorkCity = new Community(8419000, 300, 8418700) -let covid = new Virus(5.7, 2.1/100, 1/8, 1/100) - -outbreak = NewYorkCity.sir(covid, 100, false) -``` - -### seir - -SEIR model for the community - -#### Parameters - -* `disease` **[Number][23]** A virus class. The virus to infect the community with and model for. -* `time` **[Number][23]** Time to predict for. -* `stochastic` **[Boolean][24]** Whether to make the model stochastic or not. - -#### Examples - -```javascript -let NewYorkCity = new Community(8419000, 300, 8418700) -let covid = new Virus(5.7, 2.1/100, 1/8, 1/100) - -outbreak = NewYorkCity.seir(covid, 100, false) -``` - -### seird - -SEIRD model for the community - -#### Parameters - -* `disease` **[Number][23]** A virus class. The virus to infect the community with and model for. -* `time` **[Number][23]** Time to predict for. -* `stochastic` **[Boolean][24]** Whether to make the model stochastic or not. - -#### Examples - -```javascript -let NewYorkCity = new Community(8419000, 300, 8418700) -let covid = new Virus(5.7, 2.1/100, 1/8, 1/100) - -outbreak = NewYorkCity.seird(covid, 100, false) -``` - -### custom - -Custom model for the community - -#### Parameters - -* `compartments` **[Array][25]** The compartments for the model. Pass in as an array with sub arrays of the form \[compartment, name in key]. - Note that the 'name in key' is a string with the same value that is stored in your extra key, otherwise it should be the same name that we store it as. -You can find these names below. - - * Susceptible - stored as 'S' - * Infected - stored as 'I' - * Recovered - stored as 'R' - -Make sure that you use the same names that are stored in the key in the equations for the compartments. These values are found from parameters passed into the virus class and the community class. - -* `time` **[Number][23]** The time to predict for. -* `virus` The virus class to infect the community with. -* `extrakey` **[Object][26]** Optional, any extra parameters for the compartments equations. -We already have the following parameters: - * Population - stored as 'p' in our key. - * Susceptible Population - stored as 'S' in our key. - * R-naught - stored as 'rn' in our key. - * Recovery rate - stored as 'u' in our key. - * Recovered - stored as 'R' in our key. - * Infected - stored as 'I' in our key. - * Death Rate - stored as 'd' in our key. - * Incubation Period - stored as 'a' in our key. -#### Examples - -```javascript -let susceptible = new Idiom("S-(B*S*I/p)"); -let infected = new Idiom("I+(B*S*I/p)-(u*I)"); -let recovered = new Idiom("R+(u*I)"); - -let NewYorkCity = new Community(8419000, 300, 8418700) -let covid = new Virus(5.7, 2.1/100, 1/8, 1/100) - -outbreak = NewYorkCity.custom([[susceptible, 'S'], [infected, 'I'], [recovered, 'R']], 100, covid, {B: covid.rnaught*covid.u}) -``` - -## compare - -Compare's two different outbreaks, communities, or anything else. - -### Parameters - -* `c` **[HTMLCanvasElement][27]** The canvas element -* `model1` **[Function][28]** The first model to compare. -* `model2` **[Function][28]** The second model to compare. -* `m1name` **[String][29]** The name of the first model -* `m2name` **[String][29]** The name of the second model -* `days` **[Number][23]** The total amount of days to compare for. - -### Examples - -```javascript -let NewYorkCity = new Community(8419000, 300, 8418700) -let covid = new Virus(5.7, 2.1/100) -let covid_variant = new Virus(5, 4/100) - -let chart = document.getElementById('model') - -covid_outbreak = NewYorkCity.sir(covid, 100) -variant_outbreak = NewYorkCity.sir(covid_variant, 100) - -compare(chart, covid_outbreak, variant_outbreak, "COVID-19", "COVID-19 Variant", 100) // We chose 100 as the amount of days, but it could be 50 or 25, not the lenght of the prediction that was in the model. -``` - -[1]: #chart - -[2]: #virus - -[3]: #parameters - -[4]: #examples - -[5]: #community - -[6]: #parameters-1 - -[7]: #examples-1 - -[8]: #sir - -[9]: #parameters-2 - -[10]: #examples-2 - -[11]: #seir - -[12]: #parameters-3 - -[13]: #examples-3 - -[14]: #seird - -[15]: #parameters-4 - -[16]: #examples-4 - -[17]: #custom - -[18]: #parameters-5 - -[19]: #examples-5 - -[20]: #compare - -[21]: #parameters-6 - -[22]: #examples-6 - -[23]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number - -[24]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean - -[25]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array - -[26]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object - -[27]: https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement - -[28]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function - -[29]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String diff --git a/docs/comp.md b/docs/comp.md index b7a35bb..0d70c99 100644 --- a/docs/comp.md +++ b/docs/comp.md @@ -9,30 +9,49 @@ title: EpiJS Module - Comp * [Idiom][2] * [Parameters][3] * [Examples][4] -* [Susceptible][5] - * [Parameters][6] - * [Examples][7] -* [Infected][8] + * [addSub][5] + * [Parameters][6] + * [Examples][7] +* [Susceptible][8] * [Parameters][9] * [Examples][10] -* [Exposed][11] - * [Parameters][12] - * [Examples][13] -* [Critical][14] - * [Parameters][15] - * [Examples][16] -* [Hospitalized][17] - * [Parameters][18] - * [Examples][19] -* [Dead][20] - * [Parameters][21] - * [Examples][22] -* [Vaccinated][23] + * [addSub][11] + * [Parameters][12] +* [Infected][13] + * [Parameters][14] + * [Examples][15] + * [addSub][16] + * [Parameters][17] +* [Exposed][18] + * [Parameters][19] + * [Examples][20] + * [addSub][21] + * [Parameters][22] +* [Critical][23] * [Parameters][24] * [Examples][25] -* [Recovered][26] - * [Parameters][27] - * [Examples][28] + * [addSub][26] + * [Parameters][27] +* [Hospitalized][28] + * [Parameters][29] + * [Examples][30] + * [addSub][31] + * [Parameters][32] +* [Dead][33] + * [Parameters][34] + * [Examples][35] + * [addSub][36] + * [Parameters][37] +* [Vaccinated][38] + * [Parameters][39] + * [Examples][40] + * [addSub][41] + * [Parameters][42] +* [Recovered][43] + * [Parameters][44] + * [Examples][45] + * [addSub][46] + * [Parameters][47] # Comp EpiJS module for creating compartments, which can be combined into models. @@ -47,9 +66,8 @@ Class for a custom compartments. ### Parameters -* `equation` **[String][29]** The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key. - If using other compartment classes, they each have their own corresponding variable: - * 'S' - Susceptible +* `equation` **[String][48]** The equation for the compartment. This defines what to run to get a new value for the next day in the model. Use any variable in the equation (1 char max), but when making this a model, you need to define this in the key. + If using other compartment classes, they each have their own corresponding variable:* 'S' - Susceptible * 'E' - Exposed * 'I' - Infectious * 'R' - Recovered @@ -65,18 +83,35 @@ Class for a custom compartments. let susceptible = new Idiom("S-(B*S*I)") ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + +#### Examples + +```javascript +let infected = new Idiom("I+((B*S*I)/p)") + +infected.addSub("Asymptomatic", 10) // 10% of the infected population are asymptomatic. +``` + ## Susceptible Class for Suscepible compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments This is multiplied by the current susceptible population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments This is multiplied by the current susceptible population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "S" as the id. This parameter is useful if you want to model a disease with re-susceptibility. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. You can still pass in your normal equation, and epijs will auto generate the equations from what you pass in. ### Examples @@ -88,17 +123,26 @@ Class for Suscepible compartment. let S = new Susceptible(["I*0.4/N"], [], true) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Infected Class for Infected compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments This is multiplied by the current infected population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments This is multiplied by the current infected population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "I" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -109,17 +153,26 @@ Class for Infected compartment. let I = new Infected([0.3], [["S", "I*0.4/N"]], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Exposed Class for Exposed compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments This is multiplied by the current exposed population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments This is multiplied by the current exposed population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "E" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -130,17 +183,26 @@ Class for Exposed compartment. let E = new Exposed([1/14], ["S*0.4/N"], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Critical Class for Critical compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments This is multiplied by the current critical population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments This is multiplied by the current critical population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "C" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -151,17 +213,26 @@ Class for Critical compartment. let C = new Critical([0.14, 0.1], [["H", 0.3]], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Hospitalized Class for Hospitalized compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments This is multiplied by the current hospitalized population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments This is multiplied by the current hospitalized population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "H" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -172,18 +243,27 @@ Class for Hospitalized compartment. let H = new Hospitalized([0.3], [["I", 0.1], ["E", 0.2]], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Dead Class for the Dead compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments. This is multiplied by the current dead population. +* `next` **[Array][50]** List of rates of the next compartments. This is multiplied by the current dead population. Useful if you want to have a dead population that can also be the walking dead. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "D" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -194,17 +274,26 @@ Class for the Dead compartment. let D = new Dead([0.3], [["I", 0.3]], false) // This disease also gives you a 3/10 chance to come alive after death. ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Vaccinated Class for Vaccinated compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "V" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -215,17 +304,26 @@ Class for Vaccinated compartment. let I = new Infected([0.001], ["S*0.4"], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + ## Recovered Class for Recovered compartment. ### Parameters -* `next` **[Array][30]** List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population. -* `prev` **[Array][30]** List of rates of the previous compartments, which include sub-arrays +* `next` **[Array][50]** List of rates of the next compartments, good if the vaccine isn't 100% effective. This is multiplied by the current vaccinated population. +* `prev` **[Array][50]** List of rates of the previous compartments, which include sub-arrays with the compartment id (one letter only), as a string, and the rate for the compartment. If reffering to this compartment's population, use "V" as the id. -* `stochastic` **[Boolean][31]** If true, the compartment will be stochastic. +* `stochastic` **[Boolean][51]** If true, the compartment will be stochastic. ### Examples @@ -236,6 +334,15 @@ Class for Recovered compartment. let R = new Recovered([ ], [["I", 0.1]], false) ``` +### addSub + +Add a subcompartment to this compartment. + +#### Parameters + +* `name` **[String][48]** Name of sub-compartment. +* `percentage` **[Number][49]** Percentage of the total compartment population to be in the sub-compartmnet. This will not affect the population of the parent compartment or any other sub-compartment. + [1]: #math [2]: #idiom @@ -244,56 +351,96 @@ Class for Recovered compartment. [4]: #examples -[5]: #susceptible +[5]: #addsub [6]: #parameters-1 [7]: #examples-1 -[8]: #infected +[8]: #susceptible [9]: #parameters-2 [10]: #examples-2 -[11]: #exposed +[11]: #addsub-1 [12]: #parameters-3 -[13]: #examples-3 +[13]: #infected + +[14]: #parameters-4 + +[15]: #examples-3 + +[16]: #addsub-2 + +[17]: #parameters-5 + +[18]: #exposed + +[19]: #parameters-6 + +[20]: #examples-4 + +[21]: #addsub-3 + +[22]: #parameters-7 + +[23]: #critical + +[24]: #parameters-8 + +[25]: #examples-5 + +[26]: #addsub-4 + +[27]: #parameters-9 + +[28]: #hospitalized + +[29]: #parameters-10 + +[30]: #examples-6 + +[31]: #addsub-5 + +[32]: #parameters-11 + +[33]: #dead -[14]: #critical +[34]: #parameters-12 -[15]: #parameters-4 +[35]: #examples-7 -[16]: #examples-4 +[36]: #addsub-6 -[17]: #hospitalized +[37]: #parameters-13 -[18]: #parameters-5 +[38]: #vaccinated -[19]: #examples-5 +[39]: #parameters-14 -[20]: #dead +[40]: #examples-8 -[21]: #parameters-6 +[41]: #addsub-7 -[22]: #examples-6 +[42]: #parameters-15 -[23]: #vaccinated +[43]: #recovered -[24]: #parameters-7 +[44]: #parameters-16 -[25]: #examples-7 +[45]: #examples-9 -[26]: #recovered +[46]: #addsub-8 -[27]: #parameters-8 +[47]: #parameters-17 -[28]: #examples-8 +[48]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[29]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[49]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number -[30]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array +[50]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array -[31]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[51]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean diff --git a/docs/model.md b/docs/model.md index af3c135..dde0a8b 100644 --- a/docs/model.md +++ b/docs/model.md @@ -126,6 +126,7 @@ Add a compartment to the model. #### Parameters * `compartment` **[Array][20]** The compartment to add, should be a list, with the first value being the compartment, and the second being it's value in the key. +* `index` **[Number][22]** The index to add the compartment at. #### Examples @@ -137,16 +138,16 @@ let recovered = new Idiom("R+(u*I)"); let key = { "S": 10000, "B": 0.3, -[1]: #model-2 + "I": 100, "R": 0, "p": 10100, "u": 0.2 -[3]: #get-data +}; let sirm = new Model([[susceptible, "S"], [infected, "I"], [recovered, "R"]], key) sirm.remove(susceptible) // Removes the susceptible compartment. -sirm.add([susceptible, "S"]) // Adds the susceptible compartment back. +sirm.add([susceptible, "S"], 0) // Adds the susceptible compartment back to the beginning ``` ## mexport @@ -196,7 +197,7 @@ NodeJS only! Imports a model from a file. let sirm = mimport("./output.json") ``` -[1]: #fs +[1]: #model-2 [2]: #model @@ -204,7 +205,7 @@ let sirm = mimport("./output.json") [4]: #examples -[5]: #get_data +[5]: #get-data [6]: #parameters-1 diff --git a/docs/plots.md b/docs/plots.md index b604e81..75ec02a 100644 --- a/docs/plots.md +++ b/docs/plots.md @@ -6,11 +6,8 @@ * [plot][2] * [Parameters][3] * [Examples][4] -* [manipulate][5] - * [Parameters][6] - * [Examples][7] -## Plot +# Plot Graphs plots from the pre module. @@ -20,63 +17,37 @@ Import it with: ``` ## plot -Plots a output of a model from the pre module. +Plots models from pre or model modules. If in Node, this will generate a localhost, otherwise it will plot it in the HTML div element provided. ### Parameters -* `model` **[Array][8]** The output from the pre module function. -* `canvas` **[HTMLCanvasElement][9]** The canvas to show the output. -* `days` **[Number][10]** The amount of days to plot -* `colors` **[Array][8]** Custom colors for the graph, in the same order the compartments are. (optional, default `null`) -* `options` **[Object][8]** Optional. Custom configuration to pass into the options parameter for chart.js, defaults to: -```JSON - { - title: { - display: true, - text: "Total Cases" - }, - scales: { - yAxes: [{ - ticks: { - beginAtZero: true - } - }] - } - } -``` -### Examples - -```javascript -let sirout1 = sir(4, 9999, 1000, 100, 1/21, 10999, true) - -plot(sirout1, "canvas-pre1", 100) // Plots data for 100 days onto the canvas-pre1 chart, with the data from the SIR model. -``` - -Returns **any** Returns the chart.js chart, if needed for modification. - -## manipulate - -Manipulate the chart.js graph - -### Parameters - -* `id` The chart.js graph -* `mvalue` **[String][12]** The value to manipulate in `chart.data.datasets[x]`. This can be any valid chart.js parameter. See [https://www.chartjs.org/docs/latest/charts/line.html#line-styling][13] -* `value` The value to insert into the graph +* `model` **[Object][5]** A model class from the pre or model modules. +* `time` **[Number][6]** The number of days to plot. +* `name` **[String][7]** The ID of the plot. If this is in HTML, it will be the ID of the div element for the graph. +* `title` **[String][7]** The title of the graph. (optional, default `'Cases vs. Time'`) ### Examples ```javascript -let sirout1 = sir(4, 9999, 1000, 100, 1/21, 10999, true) - -let sirplot = plot(sirout1, "canvas-pre1", 100) - -sirplot.manipulate(sirplot, "fill", true) // Set fill to true +let susceptible = new Idiom("S-(B*S*I/p)"); +let infected = new Idiom("I+(B*S*I/p)-(u*I)"); +let recovered = new Idiom("R+(u*I)"); + +let key = { + "S": 10000, + "B": 0.3, + "I": 100, + "R": 0, + "p": 10100, + "u": 0.2 +}; + +let sirm = new Model([[susceptible2, "S"], [infected2, "I"], [recovered2, "R"]], key) + +plot(sirout1, 100, "SIR", "SIR Model (Population vs. Time)") ``` -Returns **any** The chart.js graph - -[1]: #chart +[1]: #http [2]: #plot @@ -84,20 +55,8 @@ Returns **any** The chart.js graph [4]: #examples -[5]: #manipulate - -[6]: #parameters-1 - -[7]: #examples-1 - -[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array - -[9]: https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement - -[10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number - -[11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number -[13]: https://www.chartjs.org/docs/latest/charts/line.html#line-styling +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String diff --git a/docs/pre.md b/docs/pre.md index e5b4300..93f9525 100644 --- a/docs/pre.md +++ b/docs/pre.md @@ -18,9 +18,6 @@ title: EpiJS Module - Pre * [seihrd][11] * [Parameters][12] * [Examples][13] -* [seihcrd][14] - * [Parameters][15] - * [Examples][16] # Pre @@ -32,132 +29,95 @@ Import it with: ``` ## sir -The SIR Model. Returns a chart.js graph with the total Susceptible, Infected, and Recovered after the given amount of time. +The SIR Model. Returns the model as a `model` class from the `model` module. ### Parameters -* `rn` **[Number][17]** R Naught, or the amount of people one infected infects whlie infected. -* `s` **[Number][17]** The Susceptible population at the beggining of the outbreak -* `i` **[Number][17]** The Infected population at the beggining of th outbreak -* `time` **[Number][17]** The time the total simulation lasts. -* `u` **[Number][17]** The recovery rate -* `p` **[Number][17]** The total population. -* `stochastic` **[Boolean][18]** Whether to make the model stochastic or not. +* `rn` **[Number][14]** R Naught, or the amount of people one infected infects whlie infected. +* `s` **[Number][14]** The Susceptible population at the beggining of the outbreak +* `i` **[Number][14]** The Infected population at the beggining of th outbreak +* `u` **[Number][14]** The recovery rate +* `p` **[Number][14]** The total population. +* `stochastic` **[Boolean][15]** Whether to make the model stochastic or not. ### Examples ```javascript -sir(4, 9999, 1, 100, 1/21, 10000, true) +let sirmodel = sir(4, 9999, 1, 1/21, 10000, true) ``` -Returns **any** The data for the model as a list. +Returns **any** A model class from the `model` module. . ## seir -The SEIR Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, and Recovered after the given amount of time. +The SEIR Model. Returns the model as a `model` class from the `model` module. ### Parameters -* `rn` **[Number][17]** R Naught, or the amount of people one infected infects whlie infected. -* `s` **[Number][17]** The Susceptible population at the beggining of the outbreak -* `i` **[Number][17]** The Infected population at the beggining of th outbreak -* `t` **[Number][17]** The time the total simulation lasts. -* `u` **[Number][17]** The recovery rate -* `a` **[Number][17]** The incubation period -* `p` **[Number][17]** The total population. -* `stochastic` **[Boolean][18]** Whether to make the model stochastic or not. +* `rn` **[Number][14]** R Naught, or the amount of people one infected infects whlie infected. +* `s` **[Number][14]** The Susceptible population at the beggining of the outbreak +* `i` **[Number][14]** The Infected population at the beggining of th outbreak +* `u` **[Number][14]** The recovery rate +* `a` **[Number][14]** The incubation period +* `p` **[Number][14]** The total population. +* `stochastic` **[Boolean][15]** Whether to make the model stochastic or not. ### Examples ```javascript -seir(4, 9999, 1, 100, 1/7, 1/7, 10000, true) +seir(4, 9999, 1, 1/7, 1/7, 10000, true) ``` -Returns **any** The data for the model as a list. +Returns **any** A model class from the `model` module. . ## seird -The SEIRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Recovered, and Dead populations after the given amount of time. +The SEIRD Model. Returns the model as a `model` class from the `model` module. ### Parameters -* `rn` **[Number][17]** R Naught, or the amount of people one infected infects whlie infected. -* `s` **[Number][17]** The Susceptible population at the beggining of the outbreak -* `i` **[Number][17]** The Infected population at the beggining of the outbreak -* `t` **[Number][17]** The time the total simulation lasts. -* `u` **[Number][17]** The recovery rate -* `a` **[Number][17]** The incubation period -* `d` **[Number][17]** The death rate -* `p` **[Number][17]** The total population. -* `stochastic` **[Boolean][18]** Whether to make the model stochastic or not. +* `rn` **[Number][14]** R Naught, or the amount of people one infected infects whlie infected. +* `s` **[Number][14]** The Susceptible population at the beggining of the outbreak +* `i` **[Number][14]** The Infected population at the beggining of the outbreak +* `u` **[Number][14]** The recovery rate +* `a` **[Number][14]** The incubation period +* `d` **[Number][14]** The death rate +* `p` **[Number][14]** The total population. +* `stochastic` **[Boolean][15]** Whether to make the model stochastic or not. ### Examples ```javascript -seird(4, 99999, 1, 100, 1/21, 1/14, 1/100, 10000, true) +seird(4, 99999, 1, 1/21, 1/14, 1/100, 10000, true) ``` -Returns **any** The data for the model as a list. +Returns **any** A model class from the `model` module. . ## seihrd -The SEIHRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Recovered, and Dead populations after the given amount of time. +The SEIHRD Model. Returns the model as a `model` class from the `model` module. ### Parameters -* `rn` **[Number][17]** R Naught, or the amount of people one infected infects whlie infected. -* `s` **[Number][17]** The Susceptible population at the beggining of the outbreak -* `i` **[Number][17]** The Infected population at the beggining of the outbreak -* `t` **[Number][17]** The time the total simulation lasts. -* `u` **[Number][17]** The recovery rate for the infected population -* `uh` **[Number][17]** The recovery rate for the hospitalized population -* `a` **[Number][17]** The incubation period -* `di` **[Number][17]** The death rate for the infected population -* `dh` **[Number][17]** The death rate for the hospitalized population -* `h` **[Number][17]** The hospitalization rate -* `p` **[Number][17]** The total population. -* `stochastic` **[Boolean][18]** Whether to make the model stochastic or not. +* `rn` **[Number][14]** R Naught, or the amount of people one infected infects whlie infected. +* `s` **[Number][14]** The Susceptible population at the beggining of the outbreak +* `i` **[Number][14]** The Infected population at the beggining of the outbreak +* `u` **[Number][14]** The recovery rate for the infected population +* `uh` **[Number][14]** The recovery rate for the hospitalized population +* `a` **[Number][14]** The incubation period +* `di` **[Number][14]** The death rate for the infected population +* `dh` **[Number][14]** The death rate for the hospitalized population +* `h` **[Number][14]** The hospitalization rate +* `p` **[Number][14]** The total population. +* `stochastic` **[Boolean][15]** Whether to make the model stochastic or not. ### Examples ```javascript -seihrd(4, 9999, 1, 265, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 10000, true) +seihrd(4, 9999, 1, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 10000, true) ``` -Returns **any** The data for the model as a list. - -## seihcrd - -The SEIHCRD Model. Returns a chart.js graph with the total Susceptible, Exposed, Infected, Hospitalized, Critical, Recovered, and Dead populations after the given amount of time. - -### Parameters - -* `rn` **[Number][17]** R Naught, or the amount of people one infected infects whlie infected. -* `s` **[Number][17]** The Susceptible population at the beggining of the outbreak -* `i` **[Number][17]** The Infected population at the beggining of the outbreak -* `t` **[Number][17]** The time the total simulation lasts. -* `u` **[Number][17]** The recovery rate for the infected population -* `uh` **[Number][17]** The recovery rate for the hospitalized population -* `a` **[Number][17]** The incubation period -* `di` **[Number][17]** The death rate for the infected population -* `dh` **[Number][17]** The death rate for the hospitalized population -* `ch` **[Number][17]** The rate at which patients go to the critical stage from the hospitalized compartment. -* `ci` **[Number][17]** The rate at which patients go to the critical stage from the infected compartemnt. -* `dc` **[Number][17]** The death rate for critical patients -* `uc` **[Number][17]** The recovery rate for critical patients -* `hc` **[Number][17]** The rate at which a critical patient goes to the hospitalized compartment, and are no longer critical. -* `ic` **[Number][17]** The rate at which a critical patient goes to the infected compartment, and are no longer critical. -* `h` **[Number][17]** The hospitalization rate -* `p` **[Number][17]** The total population. -* `stochastic` **[Boolean][18]** Whether to make the model stochastic or not. - -### Examples - -```javascript -seihcrd(4, 9999, 1, 265, 1/21, 1/40, 1/14, 1/100, 1/20, 1/10, 1/40, 2/5, 1/5, 1/5, 1/5, 1/30, 10000, true) -``` - -Returns **any** The data for the model as a list. +Returns **any** A model class from the `model` module. . [1]: #gaussian @@ -185,12 +145,6 @@ Returns **any** The data for the model as a list. [13]: #examples-3 -[14]: #seihcrd - -[15]: #parameters-4 - -[16]: #examples-4 - -[17]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +[14]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number -[18]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean +[15]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean diff --git a/package.json b/package.json index 5db0c6e..9c8d275 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@epispot/epijs", - "version": "2.2.0", + "version": "3.0.0-alpha.0", "description": "A disease modeling package.", "main": "EpiJS/index.js", "scripts": { @@ -35,8 +35,9 @@ "vuepress-plugin-tabs": "~0.3.0" }, "dependencies": { - "chart.js": "~3.7.0", + "chart.js": "^3.7.0", "gaussian": "~1.2.0", - "mathjs": "~10.0.0" + "mathjs": "~10.0.0", + "plotly.js-dist-min": "^2.8.3" } } diff --git a/scripts/doc-build.sh b/scripts/doc-build.sh index 2f9fff0..77cbd0d 100644 --- a/scripts/doc-build.sh +++ b/scripts/doc-build.sh @@ -1,9 +1,8 @@ -documentation build EpiJS/pre.js -f md > docs/pre.md -documentation build EpiJS/comp.js -f md > docs/comp.md -documentation build EpiJS/com.js -f md > docs/com.md +documentation build EpiJS/pre.js -f md > docs/pre.md --shallow +documentation build EpiJS/comp.js -f md > docs/comp.md --shallow documentation build EpiJS/model.js -f md > docs/model.md --shallow -documentation build EpiJS/utils.js -f md > docs/utils.md -documentation build EpiJS/plots.js -f md > docs/plots.md +documentation build EpiJS/utils.js -f md > docs/utils.md --shallow +documentation build EpiJS/plots.js -f md > docs/plots.md --shallow cd scripts python doc-update.py cd .. diff --git a/scripts/doc-update.py b/scripts/doc-update.py index 1ac6f44..81d299a 100644 --- a/scripts/doc-update.py +++ b/scripts/doc-update.py @@ -1,33 +1,15 @@ with open('../docs/pre.md', 'r') as predoc: doc = predoc.readlines() - doc[21] = '# Pre\n' doc[4] = '\n' - doc[26] = '```javascript\n' - doc[28] = '```\n' + doc[18] = '# Pre\n' + doc[23] = '```javascript\n' + doc[25] = '```\n' doc1 = ['---\n', 'title: EpiJS Module - Pre\n', '---\n'] doc = doc1+doc with open('../docs/pre.md', 'w') as predoc: predoc.writelines(doc) - -with open('../docs/com.md', 'r') as comdoc: - doc = comdoc.readlines() - doc[27] = '# Com\n' - doc[4] = '\n' - doc[32] = '```javascript\n' - doc[34] = '```\n' - doc[133] = 'You can find these names below.\n\n * Susceptible - stored as \'S\'\n' - doc[139] = 'We already have the following parameters:\n * Population - stored as \'p\' in our key.\n' - doc[135] = ' * Recovered - stored as \'R\'\n\nMake sure that you use the same names that are stored in the key in the equations for the compartments. These values are found from parameters passed into the virus class and the community class.\n\n' - doc[146] = ' * Incubation Period - stored as \'a\' in our key.' - doc1 = ['---\n', 'title: EpiJS Module - Com\n', '---\n'] - doc = doc1+doc - -with open('../docs/com.md', 'w') as comdoc: - comdoc.writelines(doc) - - with open('../docs/model.md', 'r') as mdoc: doc = mdoc.readlines() @@ -35,8 +17,8 @@ doc[24] = '# Model\n' doc[29] = '```javascript\n' doc[31] = '```\n' - doc[136] = "[1]: #model-2\n" - doc[140] = '[3]: #get-data\n' + doc[196] = "[1]: #model-2\n" + doc[204] = '[5]: #get-data\n' doc1 = ['---\n', 'title: EpiJS Module - Model\n', '---\n'] doc = doc1+doc @@ -47,10 +29,9 @@ with open('../docs/comp.md', 'r') as compdoc: doc = compdoc.readlines() doc[4] = '\n' - doc[33] = '# Comp' - doc[38] = '```javascript\n' - doc[40] = '```\n' - doc[48] = ' If using other compartment classes, they each have their own corresponding variable: \n * \'S\' - Susceptible\n' + doc[52] = '# Comp' + doc[57] = '```javascript\n' + doc[59] = '```\n' doc1 = ['---\n', 'title: EpiJS Module - Comp\n', '---\n'] doc = doc1+doc @@ -74,11 +55,9 @@ with open('../docs/plots.md', 'r') as plots: doc = plots.readlines() doc[4] = '\n' - doc[12] = '## Plot\n' - doc[17] = '```javascript\n' - doc[19] = '```\n' - doc[30] = '* `options` **[Object][8]** Optional. Custom configuration to pass into the options parameter for chart.js, defaults to:\n```JSON\n' - doc[44] = '```' + doc[9] = '# Plot\n' + doc[14] = '```javascript\n' + doc[16] = '```\n' with open('../docs/plots.md', 'w') as plots: plots.writelines(doc) \ No newline at end of file diff --git a/scripts/doc.sh b/scripts/doc.sh index cd7b10f..0103ab0 100644 --- a/scripts/doc.sh +++ b/scripts/doc.sh @@ -1,9 +1,8 @@ -documentation build EpiJS/pre.js -f md > docs/pre.md -documentation build EpiJS/comp.js -f md > docs/comp.md -documentation build EpiJS/com.js -f md > docs/com.md -documentation build EpiJS/model.js -f md > docs/model.md -documentation build EpiJS/utils.js -f md > docs/utils.md -documentation build EpiJS/plots.js -f md > docs/plots.md +documentation build EpiJS/pre.js -f md > docs/pre.md --shallow +documentation build EpiJS/comp.js -f md > docs/comp.md --shallow +documentation build EpiJS/model.js -f md > docs/model.md --shallow +documentation build EpiJS/utils.js -f md > docs/utils.md --shallow +documentation build EpiJS/plots.js -f md > docs/plots.md --shallow cd scripts python doc-update.py cd .. diff --git a/tests/index.js b/tests/index.js index 5e4d4e3..25e6b0a 100644 --- a/tests/index.js +++ b/tests/index.js @@ -5,19 +5,22 @@ const puppeteer = require('puppeteer'); const page = await browser.newPage(); let errors = 0 - + let errormsgs = [] + page.on('error', err=> { errors += 1 + errormsgs.push(err) }); page.on('pageerror', pageerr=> { errors += 1 + errormsgs.push(pageerr) }); await page.goto(`file://${__dirname}/test.html`); if (errors > 0) { - throw new Error(`There were ${errors} errors`); + throw new Error(`There were ${errors} errors: ${errormsgs.join('\n')}`); } diff --git a/tests/scripts/com.js b/tests/scripts/com.js deleted file mode 100644 index 9c25e5c..0000000 --- a/tests/scripts/com.js +++ /dev/null @@ -1,26 +0,0 @@ -let community = new Community(10000, 1, 9999) -let covid = new Virus(4, 1/14, 1/11, 1/40) -let anothervirus = new Virus(4, 1/10, 1/12, 1/50) - -let sirout = community.sir(covid, 100, true) -let sirout2 = community.sir(anothervirus, 100, true) - -let seirout = community.seir(covid, 100, true) -let seirout2 = community.seir(anothervirus, 100, true) - -let seirdout = community.seird(covid, 200, true) -let seirdout2 = community.seird(anothervirus, 200, true) - -compare("canvas-com1", sirout, sirout2, "1", "2", 100) -compare("canvas-com2", seirout, seirout2, "1", "2", 100) -compare("canvas-com3", seirdout, seirdout2, "1", "2", 200) - -NewYorkCity = new Community(8419000, 300, 8418700) -covid = new Virus(5.7, 2.1/100) -covid2 = new Virus(6, 2.1/100) - -let newoutbreak = NewYorkCity.custom([[susceptible2, "S"], [infected2, "I"], [recovered2, "R"]], 200, covid, {B: covid.rnaught*covid.u}) -let newoutbreak2 = NewYorkCity.custom([[susceptible2, "S"], [infected2, "I"], [recovered2, "R"]], 200, covid2, {B: covid2.rnaught*covid.u}) -compare("canvas-com4", newoutbreak, newoutbreak2, "1", "2", 200) -console.log(newoutbreak) -console.log(newoutbreak2) \ No newline at end of file diff --git a/tests/scripts/plots.js b/tests/scripts/plots.js index 9c2362a..f94a7d0 100644 --- a/tests/scripts/plots.js +++ b/tests/scripts/plots.js @@ -1,7 +1,4 @@ -let newplot = plot(sirout1, "canvas-pre1", 100) -plot(seirout1, "canvas-pre2", 100) -plot(seirdout1, "canvas-pre3", 100) -plot(seihrdout1, "canvas-pre4", 100) -plot(seihcrdout1, "canvas-pre5", 100) - -manipulate(newplot, "fill", true) +let newplot = plot(sirout1, 100, "canvas-pre1") +plot(seirout1, 100, "canvas-pre2") +plot(seirdout1, 100, "canvas-pre3") +plot(seihrdout1, 100, "canvas-pre4") diff --git a/tests/scripts/pre.js b/tests/scripts/pre.js index 8b2922d..bd0142b 100644 --- a/tests/scripts/pre.js +++ b/tests/scripts/pre.js @@ -1,8 +1,7 @@ -let sirout1 = sir(4, 9999, 1000, 100, 1/21, 10999, true) -let seirout1 = seir(4, 9999, 1100, 100, 1/7, 1/7, 11099, true) -let seirdout1 = seird(4, 9999, 1100, 100, 1/21, 1/14, 1/100, 11099, true) -let seihrdout1 = seihrd(4, 9999, 1100, 100, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 11099, true) -let seihcrdout1 = seihcrd(4, 9999, 1100, 100, 1/21, 1/40, 1/14, 1/100, 1/20, 1/10, 1/40, 2/5, 1/5, 1/5, 1/5, 1/30, 11099, true) +let sirout1 = sir(4, 9999, 1000, 1/21, 10999, true) +let seirout1 = seir(4, 9999, 1100, 1/7, 1/7, 11099, true) +let seirdout1 = seird(4, 9999, 1100, 1/21, 1/14, 1/100, 11099, true) +let seihrdout1 = seihrd(4, 9999, 1100, 1/21, 1/40, 1/14, 1/100, 1/20, 1/30, 11099, true) // console log all values console.log('\n') @@ -10,4 +9,3 @@ console.log('sirout: ', sirout1) console.log('seirout: ', seirout1) console.log('seirdout: ', seirdout1) console.log('seihrdout: ', seihrdout1) -console.log('seihcrdout: ', seihcrdout1) diff --git a/tests/test.html b/tests/test.html index 11298db..19f6e76 100644 --- a/tests/test.html +++ b/tests/test.html @@ -8,20 +8,13 @@
    - - - - - +
    +
    +
    +
    -
    -
    - - - -
    @@ -30,7 +23,6 @@ - diff --git a/web/com.min.js b/web/com.min.js deleted file mode 100644 index d77617c..0000000 --- a/web/com.min.js +++ /dev/null @@ -1 +0,0 @@ -class Virus{constructor(a,t,s=0,d=0){this.rnaught=a,this.u=t,this.a=s,this.d=d}}class Community{constructor(a,t,s){this.pop=a,this.i=t,this.s=s,this.r=a-(t+s)}sir(a,t){let s={datasets:[{data:[this.s],label:"Suseptible"},{data:[this.i],label:"Infected"},{data:[this.r],label:"Recovered"}]};for(let d=0;darr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i{res.writeHead(200,{"Content-Type":"text/html"}),res.write(`\n \n \n