1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-22 16:04:21 +00:00
triennale-appunti-steffo/docs/route-OttimizzazioneLineare.chunk.61616.js.map
2020-05-27 18:31:11 +02:00

1 line
No EOL
69 KiB
Text
Generated

{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./components/old/todo.css","webpack:///./components/OttimizzazioneLineare/Styles.less","webpack:///./components/Elements/Box.less","webpack:///./components/old/timer.js","webpack:///./components/TablePanel.less","webpack:///./components/old/timer.less","webpack:///./components/Latex.js","webpack:///./components/Elements/Panel.less","webpack:///./components/example.js","webpack:///../src/index.js","webpack:///./components/OttimizzazioneLineare/Max.js","webpack:///./components/OttimizzazioneLineare/Finite.js","webpack:///./components/OttimizzazioneLineare/Empty.js","webpack:///./components/Elements/Box.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/old/split.css","webpack:///./components/TablePanel.js","webpack:///./components/OttimizzazioneLineare/Min.js","webpack:///./routes/OttimizzazioneLineare.js","webpack:///./components/Elements/Panel.js","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/PLatex.js","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","render","dateTo","className","style","parts","milliseconds","seconds","minutes","hours","days","props","to","timeLeft","Math","floor","expired","unknown","class","title","count","text","remaining","Component","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","undefined","inline","children","alt","latex","example","getHookState","index","options","_hook","currentComponent","hooks","__hooks","_list","_pendingEffects","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_component","_value","nextValue","action","useEffect","callback","args","argsChanged","_args","useLayoutEffect","_renderCallbacks","useRef","initialValue","useMemo","current","useImperativeHandle","ref","createHandle","concat","factory","_factory","useCallback","context","provider","_id","_defaultValue","sub","value","useDebugValue","formatter","flushAfterPaintEffects","afterPaintEffects","some","component","_parentDom","forEach","invokeCleanup","invokeEffect","e","_catchError","_vnode","hook","_cleanup","result","oldArgs","newArgs","arg","f","prevRaf","oldBeforeRender","_render","oldAfterDiff","diffed","oldCommit","_commit","oldBeforeUnmount","unmount","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","cancelAnimationFrame","setTimeout","window","commitQueue","filter","cb","max","finite","unfeasible","BoxColors","Object","freeze","RED","red","ORANGE","orange","YELLOW","yellow","LIME","lime","CYAN","cyan","BLUE","blue","MAGENTA","magenta","DEFAULT","default","color","box","unbounded","tablepanel","min","r","String","raw","OttimizzazioneLineare","href","Provider","contents","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-OttimizzazioneLineare.chunk.61616.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__2PzAa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__25UN8\",\"unfeasible\":\"unfeasible__2MuIF\",\"finite\":\"finite__2EP_f\",\"min\":\"min__3lPpn\",\"max\":\"max__1hxKl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"box__3cKyY\",\"default\":\"default__v-emJ\",\"red\":\"red__339Cz\",\"orange\":\"orange__24_8v\",\"yellow\":\"yellow__1Jo9W\",\"lime\":\"lime__34yV5\",\"cyan\":\"cyan__3RqLr\",\"blue\":\"blue__13Wnj\",\"magenta\":\"magenta__2tkzq\"};","import {Component} from 'preact'\nimport style from \"./timer.less\"\n\n\nexport default class Timer extends Component {\n constructor() {\n super();\n this.state = {\n \"now\": Date.now()\n };\n this.timer = null;\n }\n\n componentDidMount() {\n this.timer = setInterval(() => {\n this.setState({\"now\": Date.now()})\n }, 1000)\n }\n\n componentWillUnmount() {\n if(this.timer !== null) {\n clearInterval(this.timer)\n }\n }\n\n render() {\n let dateTo = \"Unknown date\";\n let className = style.timer;\n\n let parts = {\n milliseconds: \"?\",\n seconds: \"?\",\n minutes: \"?\",\n hours: \"?\",\n days: \"?\",\n };\n\n if(this.props.to) {\n dateTo = new Date(this.props.to);\n let timeLeft = dateTo - this.state.now;\n\n if(timeLeft > 0) {\n parts = {\n milliseconds: timeLeft % 1000,\n seconds: Math.floor(timeLeft / 1000) % 60,\n minutes: Math.floor(timeLeft / 60000) % 60,\n hours: Math.floor(timeLeft / 3600000) % 24,\n days: Math.floor(timeLeft / 86400000),\n };\n }\n\n else {\n parts = {\n milliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n };\n\n className += \" \" + style.expired;\n }\n }\n else {\n className += \" \" + style.unknown;\n }\n\n return (\n <div class={className} title={dateTo}>\n <div class={style.days + \" \" + style.count}>\n {parts.days}\n </div>\n <div className={style.days + \" \" + style.text}>\n giorni\n </div>\n <div class={style.hours + \" \" + style.count}>\n {parts.hours}\n </div>\n <div className={style.hours + \" \" + style.text}>\n ore\n </div>\n <div class={style.minutes + \" \" + style.count}>\n {parts.minutes}\n </div>\n <div className={style.minutes + \" \" + style.text}>\n minuti\n </div>\n <div class={style.seconds + \" \" + style.count}>\n {parts.seconds}\n </div>\n <div class={style.seconds + \" \" + style.text}>\n secondi\n </div>\n <div class={style.remaining}>\n rimasti\n </div>\n </div>\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tablepanel\":\"tablepanel__PkBWm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timer\":\"timer__K0K_h\",\"days\":\"days__vN3tf\",\"hours\":\"hours__3v0KX\",\"minutes\":\"minutes__vkYk7\",\"seconds\":\"seconds__3gJ99\",\"count\":\"count__1VV4k\",\"text\":\"text__khS4i\",\"remaining\":\"remaining__zUECg\",\"unknown\":\"unknown__af307\",\"expired\":\"expired__1rtHB\"};","import style from './Latex.css';\nimport {useContext} from \"preact/hooks\";\nimport LatexRenderColor from \"../contexts/LatexRenderColor\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nexport default function(props) {\n\t// black, blue, brown, cyan, darkgray, gray, green, lightgray, lime, magenta, olive, orange, pink, purple, red, teal, violet, white, yellow\n\tlet renderColor = useContext(LatexRenderColor);\n\tlet defaultInline = useContext(LatexDefaultInline);\n\n\tlet is_inline;\n\tif(props.inline === undefined) {\n\t\tis_inline = defaultInline;\n\t}\n\telse {\n\t\tis_inline = props.inline;\n\t}\n\n\tlet inline = is_inline ? `\\\\inline` : \"\";\n\tlet equation = `${inline} {\\\\color{${renderColor}} ${props.children} }`;\n\n\treturn (\n\t\t<img src={`https://latex.codecogs.com/svg.latex?${equation}`}\n\t\t\t alt={props.children}\n\t\t\t title={props.children}\n\t\t\t class={style.latex}\n\t\t/>\n\t);\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"title__3ZVpg\",\"contents\":\"contents__20_NI\"};","import style from \"./Example.less\";\r\nimport {Component} from \"preact\";\r\n\r\nexport default function(props) {\r\n return (\r\n <div class={style.example}>\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tif (currentComponent.__hooks) {\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\tcurrentComponent.__hooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\tif (hooks._pendingEffects.length) {\n\t\t\tafterPaint(afterPaintEffects.push(c));\n\t\t}\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\ttry {\n\t\t\thooks._list.forEach(hook => hook._cleanup && hook._cleanup());\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index) {\n\tif (options._hook) options._hook(currentComponent);\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = { _list: [], _pendingEffects: [] });\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++);\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\tif (!provider) return context._defaultValue;\n\tconst state = getHookState(currentIndex++);\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\nexport function useErrorBoundary(cb) {\n\tconst state = getHookState(currentIndex++);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window != 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (hook._cleanup) hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\tconst result = hook._value();\n\tif (typeof result == 'function') hook._cleanup = result;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <abbr class={style.max} title={\"In problemi in cui il primale è di massimizzazione.\"}>{props.children ? props.children : \"max\"}</abbr>\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <abbr class={style.finite} title={\"I punti del poliedro sono finiti.\"}>{props.children ? props.children : \"finito\"}</abbr>\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <abbr class={style.unfeasible} title={\"Il poliedro non contiene punti.\"}>{props.children ? props.children : \"vuoto\"}</abbr>\r\n );\r\n}\r\n","import style from \"./Box.less\";\r\n\r\nexport const BoxColors = Object.freeze({\r\n RED: style.red,\r\n ORANGE: style.orange,\r\n YELLOW: style.yellow,\r\n LIME: style.lime,\r\n CYAN: style.cyan,\r\n BLUE: style.blue,\r\n MAGENTA: style.magenta,\r\n DEFAULT: style.default\r\n})\r\n\r\nexport default function (props) {\r\n let color = BoxColors.DEFAULT;\r\n if(props.color) {\r\n color = props.color;\r\n }\r\n\r\n return (\r\n <div class={style.box + \" \" + color}>\r\n {props.children}\r\n </div>\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <abbr class={style.unbounded} title={\"I punti del poliedro sono infiniti.\"}>{props.children ? props.children : \"illimitato\"}</abbr>\r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./TablePanel.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <table class={style.tablepanel}>\r\n {props.children}\r\n </table>\r\n );\r\n}\r\n","import style from \"./Styles.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n <abbr class={style.min} title={\"In problemi in cui il primale è di minimizzazione.\"}>{props.children ? props.children : \"min\"}</abbr>\r\n );\r\n}\r\n","import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/Elements/Panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Timer from \"../components/old/timer\";\nimport Empty from \"../components/OttimizzazioneLineare/Empty\";\nimport Unbounded from \"../components/OttimizzazioneLineare/Unbounded\";\nimport Min from \"../components/OttimizzazioneLineare/Min\";\nimport Max from \"../components/OttimizzazioneLineare/Max\";\nimport PLatex from \"../components/PLatex\";\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\nimport TablePanel from \"../components/TablePanel\";\nimport Finite from \"../components/OttimizzazioneLineare/Finite\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n <div>\n <h1>Ottimizzazione lineare intera</h1>\n <Split title={\"Unimore\"}>\n <Panel title={\"Videolezioni su YouTube\"}>\n <p>\n Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!\n </p>\n <p>\n <b><a href={\"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh\"}>Guardate i video qui!</a></b>\n </p>\n </Panel>\n <Panel title={\"Prossimi appelli\"}>\n <ol>\n <li><Timer to={\"2020-06-08\"}/></li>\n <li><Timer to={\"2020-06-25\"}/></li>\n <li><Timer to={\"2020-07-14\"}/></li>\n </ol>\n </Panel>\n </Split>\n <LatexDefaultInline.Provider value={false}>\n <Split title={\"Glossario\"}>\n <TablePanel>\n <thead>\n <tr>\n <th><abbr title={\"Vettore / matrice\"}>v</abbr></th>\n <th><abbr title={\"Elemento singolo\"}>s</abbr></th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>{r`\\mathbf{x}`}</Latex></td>\n <td><Latex>{r`x_i`}</Latex></td>\n <td>Incognite</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{s}`}</Latex></td>\n <td><Latex>{r`s_i`}</Latex></td>\n <td>Variabili slack</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}`}</Latex></td>\n <td><Latex>{r`c_i`}</Latex></td>\n <td>Coefficienti della funzione obiettivo</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{A}`}</Latex></td>\n <td><Latex>{r`a_{ij}`}</Latex></td>\n <td>Coefficienti dei vincoli</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{b}`}</Latex></td>\n <td><Latex>{r`b_i`}</Latex></td>\n <td>Termini noti dei vincoli</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{y}`}</Latex></td>\n <td><Latex>{r`y_i`}</Latex></td>\n <td>Incognite artificiali</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}`}</Latex></td>\n <td><Latex>{r`u_i`}</Latex></td>\n <td>Coefficienti di rilassamento</td>\n </tr>\n <tr>\n <td/>\n <td><Latex>{r`c_0`}</Latex></td>\n <td>Valore ottimo di un problema</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{x}_B`}</Latex></td>\n <td/>\n <td>Incognite in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}_B`}</Latex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{B}`}</Latex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili in base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{x}_F`}</Latex></td>\n <td/>\n <td>Incognite fuori base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{c}_F`}</Latex></td>\n <td/>\n <td>Coefficienti della funzione obiettivo delle variabili fuori base</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{F}`}</Latex></td>\n <td/>\n <td>Coefficienti dei vincoli delle variabili fuori base</td>\n </tr>\n </tbody>\n </TablePanel>\n <TablePanel>\n <thead>\n <tr>\n <th>Simboli</th>\n <th>Significato</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>{r`\\mathbf{c}^T \\mathbf{x}`}</Latex></td>\n <td>Soluzione del problema</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{A} \\mathbf{x} = \\mathbf{b}`}</Latex></td>\n <td>Vincoli in forma standard</td>\n </tr>\n <tr>\n <td><Latex>{r`z(\\dots)`}</Latex></td>\n <td>Funzione obiettivo</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}^T \\mathbf{b}`}</Latex></td>\n <td>Soluzione del problema duale</td>\n </tr>\n <tr>\n <td><Latex>{r`\\mathbf{u}^T \\mathbf{A} = \\mathbf{c}^T`}</Latex></td>\n <td>Vincoli del problema duale in forma standard</td>\n </tr>\n </tbody>\n </TablePanel>\n </Split>\n </LatexDefaultInline.Provider>\n <Split title={\"Le basi\"}>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n </p>\n <p>\n <Latex>{r`z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n`}</Latex>\n </p>\n </Panel>\n </Split>\n <Split title={\"Problemi di ottimizzazione lineare\"}>\n <Panel title={\"Cosa sono?\"}>\n <p>\n I problemi di ottimizzazione lineare sono problemi che cercano di <Min>minimizzare</Min>/<Max>massimizzare</Max> il valore di una <i>funzione obiettivo</i> le cui incognite sono sottoposte a un <b>sistema di <i>vincoli</i></b>.\n </p>\n </Panel>\n <Panel title={\"Funzione obiettivo\"}>\n <p>\n La funzione da <Min>minimizzare</Min>/<Max>massimizzare</Max>.\n </p>\n <p>\n Il vettore dei suoi coefficienti è detto <Latex>{r`\\mathbf{c}`}</Latex>, mentre quello delle sue incognite <Latex>{r`\\mathbf{x}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Vincoli\"}>\n <p>\n Equazioni e disequazioni a cui devono sottostare le incognite perchè esse formino una soluzione valida.\n </p>\n <p>\n I loro coefficienti sono contenuti nella matrice <Latex>{r`\\mathbf{A}`}</Latex>, mentre i loro termini noti nel vettore <Latex>{r`\\mathbf{b}`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Valore ottimo\"}>\n <p>\n La <b>soluzione</b> di un problema, ricavabile dal prodotto <Latex>{r`\\mathbf{c}^T \\mathbf{x}`}</Latex>.\n </p>\n <p>\n Spesso, la funzione obiettivo è indicata con il nome <Latex>{r`z(\\dots)`}</Latex>.\n </p>\n </Panel>\n <Panel title={\"Poliedro\"}>\n <p>\n L'<b>insieme</b> che racchiunde tutte le <b>soluzioni ammissibili</b> di un problema.\n </p>\n <p>\n In particolare, il valore ottimo è un <b>vertice</b> del poliedro, detto <i>vertice ottimo</i>.\n </p>\n <p>\n Può essere <i><Finite/></i>, <i><Empty/></i> oppure <i><Unbounded/></i>.\n </p>\n </Panel>\n <Panel title={\"Gradiente\"}>\n <p>\n <b>Funzione</b> della funzione obiettivo che restituisce la direzione del suo aumento più veloce.\n </p>\n <p>\n <Latex>{r`\\nabla f = \\frac{\\delta f}{\\delta x_1} \\mathbf{I}_1 + \\frac{\\delta f}{\\delta x_2} \\mathbf{I}_2 + \\frac{\\delta f}{\\delta x_n} \\mathbf{I}_n`}</Latex>\n </p>\n <Example>\n La matrice <Latex>{r`\\mathbf{I}`}</Latex> è la matrice identità.\n </Example>\n <Example>\n Se la funzione obiettivo è <Latex>z = 2w + 3x + 4y</Latex>, il suo gradiente è <Latex>{r`\\nabla z = (2, 3, 4)`}</Latex>.\n </Example>\n </Panel>\n </Split>\n <Split title={\"Forme di un problema di ottimizzazione\"}>\n <Panel title={\"Forma generale\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Equazioni e disequazioni</b></li>\n <li><b>Variabili non vincolate</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad \\mathbf{A'} \\mathbf{x} \\geq \\mathbf{b'} \\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma canonica\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Solo disequazioni</b></li>\n <li><b>Vincoli di non-negatività sulle incognite</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} \\geq b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n <Panel title={\"Forma standard\"}>\n <p>\n Un problema con:\n </p>\n <ul>\n <li><b>Solo equazioni</b></li>\n <li><b>Vincoli di non-negatività sulle incognite</b></li>\n </ul>\n <PLatex>{r`min \\left\\{ \\mathbf{c}^T \\mathbf{x} : \\mathbf{A} \\mathbf{x} = b,\\quad x_j \\geq 0,\\quad j = 1 \\dots n \\right\\}`}</PLatex>\n </Panel>\n </Split>\n <Split title={\"Conversioni tra le forme\"}>\n <Panel title={\"Standard e generale\"}>\n <p>\n Applica questa conversione a ogni equazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`a = b \\Leftrightarrow\n \\begin{cases}\n a \\leq b\\\\\n a \\geq b\n \\end{cases}\n `}</Latex>\n </p>\n <Example>Serve solo nella teoria per dimostrare che le forme sono equivalenti.</Example>\n </Panel>\n <Panel title={\"Canonica e standard\"}>\n <p>\n Aggiungi una <i>variabile slack</i> <Latex>{r`s`}</Latex> <b>non-vincolata</b> a ogni disequazione nel sistema:\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\leq b \\Leftrightarrow a + s = b\n `}</Latex>\n </p>\n <p>\n <Latex inline={false}>{r`\n a \\geq b \\Leftrightarrow a - s = b\n `}</Latex>\n </p>\n </Panel>\n <Panel title={\"Generale e canonica\"}>\n <p>\n Sdoppia ogni variabile non-vincolata in due variabili con vincolo di non-negatività:\n </p>\n <p>\n <Latex inline={false}>{r`\\begin{cases}\n a = a^+ - a^-\\\\\n a^+ \\geq 0\\\\\n a^- \\geq 0\n \\end{cases}`}</Latex>\n </p>\n </Panel>\n </Split>\n <Split title={\"La forma standard\"}>\n <Panel title={\"Tableau\"}>\n <p>\n Un modo per rappresentare sistemi in forma standard, anche noto come <b>matrice equivalente completa</b> del sistema.\n </p>\n <Example>\n Il sistema:<br/><br/>\n <Latex inline={false}>{r`\n \\begin{cases}\n 2000x_1 + 1000x_2 = z\\\\\n 1x_1 \\leq 3\\\\\n 1x_2 \\leq 3\\\\\n 2x_1 + 2x_2 \\leq 7\n \\end{cases}\n `}</Latex><br/><br/>\n Diventa il tableau:<br/><br/>\n <table class={\"right\"}>\n <thead>\n <tr>\n <th><abbr title={\"Termine noto\"}>TN</abbr></th>\n <th><Latex>x_1</Latex></th>\n <th><Latex>x_2</Latex></th>\n <th><Latex>s_1</Latex></th>\n <th><Latex>s_2</Latex></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td><Latex>z</Latex></td>\n <td><Latex>2000</Latex></td>\n <td><Latex>1000</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n <tr>\n <td><Latex>3</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>1</Latex></td>\n </tr>\n <tr>\n <td><Latex>7</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>2</Latex></td>\n <td><Latex>0</Latex></td>\n <td><Latex>0</Latex></td>\n </tr>\n </tbody>\n </table>\n </Example>\n </Panel>\n <Panel title={\"Variabili nella base\"}>\n <p>\n Variabili che hanno <b>tutti 0 e un solo 1</b> nella loro colonna del tableau.\n </p>\n <p>\n La loro controparte sono le <i>variabili fuori base</i>, che hanno qualsiasi altro valore.\n </p>\n </Panel>\n </Split>\n <Split title={\"Simplex primale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un algoritmo per <Min>minimizzare</Min>/<Max>massimizzare</Max> trovare efficientemente <b>valore ottimo</b> di problemi di ottimizzazione lineare, derivato da Gauss-Jordan.\n </p>\n <p>\n Da esso si può anche ricavare un <b>vertice ottimo ammissibile</b>.<br/>\n C'è la possibilità che ne esistano anche altri: quello ottenuto dipende da come è stata effettuata la scelta delle variabili entranti.\n </p>\n <Example>\n E' spiegato in modo semplice <a href={\"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf\"}>qui</a>, e ci sono dei codici sorgenti di esempio <a href={\"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/\"}>qui</a>.\n </Example>\n <Example title={\"Esempio\"}>\n <p>\n <a href={\"https://i.imgur.com/1r405Mb.jpg\"}>Questa</a> è la soluzione passo per passo del problema 3 del file <a href={\"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716\"}><code>Ex_LP_testo</code></a>.\n </p>\n </Example>\n </Panel>\n <Panel title={\"I passi\"}>\n <ol>\n <li>Trasforma il sistema in <b>forma standard</b>.</li>\n <li>Trova tante variabili <b>linearmente indipendenti</b> quante siano le righe: esse saranno la <i>base iniziale</i>.</li>\n <li>Finchè ci sono variabili con coefficienti <Min>positivi</Min>/<Max>negativi</Max> nella funzione obiettivo:\n <ol>\n <li>\n <b>Scegli</b> la prima variabile fuori base con coefficiente <Min>positivo</Min>/<Max>negativo</Max> nella funzione obiettivo: essa è la <i>variabile entrante</i>.<br/>\n <aside><i>Regola di Bland</i>: Si potrebbe scegliere qualsiasi variabile come entrante, ma scegliendo sempre la prima ammissibile ci si assicura che l'algoritmo termini.</aside>\n </li>\n <li>\n <b>Scegli</b> la variabile in base con il minor rapporto positivo <Latex>{r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}</Latex>.\n <aside>Se non sei riuscito a trovare nessuna variabile con un rapporto positivo, significa che il poliedro è <Unbounded/>.</aside>\n </li>\n <li><u>Pivot</u>: <b>riscrivi</b> tutte le funzioni del sistema in termini della variabile entrante.</li>\n </ol>\n </li>\n <li>Il poliedro è <Finite/>: i <b>termini noti dei vincoli</b> sono le coordinate del suo vertice ottimo, mentre il <b>termine noto della funzione obiettivo</b> è il valore ottimo.</li>\n </ol>\n <Example>\n È praticamente l'algoritmo di Gauss-Jordan applicato al tableau, con delle regole aggiuntive per la decisione delle variabili di pivot.\n </Example>\n </Panel>\n <Panel title={\"Soluzioni di base degenerata\"}>\n <p>\n Una soluzione con almeno una variabile di valore <Latex>0</Latex>, dovuta a uno o più <b>vincoli ridondanti</b>.\n </p>\n <p>\n Senza <b>Regola di Bland</b> e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.\n </p>\n </Panel>\n </Split>\n <Split title={\"Metodo delle due fasi\"}>\n <Panel title={\"Metodo delle due fasi\"}>\n <p>\n Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile.\n </p>\n <p>\n Prevede l'introduzione di un <i>problema ausiliario</i>, le cui incognite sono dette <i>artificiali</i>.\n </p>\n <p>\n Il vettore delle incognite artificiali è solitamente chiamato <Latex>{r`\\mathbf{y}`}</Latex>.\n </p>\n <Example>\n E' spiegato in modo semplice <a href={\"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf\"}>qui</a>.\n </Example>\n </Panel>\n <Panel title={\"Procedimento\"}>\n <ol>\n <li>Crea un nuovo tableau, <b>aggiungendo variabili artificiali</b> in modo da avere una base ammissibile.</li>\n <li>Sostituisci la vecchia funzione obiettivo con una nuova che <b>minimizzi la somma</b> di tutte le variabili artificiali.</li>\n <li><u>Fase 1</u>: <b>Risolvi</b> il nuovo problema con il simplex primale.</li>\n <li>Se il Simplex termina quando ci sono ancora <b>variabili artificiali nella base</b>, allora il poliedro è <b><Empty/></b>.</li>\n <li>Una volta che le variabili artificiali sono fuori base, <b>elimina</b> le loro colonne e la nuova funzione obiettivo.<br/></li>\n <li>Riporta il tableau in forma base compiendo operazioni per <b>azzerare i coefficienti</b> delle variabili di base nella funzione obiettivo.</li>\n <li><u>Fase 2</u>: <b>Risolvi</b> il tableau con il simplex primale.</li>\n </ol>\n </Panel>\n </Split>\n <Split title={\"Rilassamento\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Una versione semplificata di un problema nella quale si <b>ignora la violazione</b> di uno o più vincoli.\n </p>\n </Panel>\n <Panel title={\"Rilassamento di Lagrange\"}>\n <p>\n Un rilassamento che permette di misurare <b>di quanto i vincoli vengono violati</b>.\n </p>\n <p>\n I vincoli, moltiplicati per <b>coefficienti di rilassamento</b>, vengono inseriti nella funzione obiettivo.\n </p>\n <p>\n Il vettore dei coefficienti di rilassamento solitamente è indicato con <Latex>{r`\\mathbf{u}`}</Latex>.\n </p>\n <Example>\n <p>\n Il sistema:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2\\\\\n 2 x_1 + 3 x_2 \\geq 12\\\\\n - x_1 + 3 x_2 \\geq 3\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n <p>\n diventa:\n </p>\n <Latex inline={false}>{r`\n \\begin{cases}\n z = 3 x_1 + 5 x_2 + u_1 ( 12 - 2 x_1 - 3 x_2 ) + u_2 ( 3 + x_1 - 3 x_2 )\\\\\n x_1 \\geq 0\\\\\n x_2 \\geq 0\n \\end{cases}\n `}</Latex>\n </Example>\n </Panel>\n </Split>\n <Split title={\"Dualità\"}>\n <Panel title={\"Duale\"}>\n <p>\n Il sistema che <b><Min>massimizza</Min>/<Max>minimizza</Max> i moltiplicatori di rilassamento</b> di un problema detto <i>primale</i>.\n </p>\n </Panel>\n <Panel title={\"In termini matriciali\"}>\n <p>\n Possiamo <b>trasporre</b> il tableau e sostituire le variabili <Latex>{r`x_n`}</Latex> con variabili <Latex>{r`u_n`}</Latex> per ottenere il sistema duale!\n </p>\n <p>\n I maggiori e minori dei vincoli diventeranno maggiori e minori delle variabili e viceversa.\n </p>\n </Panel>\n <Panel title={\"Feasibility del duale\"}>\n <ul>\n <li>Se un problema ha una <b>soluzione finita</b>, allora anche il suo duale la avrà.</li>\n <li>Se un problema è <b><Empty/></b>, allora il suo duale potrà essere <Empty/> oppure <Unbounded/>.</li>\n <li>Se un problema è <b><Unbounded/></b>, allora il suo duale sarà certamente <Empty/>.</li>\n </ul>\n </Panel>\n </Split>\n <Split title={\"Un po' di teoria\"}>\n <Panel title={\"Lemma di Farkas\"}>\n <p>\n Una disuguaglianza lineare <Latex>{r`c_0 \\leq \\mathbf{c}^T \\mathbf{x}`}</Latex> è verificata da tutti i punti di un poliedro non-<Empty/> se e solo se esiste un vettore <Latex>{r`u \\in \\mathfrak{R}^m`}</Latex> tale che:\n </p>\n <PLatex>{r`\\mathbf{c}^T \\geq \\mathbf{u}^T \\mathbf{A}`}</PLatex>\n <PLatex>{r`c_0 \\leq \\mathbf{u}^T \\mathbf{b}`}</PLatex>\n <p>\n <Todo>TODO: Cioè?</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità forte\"}>\n <p>\n Il teorema che dimostra l'equivalenza tra primale e duale.\n </p>\n <p>\n Se uno dei due problemi è finito, la soluzione di uno coincide con la soluzione dell'altro.\n </p>\n <p>\n <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex>\n </p>\n <p>\n <Todo>TODO: Anche qui c'è una lunga dimostrazione...</Todo>\n </p>\n </Panel>\n <Panel title={\"Dualità debole\"}>\n <p>\n Il teorema che dimostra che il valore della funzione obiettivo del duale (di un qualsiasi tableau) è sempre <Min>minore o uguale</Min>/<Max>maggiore o uguale</Max> alla soluzione del corrispettivo primale.\n </p>\n <p>\n <Todo>TODO: Dimostrazione cortina, ma sembra complicata.</Todo>\n </p>\n </Panel>\n <Panel title={\"Condizioni di ottimalità\"}>\n <p>\n Il teorema che ci permette di passare dalla soluzione del duale alla soluzione del primale. <Todo>TODO: credo?</Todo>\n </p>\n <p>\n Si deriva combinando le seguenti condizioni:\n </p>\n <ul>\n <li>Ammissibilità del primale: <Latex>{r`\\mathbf{A} \\mathbf{X} \\geq \\mathbf{b}, \\quad \\mathbf{x} \\geq 0`}</Latex></li>\n <li>Ammissibilità del duale: <Latex>{r`\\mathbf{u}^T \\mathbf{A} \\leq \\mathbf{c}^T, \\quad \\mathbf{u} \\geq 0`}</Latex></li>\n <li>Teorema della dualità forte: <Latex>{r`\\mathbf{c}^T \\mathbf{x} = \\mathbf{u}^T \\mathbf{b}`}</Latex> (alla soluzione ottima)</li>\n </ul>\n <p>\n Ne risulta che una soluzione è ottima se e solo se:\n </p>\n <PLatex>{r`\\left( \\mathbf{c}^T - \\mathbf{u}^T \\mathbf{A} \\right) \\mathbf{x} = 0`}</PLatex>\n <PLatex>{r`\\mathbf{u}^T \\left( \\mathbf{A} \\mathbf{x} - \\mathbf{b} \\right) = 0`}</PLatex>\n </Panel>\n </Split>\n <Split title={\"Simplex duale\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un'estensione al Simplex primale che opera sul problema duale.\n </p>\n </Panel>\n <Panel title={\"Come funziona?\"}>\n <p>\n Funziona esattamente come il Simplex primale, ma opera sulle righe invece che sulle colonne, cercando di rendere <Min>positivi</Min>/<Max>negativi</Max> tutti i termini noti.\n </p>\n </Panel>\n </Split>\n <Split title={\"Analisi di sensibilità\"}>\n <Panel title={\"Cos'è?\"}>\n <p>\n Un procedimento che misura di <b>quanto può variare</b> il termine noto di un vincolo <Latex>{r`b_i`}</Latex> o il coefficiente della funzione obiettivo <Latex>{r`c_i`}</Latex> prima che la base degeneri. <Todo>TODO: verificare</Todo>\n </p>\n </Panel>\n </Split>\n </div>\n )\n }\n}\n","import style from \"./Panel.less\";\nimport Box from \"./Box\";\n\nexport default function(props) {\n\treturn (\n\t\t<Box color={props.color}>\n\t\t\t<h3 class={style.title}>\n\t\t\t\t{props.title}\n\t\t\t</h3>\n\t\t\t<div class={style.contents}>\n\t\t\t\t{props.children}\n\t\t\t</div>\n\t\t</Box>\n\t);\n}\n","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn <span class={style.todo}>{this.props.children}</span>;\n\t}\n}\n","import style from \"./split.css\";\nimport { Component } from 'preact';\n\nexport default class Split extends Component {\n\trender() {\n\t let title = null;\n\t if(this.props.title !== undefined) {\n title = (<h2>{this.props.title}</h2>)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (<div class={style.splitchild}>{element}</div>);\n });\n }\n else {\n children = <div class={style.splitchild}>{this.props.children}</div>;\n }\n\t\treturn (\n\t <div class={style.split}>\n {title}\n <div class={style.splitparent}>{children}</div>\n </div>\n );\n\t}\n}\n","import Latex from \"./Latex\";\r\n\r\nexport default function (props) {\r\n return (\r\n <p>\r\n <Latex inline={false}>{props.children}</Latex>\r\n </p>\r\n );\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""}