From 6e2e19b7fc6a4c621507a6ec81be471b38ab6e07 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 24 May 2020 18:52:18 +0200 Subject: [PATCH] Update --- ...undle.87dc2.esm.js => bundle.74134.esm.js} | 4 +- ...dc2.esm.js.map => bundle.74134.esm.js.map} | 2 +- docs/{bundle.a2f8e.css => bundle.b01bd.css} | 2 +- docs/{bundle.cdffd.js => bundle.fb716.js} | 4 +- ...undle.cdffd.js.map => bundle.fb716.js.map} | 2 +- docs/index.html | 2 +- ...t.40c748ad559066accc883673cce8ce47.esm.js} | 42 +++++++++--------- ...ifest.c174bc8e42d4199c747cda8554c67ae3.js} | 44 +++++++++---------- docs/push-manifest.json | 2 +- ... => route-calcoloNumerico.chunk.4d04d.css} | 2 +- ... route-calcoloNumerico.chunk.abaa3.esm.js} | 2 +- ...te-calcoloNumerico.chunk.abaa3.esm.js.map} | 2 +- ...s => route-calcoloNumerico.chunk.b64db.js} | 2 +- ... route-calcoloNumerico.chunk.b64db.js.map} | 2 +- ...31dee.css => route-fisica.chunk.598fe.css} | 2 +- ...esm.js => route-fisica.chunk.953ff.esm.js} | 2 +- ...ap => route-fisica.chunk.953ff.esm.js.map} | 2 +- ...k.b6e43.js => route-fisica.chunk.9892b.js} | 2 +- ...js.map => route-fisica.chunk.9892b.js.map} | 2 +- ...2.esm.js => route-home.chunk.008cd.esm.js} | 2 +- ....map => route-home.chunk.008cd.esm.js.map} | 2 +- ...unk.0540f.js => route-home.chunk.6edcf.js} | 2 +- ...f.js.map => route-home.chunk.6edcf.js.map} | 2 +- ...k.b0630.css => route-home.chunk.81f93.css} | 2 +- ...e-ottimizzazioneLineare.chunk.192fc.esm.js | 9 ---- ...e-ottimizzazioneLineare.chunk.353b8.esm.js | 9 ++++ ...imizzazioneLineare.chunk.353b8.esm.js.map} | 2 +- ...route-ottimizzazioneLineare.chunk.762b1.js | 2 + ...e-ottimizzazioneLineare.chunk.762b1.js.map | 1 + ...ute-ottimizzazioneLineare.chunk.9a20b.css} | 2 +- ...route-ottimizzazioneLineare.chunk.9e341.js | 2 - ...e-ottimizzazioneLineare.chunk.9e341.js.map | 1 - docs/sw-esm.js | 2 +- docs/sw.js | 2 +- .../OttimizzazioneLineare/Unbounded.js | 7 +++ .../OttimizzazioneLineare/Unbounded.less | 2 + .../OttimizzazioneLineare/Unfeasible.js | 6 +++ .../OttimizzazioneLineare/Unfeasible.less | 2 + 38 files changed, 100 insertions(+), 83 deletions(-) rename docs/{bundle.87dc2.esm.js => bundle.74134.esm.js} (83%) rename docs/{bundle.87dc2.esm.js.map => bundle.74134.esm.js.map} (66%) rename docs/{bundle.a2f8e.css => bundle.b01bd.css} (92%) rename docs/{bundle.cdffd.js => bundle.fb716.js} (99%) rename docs/{bundle.cdffd.js.map => bundle.fb716.js.map} (99%) rename docs/{precache-manifest.d5b9b83a383fd46375c30c19ae5399b0.esm.js => precache-manifest.40c748ad559066accc883673cce8ce47.esm.js} (63%) rename docs/{precache-manifest.d70c8ac2ebf9c8612909cb2648f39798.js => precache-manifest.c174bc8e42d4199c747cda8554c67ae3.js} (64%) rename docs/{route-calcoloNumerico.chunk.c6691.css => route-calcoloNumerico.chunk.4d04d.css} (92%) rename docs/{route-calcoloNumerico.chunk.073a6.esm.js => route-calcoloNumerico.chunk.abaa3.esm.js} (99%) rename docs/{route-calcoloNumerico.chunk.073a6.esm.js.map => route-calcoloNumerico.chunk.abaa3.esm.js.map} (54%) rename docs/{route-calcoloNumerico.chunk.b5b36.js => route-calcoloNumerico.chunk.b64db.js} (99%) rename docs/{route-calcoloNumerico.chunk.b5b36.js.map => route-calcoloNumerico.chunk.b64db.js.map} (99%) rename docs/{route-fisica.chunk.31dee.css => route-fisica.chunk.598fe.css} (80%) rename docs/{route-fisica.chunk.1ad2c.esm.js => route-fisica.chunk.953ff.esm.js} (99%) rename docs/{route-fisica.chunk.1ad2c.esm.js.map => route-fisica.chunk.953ff.esm.js.map} (59%) rename docs/{route-fisica.chunk.b6e43.js => route-fisica.chunk.9892b.js} (99%) rename docs/{route-fisica.chunk.b6e43.js.map => route-fisica.chunk.9892b.js.map} (99%) rename docs/{route-home.chunk.a4a02.esm.js => route-home.chunk.008cd.esm.js} (99%) rename docs/{route-home.chunk.a4a02.esm.js.map => route-home.chunk.008cd.esm.js.map} (60%) rename docs/{route-home.chunk.0540f.js => route-home.chunk.6edcf.js} (99%) rename docs/{route-home.chunk.0540f.js.map => route-home.chunk.6edcf.js.map} (99%) rename docs/{route-home.chunk.b0630.css => route-home.chunk.81f93.css} (72%) delete mode 100644 docs/route-ottimizzazioneLineare.chunk.192fc.esm.js create mode 100644 docs/route-ottimizzazioneLineare.chunk.353b8.esm.js rename docs/{route-ottimizzazioneLineare.chunk.192fc.esm.js.map => route-ottimizzazioneLineare.chunk.353b8.esm.js.map} (52%) create mode 100644 docs/route-ottimizzazioneLineare.chunk.762b1.js create mode 100644 docs/route-ottimizzazioneLineare.chunk.762b1.js.map rename docs/{route-ottimizzazioneLineare.chunk.eb9a0.css => route-ottimizzazioneLineare.chunk.9a20b.css} (80%) delete mode 100644 docs/route-ottimizzazioneLineare.chunk.9e341.js delete mode 100644 docs/route-ottimizzazioneLineare.chunk.9e341.js.map create mode 100644 src/components/OttimizzazioneLineare/Unbounded.js create mode 100644 src/components/OttimizzazioneLineare/Unbounded.less create mode 100644 src/components/OttimizzazioneLineare/Unfeasible.js create mode 100644 src/components/OttimizzazioneLineare/Unfeasible.less diff --git a/docs/bundle.87dc2.esm.js b/docs/bundle.74134.esm.js similarity index 83% rename from docs/bundle.87dc2.esm.js rename to docs/bundle.74134.esm.js index 3a7514a..03ef76a 100644 --- a/docs/bundle.87dc2.esm.js +++ b/docs/bundle.74134.esm.js @@ -1,2 +1,2 @@ -!function(t){function e(e){for(var n,o,r=e[0],a=e[1],u=0,c=[];u{e=this.base=this.nextBase||this.__b,t(t=>{this.setState({child:t.default||t})})},this.shouldComponentUpdate=(t,r)=>(n=(r=void 0===r.child)&&void 0===n&&e?3===e.nodeType?e.data:Object(o.h)(e.nodeName,{dangerouslySetInnerHTML:{__html:e.innerHTML}}):"",!r),this.render=(t,e)=>e.child?Object(o.h)(e.child,t):n}return(e.prototype=new o.Component).constructor=e,e}},Vh2B:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(4).then(function(){t(n("HmML"))}.bind(null,n)).catch(n.oe)}))},WC2o:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(7).then(function(){t(n("EIZr"))}.bind(null,n)).catch(n.oe)}))},Y3FI:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t,e,n){var o,r=/(?:\?([^#]*))?(#.*)?$/,i=t.match(r),a={};if(i&&i[1])for(var c=i[1].split("&"),l=0;le.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:u(t.props.path).map(c).join("")}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=y&&y.location?y.location:y&&y.getCurrentLocation?y.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),y&&y[e]?y[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),p(t)}function p(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;y&&(this.unlisten=y.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(v.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(v.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(v.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(v.createElement)(t.component,t)},C.Link=function(t){return Object(v.createElement)("a",o({onClick:h},t))},C.exec=r,e.a=C},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=W.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref,null)}function P(t){var e={},n={__c:"__cC"+D++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(t){r.props.value!==t.value&&o.some((function(e){e.context=t.value,f(e)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return T})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return A}));var A,T,L,j,U,N,I,D,M={},W=[],z=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;A={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return f(n.__E=n)}catch(e){t=e}throw t}},T=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),f(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),f(this))},l.prototype.render=c,L=[],j=0,U="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,I=M,D=0},lSvg:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var o=n("K9Cg"),r=n.n(o),i=n("hosL");class a extends i.Component{render(){return t("div",{class:r.a.copyright},"© 2019 - Stefano Pigozzi - ",t("a",{href:"https://creativecommons.org/licenses/by-sa/4.0/"},"CC BY-SA 4.0")," - ",t("a",{href:"https://github.com/Steffo99/appuntiweb"},"Codice sorgente")," - ",t("a",{href:"https://ko-fi.com/steffo"},"Supportami"))}}}).call(this,n("hosL").h)},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){Promise.all([n.e(0),n.e(9)]).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL");const{h:r,render:i}=o,a=t=>t&&t.default?t.default:t;if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw-esm.js"),"function"==typeof a(n("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;(()=>{let e=a(n("QfWi")),o={};const u=document.querySelector('[type="__PREACT_CLI_DATA__"]');u&&(o=JSON.parse(u.innerHTML).preRenderData||o),t=i(r(e,{CLI_DATA:{preRenderData:o}}),document.body,t)})()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;f--){var h=a[f];"."===h?i(a,f):".."===h?(i(a,f),p++):p&&(i(a,f),p--)}if(!l)for(;p--;p)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var d=a.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d},v=function(t){if(!t)throw new Error("Invariant failed")},m=!("undefined"==typeof window||!window.document||!window.document.createElement),y={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!=c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":f||(f=!0,console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],p=[],f=!1,h="function"==typeof WeakMap,d=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),d.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&p.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){p=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=p.length>0?p[p.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&p.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,f=c.options.__,d=c.options.__h,_=h?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}f&&f(t,e)},c.options.__b=function(e){var n,r,i,c=e.type,s=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===c)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=c&&"object"==typeof c){if(void 0!==c.__k&&void 0!==c.__e)throw new Error("Invalid type passed to createElement(): "+c+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(c)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(c)?"array":c))}if("thead"!==c&&"tfoot"!==c&&"tbody"!==c||"table"===s.type?"tr"===c&&"thead"!==s.type&&"tfoot"!==s.type&&"tbody"!==s.type&&"table"!==s.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===c&&"tr"!==s.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"th"===c&&"tr"!==s.type&&console.error("Improper nesting of table. Your should have a ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var p in e.props)if("o"===p[0]&&"n"===p[1]&&"function"!=typeof e.props[p]&&null!=e.props[p])throw new Error("Component's \""+p+'" property should be a function, but got ['+typeof e.props[p]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var f="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(f+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(f+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,i,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed prop type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");d&&d(t)};var v=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},m={nodeName:v("nodeName","use vnode.type"),attributes:v("attributes","use vnode.props"),children:v("children","use vnode.props.children")},y=Object.create({},m);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,y),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(e){if(e&&void 0===e.type){delete e.__,delete e.__b;var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+a(t))}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;c{e=this.base=this.nextBase||this.__b,t(t=>{this.setState({child:t.default||t})})},this.shouldComponentUpdate=(t,r)=>(n=(r=void 0===r.child)&&void 0===n&&e?3===e.nodeType?e.data:Object(o.h)(e.nodeName,{dangerouslySetInnerHTML:{__html:e.innerHTML}}):"",!r),this.render=(t,e)=>e.child?Object(o.h)(e.child,t):n}return(e.prototype=new o.Component).constructor=e,e}},Vh2B:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(4).then(function(){t(n("HmML"))}.bind(null,n)).catch(n.oe)}))},WC2o:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){n.e(7).then(function(){t(n("EIZr"))}.bind(null,n)).catch(n.oe)}))},Y3FI:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t,e,n){var o,r=/(?:\?([^#]*))?(#.*)?$/,i=t.match(r),a={};if(i&&i[1])for(var c=i[1].split("&"),l=0;le.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:u(t.props.path).map(c).join("")}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=y&&y.location?y.location:y&&y.getCurrentLocation?y.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),y&&y[e]?y[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),f(t)}function f(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;y&&(this.unlisten=y.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(v.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(v.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(v.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(v.createElement)(t.component,t)},C.Link=function(t){return Object(v.createElement)("a",o({onClick:h},t))},C.exec=r,e.a=C},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=W.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref,null)}function P(t){var e={},n={__c:"__cC"+D++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(t){r.props.value!==t.value&&o.some((function(e){e.context=t.value,p(e)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return O})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return T})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return A}));var A,T,L,j,U,N,I,D,M={},W=[],z=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;A={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return p(n.__E=n)}catch(e){t=e}throw t}},T=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),p(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),p(this))},l.prototype.render=c,L=[],j=0,U="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,I=M,D=0},lSvg:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return a}));var o=n("K9Cg"),r=n.n(o),i=n("hosL");class a extends i.Component{render(){return t("div",{class:r.a.copyright},"© 2020 - Stefano Pigozzi - ",t("a",{href:"https://creativecommons.org/licenses/by-sa/4.0/"},"CC BY-SA 4.0")," - ",t("a",{href:"https://github.com/Steffo99/appuntiweb"},"Codice sorgente")," - ",t("a",{href:"https://ko-fi.com/steffo"},"Supportami"))}}}).call(this,n("hosL").h)},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){Promise.all([n.e(0),n.e(9)]).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL");const{h:r,render:i}=o,a=t=>t&&t.default?t.default:t;if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw-esm.js"),"function"==typeof a(n("QfWi"))){let t=document.getElementById("preact_root")||document.body.firstElementChild;(()=>{let e=a(n("QfWi")),o={};const u=document.querySelector('[type="__PREACT_CLI_DATA__"]');u&&(o=JSON.parse(u.innerHTML).preRenderData||o),t=i(r(e,{CLI_DATA:{preRenderData:o}}),document.body,t)})()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;p--){var h=a[p];"."===h?i(a,p):".."===h?(i(a,p),f++):f&&(i(a,p),f--)}if(!l)for(;f--;f)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var d=a.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d},v=function(t){if(!t)throw new Error("Invariant failed")},m=!("undefined"==typeof window||!window.document||!window.document.createElement),y={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!=c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":p||(p=!0,console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],f=[],p=!1,h="function"==typeof WeakMap,d=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),d.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&f.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){f=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=f.length>0?f[f.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&f.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,p=c.options.__,d=c.options.__h,_=h?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}p&&p(t,e)},c.options.__b=function(e){var n,r,i,c=e.type,s=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===c)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=c&&"object"==typeof c){if(void 0!==c.__k&&void 0!==c.__e)throw new Error("Invalid type passed to createElement(): "+c+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(c)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(c)?"array":c))}if("thead"!==c&&"tfoot"!==c&&"tbody"!==c||"table"===s.type?"tr"===c&&"thead"!==s.type&&"tfoot"!==s.type&&"tbody"!==s.type&&"table"!==s.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===c&&"tr"!==s.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===c&&"tr"!==s.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var f in e.props)if("o"===f[0]&&"n"===f[1]&&"function"!=typeof e.props[f]&&null!=e.props[f])throw new Error("Component's \""+f+'" property should be a function, but got ['+typeof e.props[f]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var h=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(p+"Component wrapped in lazy() is "+o(h))}catch(e){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,i,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed prop type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");d&&d(t)};var v=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},m={nodeName:v("nodeName","use vnode.type"),attributes:v("attributes","use vnode.props"),children:v("children","use vnode.props.children")},y=Object.create({},m);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,y),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(e){if(e&&void 0===e.type){delete e.__,delete e.__b;var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+a(t))}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;ce.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:(e=t.props.path,u(e).map(c).join(""));var e}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),m&&m[e]?m[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),f(t)}function f(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(v.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(v.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(v.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(v.createElement)(t.component,t)},C.Link=function(t){return Object(v.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=W.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref,null)}function P(t){var e={},n={__c:"__cC"+D++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(t){r.props.value!==t.value&&o.some((function(e){e.context=t.value,p(e)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return E})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return T})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return A}));var A,T,L,j,U,N,I,D,M={},W=[],z=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;A={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return p(n.__E=n)}catch(e){t=e}throw t}},T=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),p(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),p(this))},l.prototype.render=c,L=[],j=0,U="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,I=M,D=0},lSvg:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return i}));var o=n("K9Cg"),r=n.n(o),i=function(e){function n(){return e.apply(this,arguments)||this}var o,i;return i=e,(o=n).prototype=Object.create(i.prototype),o.prototype.constructor=o,o.__proto__=i,n.prototype.render=function(){return t("div",{class:r.a.copyright},"© 2019 - Stefano Pigozzi - ",t("a",{href:"https://creativecommons.org/licenses/by-sa/4.0/"},"CC BY-SA 4.0")," - ",t("a",{href:"https://github.com/Steffo99/appuntiweb"},"Codice sorgente")," - ",t("a",{href:"https://ko-fi.com/steffo"},"Supportami"))},n}(n("hosL").Component)}).call(this,n("hosL").h)},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){Promise.all([n.e(0),n.e(9)]).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL"),r=o.h,i=o.render,a=function(t){return t&&t.default?t.default:t};if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw.js"),"function"==typeof a(n("QfWi"))){var u=document.getElementById("preact_root")||document.body.firstElementChild;0,function(){var t=a(n("QfWi")),e={},o=document.querySelector('[type="__PREACT_CLI_DATA__"]');o&&(e=JSON.parse(o.innerHTML).preRenderData||e);var c;e.url&&(c=e.url);u=i(r(t,{CLI_DATA:{preRenderData:e}}),document.body,u)}()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;p--){var d=a[p];"."===d?i(a,p):".."===d?(i(a,p),f++):f&&(i(a,p),f--)}if(!l)for(;f--;f)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},g=function(t){if(!t)throw new Error("Invariant failed")},b=!("undefined"==typeof window||!window.document||!window.document.createElement),w={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!=c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":p||(p=!0,console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],f=[],p=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&f.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){f=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=f.length>0?f[f.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&f.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,p=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}p&&p(t,e)},c.options.__b=function(e){var n,r,i,c=e.type,s=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===c)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=c&&"object"==typeof c){if(void 0!==c.__k&&void 0!==c.__e)throw new Error("Invalid type passed to createElement(): "+c+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(c)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(c)?"array":c))}if("thead"!==c&&"tfoot"!==c&&"tbody"!==c||"table"===s.type?"tr"===c&&"thead"!==s.type&&"tfoot"!==s.type&&"tbody"!==s.type&&"table"!==s.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===c&&"tr"!==s.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===c&&"tr"!==s.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var f in e.props)if("o"===f[0]&&"n"===f[1]&&"function"!=typeof e.props[f]&&null!=e.props[f])throw new Error("Component's \""+f+'" property should be a function, but got ['+typeof e.props[f]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var d=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(p+"Component wrapped in lazy() is "+o(d))}catch(e){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,i,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed prop type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var v=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},y={nodeName:v("nodeName","use vnode.type"),attributes:v("attributes","use vnode.props"),children:v("children","use vnode.props.children")},m=Object.create({},y);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,m),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(e){if(e&&void 0===e.type){delete e.__,delete e.__b;var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+a(t))}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;ce.rank?-1:t.index-e.index}function a(t,e){return t.index=e,t.rank=function(t){return t.props.default?0:(e=t.props.path,u(e).map(c).join(""));var e}(t),t.props}function u(t){return t.replace(/(^\/+|\/+$)/g,"").split("/")}function c(t){return":"==t.charAt(0)?1+"*+?".indexOf(t.charAt(t.length-1))||4:5}function l(){var t;return""+((t=m&&m.location?m.location:m&&m.getCurrentLocation?m.getCurrentLocation():"undefined"!=typeof location?location:w).pathname||"")+(t.search||"")}function s(t,e){return void 0===e&&(e=!1),"string"!=typeof t&&t.url&&(e=t.replace,t=t.url),function(t){for(var e=g.length;e--;)if(g[e].canRoute(t))return!0;return!1}(t)&&function(t,e){void 0===e&&(e="push"),m&&m[e]?m[e](t):"undefined"!=typeof history&&history[e+"State"]&&history[e+"State"](null,null,t)}(t,e?"replace":"push"),f(t)}function f(t){for(var e=!1,n=0;n0},e.prototype.routeTo=function(t){this.setState({url:t});var e=this.canRoute(t);return this.updating||this.forceUpdate(),e},e.prototype.componentWillMount=function(){g.push(this),this.updating=!0},e.prototype.componentDidMount=function(){var t=this;m&&(this.unlisten=m.listen((function(e){t.routeTo(""+(e.pathname||"")+(e.search||""))}))),this.updating=!1},e.prototype.componentWillUnmount=function(){"function"==typeof this.unlisten&&this.unlisten(),g.splice(g.indexOf(this),1)},e.prototype.componentWillUpdate=function(){this.updating=!0},e.prototype.componentDidUpdate=function(){this.updating=!1},e.prototype.getMatchingChildren=function(t,e,n){return t.filter(a).sort(i).map((function(t){var i=r(e,t.props.path,t.props);if(i){if(!1!==n){var a={url:e,matches:i};return o(a,i),delete a.ref,delete a.key,Object(v.cloneElement)(t,a)}return t}})).filter(Boolean)},e.prototype.render=function(t,e){var n=t.children,o=t.onChange,r=e.url,i=this.getMatchingChildren(Object(v.toChildArray)(n),r,!0),a=i[0]||null,u=this.previousUrl;return r!==u&&(this.previousUrl=r,"function"==typeof o&&o({router:this,url:r,previous:u,active:i,current:a})),a},e}(v.Component);C.subscribers=b,C.getCurrentUrl=l,C.route=s,C.Router=C,C.Route=function(t){return Object(v.createElement)(t.component,t)},C.Link=function(t){return Object(v.createElement)("a",o({onClick:d},t))},C.exec=r,e.a=C},afj4:function(){},hosL:function(t,e,n){"use strict";function o(t,e){for(var n in e)t[n]=e[n];return t}function r(t){var e=t.parentNode;e&&e.removeChild(t)}function i(t,e,n){var o,r=arguments,i={};for(o in e)"key"!==o&&"ref"!==o&&(i[o]=e[o]);if(arguments.length>3)for(n=[n],o=3;o2&&(e.children=W.slice.call(arguments,2)),a(t.type,e,e.key||t.key,e.ref||t.ref,null)}function P(t){var e={},n={__c:"__cC"+D++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var o,r=this;return this.getChildContext||(o=[],this.getChildContext=function(){return e[n.__c]=r,e},this.shouldComponentUpdate=function(t){r.props.value!==t.value&&o.some((function(e){e.context=t.value,p(e)}))},this.sub=function(t){o.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){o.splice(o.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Consumer.contextType=n,n}n.r(e),n.d(e,"render",(function(){return E})),n.d(e,"hydrate",(function(){return S})),n.d(e,"createElement",(function(){return i})),n.d(e,"h",(function(){return i})),n.d(e,"Fragment",(function(){return c})),n.d(e,"createRef",(function(){return u})),n.d(e,"isValidElement",(function(){return T})),n.d(e,"Component",(function(){return l})),n.d(e,"cloneElement",(function(){return x})),n.d(e,"createContext",(function(){return P})),n.d(e,"toChildArray",(function(){return _})),n.d(e,"_unmount",(function(){return C})),n.d(e,"options",(function(){return A}));var A,T,L,j,U,N,I,D,M={},W=[],z=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;A={__e:function(t,e){for(var n,o;e=e.__;)if((n=e.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(t))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(t)),o)return p(n.__E=n)}catch(e){t=e}throw t}},T=function(t){return null!=t&&void 0===t.constructor},l.prototype.setState=function(t,e){var n;n=this.__s!==this.state?this.__s:this.__s=o({},this.state),"function"==typeof t&&(t=t(n,this.props)),t&&o(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),p(this))},l.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),p(this))},l.prototype.render=c,L=[],j=0,U="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,I=M,D=0},lSvg:function(t,e,n){"use strict";(function(t){n.d(e,"a",(function(){return i}));var o=n("K9Cg"),r=n.n(o),i=function(e){function n(){return e.apply(this,arguments)||this}var o,i;return i=e,(o=n).prototype=Object.create(i.prototype),o.prototype.constructor=o,o.__proto__=i,n.prototype.render=function(){return t("div",{class:r.a.copyright},"© 2020 - Stefano Pigozzi - ",t("a",{href:"https://creativecommons.org/licenses/by-sa/4.0/"},"CC BY-SA 4.0")," - ",t("a",{href:"https://github.com/Steffo99/appuntiweb"},"Codice sorgente")," - ",t("a",{href:"https://ko-fi.com/steffo"},"Supportami"))},n}(n("hosL").Component)}).call(this,n("hosL").h)},mIK7:function(t,e,n){"use strict";var o=n("SdNZ");e.a=Object(o.a)((function(t){Promise.all([n.e(0),n.e(9)]).then(function(){t(n("/fDt"))}.bind(null,n)).catch(n.oe)}))},mdyV:function(t,e,n){"use strict";n.r(e);var o=n("hosL"),r=o.h,i=o.render,a=function(t){return t&&t.default?t.default:t};if("serviceWorker"in navigator&&navigator.serviceWorker.register(n.p+"sw.js"),"function"==typeof a(n("QfWi"))){var u=document.getElementById("preact_root")||document.body.firstElementChild;0,function(){var t=a(n("QfWi")),e={},o=document.querySelector('[type="__PREACT_CLI_DATA__"]');o&&(e=JSON.parse(o.innerHTML).preRenderData||e);var c;e.url&&(c=e.url);u=i(r(t,{CLI_DATA:{preRenderData:e}}),document.body,u)}()}},ve3R:function(t,e,n){"use strict";function o(){return(o=Object.assign||function(t){for(var e=1;e=0;p--){var d=a[p];"."===d?i(a,p):".."===d?(i(a,p),f++):f&&(i(a,p),f--)}if(!l)for(;f--;f)a.unshift("..");!l||""===a[0]||a[0]&&r(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h},g=function(t){if(!t)throw new Error("Invariant failed")},b=!("undefined"==typeof window||!window.document||!window.document.createElement),w={hashbang:{encodePath:function(t){return"!"===t.charAt(0)?t:"!/"+u(t)},decodePath:function(t){return"!"===t.charAt(0)?t.substr(1):t}},noslash:{encodePath:u,decodePath:a},slash:{encodePath:a,decodePath:a}}},"y+LV":function(t,e,n){"use strict";function o(t){return t.type===c.Fragment?"Fragment":"function"==typeof t.type?t.type.displayName||t.type.name:"string"==typeof t.type?t.type:"#text"}function r(){return s.length>0?s[s.length-1]:null}function i(t){return"function"==typeof t.type&&t.type!=c.Fragment}function a(t){for(var e=[t],n=t;null!=n.__o;)e.push(n.__o),n=n.__o;return e.reduce((function(t,e){t+=" in "+o(e);var n=e.__source;return n?t+=" (at "+n.fileName+":"+n.lineNumber+")":p||(p=!0,console.warn("Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.")),t+"\n"}),"")}function u(t){var e=t.props,n=o(t),r="";for(var i in e)if(e.hasOwnProperty(i)&&"children"!==i){var a=e[i];"function"==typeof a&&(a="function "+(a.displayName||a.name)+"() {}"),a=Object(a)!==a||a.toString?a+"":Object.prototype.toString.call(a),r+=" "+i+"="+JSON.stringify(a)}var u=e.children;return"<"+n+r+(u&&u.length?">..":" />")}var c=n("hosL");"undefined"!=typeof window&&window.__PREACT_DEVTOOLS__&&window.__PREACT_DEVTOOLS__.attachPreact("10.0.5",c.options,{Fragment:c.Fragment});var l={},s=[],f=[],p=!1,d="function"==typeof WeakMap,h=c.Component.prototype.setState;c.Component.prototype.setState=function(t,e){return null==this.__v?null==this.state&&console.warn('Calling "this.setState" inside the constructor of a component is a no-op and might be a bug in your application. Instead, set "this.state = {}" directly.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.setState" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),h.call(this,t,e)};var _=c.Component.prototype.forceUpdate;c.Component.prototype.forceUpdate=function(t){return null==this.__v?console.warn('Calling "this.forceUpdate" inside the constructor of a component is a no-op and might be a bug in your application.\n\n'+a(r())):null==this.__P&&console.warn('Can\'t call "this.forceUpdate" on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.\n\n'+a(this.__v)),_.call(this,t)},function(){!function(){var t=c.options.__b,e=c.options.diffed,n=c.options.__,o=c.options.vnode,r=c.options.__r;c.options.diffed=function(t){i(t)&&f.pop(),s.pop(),e&&e(t)},c.options.__b=function(e){i(e)&&s.push(e),t&&t(e)},c.options.__=function(t,e){f=[],n&&n(t,e)},c.options.vnode=function(t){t.__o=f.length>0?f[f.length-1]:null,o&&o(t)},c.options.__r=function(t){i(t)&&f.push(t),r&&r(t)}}();var t=c.options.__b,e=c.options.diffed,n=c.options.vnode,r=c.options.__e,p=c.options.__,h=c.options.__h,_=d?{useEffect:new WeakMap,useLayoutEffect:new WeakMap,lazyPropTypes:new WeakMap}:null;c.options.__e=function(t,e,n){if(e&&e.__c&&"function"==typeof t.then){var i=t;t=new Error("Missing Suspense. The throwing component was: "+o(e));for(var a=e;a;a=a.__)if(a.__c&&a.__c.__c){t=i;break}if(t instanceof Error)throw t}r(t,e,n)},c.options.__=function(t,e){if(!e)throw new Error("Undefined parent passed to render(), this is the second argument.\nCheck if the element is available in the DOM/has the correct id.");var n;switch(e.nodeType){case 1:case 11:case 9:n=!0;break;default:n=!1}if(!n){var r=o(t);throw new Error("Expected a valid HTML node as a second argument to render.\tReceived "+e+" instead: render(<"+r+" />, "+e+");")}p&&p(t,e)},c.options.__b=function(e){var n,r,i,c=e.type,s=function t(e){return e?"function"==typeof e.type?t(e.__):e:{}}(e.__);if(void 0===c)throw new Error("Undefined component passed to createElement()\n\nYou likely forgot to export your component or might have mixed up default and named imports"+u(e)+"\n\n"+a(e));if(null!=c&&"object"==typeof c){if(void 0!==c.__k&&void 0!==c.__e)throw new Error("Invalid type passed to createElement(): "+c+"\n\nDid you accidentally pass a JSX literal as JSX twice?\n\n let My"+o(e)+" = "+u(c)+";\n let vnode = ;\n\nThis usually happens when you export a JSX literal and not the component.\n\n"+a(e));throw new Error("Invalid type passed to createElement(): "+(Array.isArray(c)?"array":c))}if("thead"!==c&&"tfoot"!==c&&"tbody"!==c||"table"===s.type?"tr"===c&&"thead"!==s.type&&"tfoot"!==s.type&&"tbody"!==s.type&&"table"!==s.type?console.error("Improper nesting of table. Your should have a parent."+u(e)+"\n\n"+a(e)):"td"===c&&"tr"!==s.type?console.error("Improper nesting of table. Your parent."+u(e)+"\n\n"+a(e)):"th"===c&&"tr"!==s.type&&console.error("Improper nesting of table. Your ."+u(e)+"\n\n"+a(e)):console.error("Improper nesting of table. Your should have a
should have a
should have a
parent."+u(e)+"\n\n"+a(e)),void 0!==e.ref&&"function"!=typeof e.ref&&"object"!=typeof e.ref&&!("$$typeof"in e))throw new Error('Component\'s "ref" property should be a function, or an object created by createRef(), but got ['+typeof e.ref+"] instead\n"+u(e)+"\n\n"+a(e));if("string"==typeof e.type)for(var f in e.props)if("o"===f[0]&&"n"===f[1]&&"function"!=typeof e.props[f]&&null!=e.props[f])throw new Error("Component's \""+f+'" property should be a function, but got ['+typeof e.props[f]+"] instead\n"+u(e)+"\n\n"+a(e));if("function"==typeof e.type&&e.type.propTypes){if("Lazy"===e.type.displayName&&_&&!_.lazyPropTypes.has(e.type)){var p="PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ";try{var d=e.type();_.lazyPropTypes.set(e.type,!0),console.warn(p+"Component wrapped in lazy() is "+o(d))}catch(e){console.warn(p+"We will log the wrapped component's name once it is loaded.")}}n=e.type.propTypes,r=e.props,i=o(e),Object.keys(n).forEach((function(t){var e;try{e=n[t](r,t,i,"prop",null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(t){e=t}!e||e.message in l||(l[e.message]=!0,console.error("Failed prop type: "+e.message))}))}t&&t(e)},c.options.__h=function(t){if(!t)throw new Error("Hook can only be invoked from render methods.");h&&h(t)};var v=function(t,e){return{get:function(){throw new Error("getting vnode."+t+" is deprecated, "+e)},set:function(){throw new Error("setting vnode."+t+" is not allowed, "+e)}}},y={nodeName:v("nodeName","use vnode.type"),attributes:v("attributes","use vnode.props"),children:v("children","use vnode.props.children")},m=Object.create({},y);c.options.vnode=function(t){var e=t.props;if(null!==t.type&&null!=e&&("__source"in e||"__self"in e)){var o=t.props={};for(var r in e){var i=e[r];"__source"===r?t.__source=i:"__self"===r?t.__self=i:o[r]=i}}Object.setPrototypeOf(t,m),n&&n(t)},c.options.diffed=function(t){t.__k&&t.__k.forEach((function(e){if(e&&void 0===e.type){delete e.__,delete e.__b;var n=Object.keys(e).join(",");throw new Error("Objects are not valid as a child. Encountered an object with the keys {"+n+"}.\n\n"+a(t))}}));var n=t.__c;if(n&&n.__H){var r=n.__H;Array.isArray(r.__)&&r.__.forEach((function(e){if(e.__h&&(!e.__H||!Array.isArray(e.__H))){var n=o(t);console.warn("In "+n+" you are calling useMemo/useCallback without passing arguments.\nThis is a noop since it will not be able to memoize, it will execute it every render.\n\n"+a(t))}}))}if(e&&e(t),null!=t.__k)for(var i=[],c=0;c\n\t\t\t\n\t\t\t\t

Appuntiweb di Steffo

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n}\n","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./basiDiDati.js\") );\n\t\t\t}, \"route-basiDiDati\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./home.js\") );\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref,\n\t\tnull\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = oldVNode;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children == 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children == 'string' || typeof children == 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value == 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tlet s, useCapture, nameLower;\n\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'style') {\n\t\ts = dom.style;\n\n\t\tif (typeof value == 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t(newVNode._original === oldVNode._original && !c._processingException)\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import style from './copyright.css';\nimport { Component } from 'preact';\n\nexport default class Copyright extends Component {\n\trender() {\n\t\treturn
© 2019 - Stefano Pigozzi - CC BY-SA 4.0 - Codice sorgente - Supportami
;\n\t}\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./ottimizzazioneLineare.js\") );\n\t\t\t}, \"route-ottimizzazioneLineare\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\tif (process.env.RHL) {\n\t\t// enable hot loader\n\t\tconst hotLoader = interopDefault(require('react-hot-loader'));\n\t\thotLoader.preact(interopDefault(require('preact')));\n\t}\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(inlineDataElement.innerHTML).preRenderData || preRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === location.pathname;\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import { options, Fragment } from 'preact';\n\n/**\n * Get human readable name of the component/dom node\n * @param {import('./internal').VNode} vnode\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type === Fragment) {\n\t\treturn 'Fragment';\n\t} else if (typeof vnode.type == 'function') {\n\t\treturn vnode.type.displayName || vnode.type.name;\n\t} else if (typeof vnode.type == 'string') {\n\t\treturn vnode.type;\n\t}\n\n\treturn '#text';\n}\n\n/**\n * Used to keep track of the currently rendered `vnode` and print it\n * in debug messages.\n */\nlet renderStack = [];\n\n/**\n * Keep track of the current owners. An owner describes a component\n * which was responsible to render a specific `vnode`. This exclude\n * children that are passed via `props.children`, because they belong\n * to the parent owner.\n *\n * ```jsx\n * const Foo = props =>
{props.children}
// div's owner is Foo\n * const Bar = props => {\n * return (\n * // Foo's owner is Bar, span's owner is Bar\n * )\n * }\n * ```\n *\n * Note: A `vnode` may be hoisted to the root scope due to compiler\n * optimiztions. In these cases the `_owner` will be different.\n */\nlet ownerStack = [];\n\n/**\n * Get the currently rendered `vnode`\n * @returns {import('./internal').VNode | null}\n */\nexport function getCurrentVNode() {\n\treturn renderStack.length > 0 ? renderStack[renderStack.length - 1] : null;\n}\n\n/**\n * If the user doesn't have `@babel/plugin-transform-react-jsx-source`\n * somewhere in his tool chain we can't print the filename and source\n * location of a component. In that case we just omit that, but we'll\n * print a helpful message to the console, notifying the user of it.\n */\nlet hasBabelPlugin = false;\n\n/**\n * Check if a `vnode` is a possible owner.\n * @param {import('./internal').VNode} vnode\n */\nfunction isPossibleOwner(vnode) {\n\treturn typeof vnode.type == 'function' && vnode.type != Fragment;\n}\n\n/**\n * Return the component stack that was captured up to this point.\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getOwnerStack(vnode) {\n\tconst stack = [vnode];\n\tlet next = vnode;\n\twhile (next._owner != null) {\n\t\tstack.push(next._owner);\n\t\tnext = next._owner;\n\t}\n\n\treturn stack.reduce((acc, owner) => {\n\t\tacc += ` in ${getDisplayName(owner)}`;\n\n\t\tconst source = owner.__source;\n\t\tif (source) {\n\t\t\tacc += ` (at ${source.fileName}:${source.lineNumber})`;\n\t\t} else if (!hasBabelPlugin) {\n\t\t\thasBabelPlugin = true;\n\t\t\tconsole.warn(\n\t\t\t\t'Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.'\n\t\t\t);\n\t\t}\n\n\t\treturn (acc += '\\n');\n\t}, '');\n}\n\n/**\n * Setup code to capture the component trace while rendering. Note that\n * we cannot simply traverse `vnode._parent` upwards, because we have some\n * debug messages for `this.setState` where the `vnode` is `undefined`.\n */\nexport function setupComponentStack() {\n\tlet oldDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldRoot = options._root;\n\tlet oldVNode = options.vnode;\n\tlet oldRender = options._render;\n\n\toptions.diffed = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.pop();\n\t\t}\n\t\trenderStack.pop();\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\trenderStack.push(vnode);\n\t\t}\n\t\tif (oldDiff) oldDiff(vnode);\n\t};\n\n\toptions._root = (vnode, parent) => {\n\t\townerStack = [];\n\t\tif (oldRoot) oldRoot(vnode, parent);\n\t};\n\n\toptions.vnode = vnode => {\n\t\tvnode._owner =\n\t\t\townerStack.length > 0 ? ownerStack[ownerStack.length - 1] : null;\n\t\tif (oldVNode) oldVNode(vnode);\n\t};\n\n\toptions._render = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.push(vnode);\n\t\t}\n\n\t\tif (oldRender) oldRender(vnode);\n\t};\n}\n","import { checkPropTypes } from './check-props';\nimport { options, Component } from 'preact';\nimport {\n\tELEMENT_NODE,\n\tDOCUMENT_NODE,\n\tDOCUMENT_FRAGMENT_NODE\n} from './constants';\nimport {\n\tgetOwnerStack,\n\tsetupComponentStack,\n\tgetCurrentVNode,\n\tgetDisplayName\n} from './component-stack';\n\nconst isWeakMapSupported = typeof WeakMap == 'function';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type == 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\tsetupComponentStack();\n\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tlet oldRoot = options._root;\n\tlet oldHook = options._hook;\n\tconst warnedComponents = !isWeakMapSupported\n\t\t? null\n\t\t: {\n\t\t\t\tuseEffect: new WeakMap(),\n\t\t\t\tuseLayoutEffect: new WeakMap(),\n\t\t\t\tlazyPropTypes: new WeakMap()\n\t\t };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then == 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error(\n\t\t\t\t`Missing Suspense. The throwing component was: ${getDisplayName(vnode)}`\n\t\t\t);\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We haven't recovered and we know at this point that there is no\n\t\t\t// Suspense component higher up in the tree\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined parent passed to render(), this is the second argument.\\n' +\n\t\t\t\t\t'Check if the element is available in the DOM/has the correct id.'\n\t\t\t);\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tisValid = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tisValid = false;\n\t\t}\n\n\t\tif (!isValid) {\n\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a valid HTML node as a second argument to render.\tReceived ${parentNode} instead: render(<${componentName} />, ${parentNode});`\n\t\t\t);\n\t\t}\n\n\t\tif (oldRoot) oldRoot(vnode, parentNode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined component passed to createElement()\\n\\n' +\n\t\t\t\t\t'You likely forgot to export your component or might have mixed up default and named imports' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type != null && typeof type == 'object') {\n\t\t\tif (type._children !== undefined && type._dom !== undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid type passed to createElement(): ${type}\\n\\n` +\n\t\t\t\t\t\t'Did you accidentally pass a JSX literal as JSX twice?\\n\\n' +\n\t\t\t\t\t\t` let My${getDisplayName(vnode)} = ${serializeVNode(type)};\\n` +\n\t\t\t\t\t\t` let vnode = ;\\n\\n` +\n\t\t\t\t\t\t'This usually happens when you export a JSX literal and not the component.' +\n\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid type passed to createElement(): ' +\n\t\t\t\t\t(Array.isArray(type) ? 'array' : type)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(type === 'thead' || type === 'tfoot' || type === 'tbody') &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your
should have a
parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (\n\t\t\ttype === 'tr' &&\n\t\t\tparentVNode.type !== 'thead' &&\n\t\t\tparentVNode.type !== 'tfoot' &&\n\t\t\tparentVNode.type !== 'tbody' &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your should have a parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'td' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'th' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your .' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref !== undefined &&\n\t\t\ttypeof vnode.ref != 'function' &&\n\t\t\ttypeof vnode.ref != 'object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type == 'string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (\n\t\t\t\t\tkey[0] === 'o' &&\n\t\t\t\t\tkey[1] === 'n' &&\n\t\t\t\t\ttypeof vnode.props[key] != 'function' &&\n\t\t\t\t\tvnode.props[key] != null\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type == 'function' && vnode.type.propTypes) {\n\t\t\tif (\n\t\t\t\tvnode.type.displayName === 'Lazy' &&\n\t\t\t\twarnedComponents &&\n\t\t\t\t!warnedComponents.lazyPropTypes.has(vnode.type)\n\t\t\t) {\n\t\t\t\tconst m =\n\t\t\t\t\t'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes.set(vnode.type, true);\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + `Component wrapped in lazy() is ${getDisplayName(lazyVNode)}`\n\t\t\t\t\t);\n\t\t\t\t} catch (promise) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + \"We will log the wrapped component's name once it is loaded.\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(\n\t\t\t\tvnode.type.propTypes,\n\t\t\t\tvnode.props,\n\t\t\t\t'prop',\n\t\t\t\tgetDisplayName(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = comp => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\n\t\tif (oldHook) oldHook(comp);\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\tconst deprecatedProto = Object.create({}, deprecatedAttributes);\n\n\toptions.vnode = vnode => {\n\t\tconst props = vnode.props;\n\t\tif (\n\t\t\tvnode.type !== null &&\n\t\t\tprops != null &&\n\t\t\t('__source' in props || '__self' in props)\n\t\t) {\n\t\t\tconst newProps = (vnode.props = {});\n\t\t\tfor (let i in props) {\n\t\t\t\tconst v = props[i];\n\t\t\t\tif (i === '__source') vnode.__source = v;\n\t\t\t\telse if (i === '__self') vnode.__self = v;\n\t\t\t\telse newProps[i] = v;\n\t\t\t}\n\t\t}\n\t\tObject.setPrototypeOf(vnode, deprecatedProto);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = vnode => {\n\t\t// Check if the user passed plain objects as children. Note that we cannot\n\t\t// move this check into `options.vnode` because components can receive\n\t\t// children in any shape they want (e.g.\n\t\t// `{{ foo: 123, bar: \"abc\" }}`).\n\t\t// Putting this check in `options.diffed` ensures that\n\t\t// `vnode._children` is set and that we only validate the children\n\t\t// that were actually rendered.\n\t\tif (vnode._children) {\n\t\t\tvnode._children.forEach(child => {\n\t\t\t\tif (child && child.type === undefined) {\n\t\t\t\t\t// Remove internal vnode keys that will always be patched\n\t\t\t\t\tdelete child._parent;\n\t\t\t\t\tdelete child._depth;\n\t\t\t\t\tconst keys = Object.keys(child).join(',');\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Objects are not valid as a child. Encountered an object with the keys {${keys}}.` +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/** @type {import('./internal').Component} */\n\t\tconst component = vnode._component;\n\t\tif (component && component.__hooks) {\n\t\t\tlet hooks = component.__hooks;\n\t\t\tif (Array.isArray(hooks._list)) {\n\t\t\t\thooks._list.forEach(hook => {\n\t\t\t\t\tif (hook._factory && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`In ${componentName} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.` +\n\t\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key == null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t};\n}\n\nconst setState = Component.prototype.setState;\nComponent.prototype.setState = function(update, callback) {\n\tif (this._vnode == null) {\n\t\t// `this._vnode` will be `null` during componentWillMount. But it\n\t\t// is perfectly valid to call `setState` during cWM. So we\n\t\t// need an additional check to verify that we are dealing with a\n\t\t// call inside constructor.\n\t\tif (this.state == null) {\n\t\t\tconsole.warn(\n\t\t\t\t`Calling \"this.setState\" inside the constructor of a component is a ` +\n\t\t\t\t\t`no-op and might be a bug in your application. Instead, set ` +\n\t\t\t\t\t`\"this.state = {}\" directly.\\n\\n${getOwnerStack(getCurrentVNode())}`\n\t\t\t);\n\t\t}\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.setState\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\n\treturn setState.call(this, update, callback);\n};\n\nconst forceUpdate = Component.prototype.forceUpdate;\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode == null) {\n\t\tconsole.warn(\n\t\t\t`Calling \"this.forceUpdate\" inside the constructor of a component is a ` +\n\t\t\t\t`no-op and might be a bug in your application.\\n\\n${getOwnerStack(\n\t\t\t\t\tgetCurrentVNode()\n\t\t\t\t)}`\n\t\t);\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.forceUpdate\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\treturn forceUpdate.call(this, callback);\n};\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tfor (let prop in props) {\n\t\tif (props.hasOwnProperty(prop) && prop !== 'children') {\n\t\t\tlet value = props[prop];\n\n\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\tif (typeof value == 'function') {\n\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t}\n\n\t\t\tvalue =\n\t\t\t\tObject(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${\n\t\tchildren && children.length ? '>..' : ' />'\n\t}`;\n}\n","import { options, Fragment } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.0.5', options, {\n\t\t\tFragment\n\t\t});\n\t}\n}\n","const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\n/**\n * Reset the history of which prop type warnings have been logged.\n */\nexport function resetPropWarnings() {\n\tloggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * Adapted from https://github.com/facebook/prop-types/blob/master/checkPropTypes.js\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n */\nexport function checkPropTypes(\n\ttypeSpecs,\n\tvalues,\n\tlocation,\n\tcomponentName,\n\tgetStack\n) {\n\tObject.keys(typeSpecs).forEach(typeSpecName => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](\n\t\t\t\tvalues,\n\t\t\t\ttypeSpecName,\n\t\t\t\tcomponentName,\n\t\t\t\tlocation,\n\t\t\t\tnull,\n\t\t\t\tReactPropTypesSecret\n\t\t\t);\n\t\t} catch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(\n\t\t\t\t`Failed ${location} type: ${error.message}${(getStack && getStack()) ||\n\t\t\t\t\t''}`\n\t\t\t);\n\t\t}\n\t});\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./fisica.js\") );\n\t\t\t}, \"route-fisica\");\n\t\t}\n\n\t\texport default Async(load);\n\t"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./routes/vldigeometria.js?971d","webpack:///./routes/apprendimentoSistemiArtificiali.js?75cd","webpack:///./routes/statistica.js?3c70","webpack:///./contexts/LatexRenderColor.js","webpack:///./routes/mingwinstall.js?cec4","webpack:///./routes/calcoloNumerico.js?8c12","webpack:///./components/old/copyright.css","webpack:///./index.js","webpack:///../node_modules/@preact/async-loader/async-legacy.js","webpack:///./routes/basiDiDati.js?e91b","webpack:///./routes/home.js?7109","webpack:///../src/util.js","webpack:///../src/index.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/render.js","webpack:///../src/clone-element.js","webpack:///../src/create-context.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/diff/catch-error.js","webpack:///./components/old/copyright.js","webpack:///./routes/ottimizzazioneLineare.js?deb9","webpack:///../node_modules/preact-cli/lib/lib/entry.js","webpack:///../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../node_modules/resolve-pathname/esm/resolve-pathname.js","webpack:///../node_modules/history/esm/history.js","webpack:///../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack:///../src/component-stack.js","webpack:///../src/debug.js","webpack:///../src/devtools.js","webpack:///../src/check-props.js","webpack:///./routes/fisica.js?9847"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","__webpack_require__","installedModules","exports","module","l","installedCssChunks","1","e","promises","Promise","resolve","reject","href","fullhref","p","existingLinkTags","document","getElementsByTagName","dataHref","tag","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","jsonpScriptSrc","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","head","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","s","cb","createContext","id","Provider","history","createHashHistory","path","req","Async","b","old","Component","this","componentWillMount","base","nextBase","__b","setState","child","default","shouldComponentUpdate","_","nxt","nodeType","h","nodeName","dangerouslySetInnerHTML","__html","innerHTML","render","constructor","let","EMPTY","getCurrentUrl","url","customHistory","location","getCurrentLocation","pathname","search","route","replace","ROUTERS","canRoute","setUrl","routeTo","didRoute","subscribers","routeFromLink","node","match","handleLinkClick","ctrlKey","metaKey","altKey","shiftKey","button","currentTarget","prevent","stopImmediatePropagation","stopPropagation","preventDefault","delegateLinkHandler","String","toUpperCase","hasAttribute","eventListenersInitialized","Router","props","super","state","addEventListener","static","onChange","const","children","getMatchingChildren","updating","forceUpdate","componentDidMount","unlisten","listen","componentWillUnmount","splice","indexOf","componentWillUpdate","componentDidUpdate","invoke","filter","prepareVNodeForRanking","sort","pathRankSort","map","vnode","matches","exec","newProps","assign","ref","Boolean","active","current","previous","previousUrl","router","Route","component","Link","onClick","obj","removeNode","normalizedProps","arguments","defaultProps","createVNode","original","_children","_parent","_depth","_dom","_nextDom","_component","_original","options","createRef","Fragment","context","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","_dirty","rerenderQueue","rerenderCount","prevDebounce","debounceRendering","defer","process","queue","a","_vnode","some","commitQueue","oldVNode","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","sibDom","firstChildDom","refs","oldChildren","EMPTY_ARR","oldChildrenLength","EMPTY_OBJ","toChildArray","childVNode","nextDom","outer","nextSibling","insertBefore","unmount","applyRef","callback","flattened","Array","isArray","setStyle","style","setProperty","IS_NON_DIMENSIONAL","test","dom","oldValue","useCapture","nameLower","cssText","toLowerCase","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","newVNode","tmp","isNew","oldProps","oldState","snapshot","clearProcessingException","provider","componentContext","newType","_diff","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillReceiveProps","_force","_render","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","_catchError","root","_commit","oldHtml","newHtml","localName","createTextNode","createElementNS","is","childNodes","attributes","hydrate","diffProps","checked","parentVNode","skipRemove","replaceNode","_root","IS_HYDRATE","cloneElement","defaultValue","ctx","Consumer","subs","_this","_props","isValidElement","hasCaught","getDerivedStateFromError","componentDidCatch","update","Copyright","class","copyright","Preact","interopDefault","navigator","serviceWorker","register","__webpack_public_path__","require","getElementById","body","firstElementChild","app","preRenderData","inlineDataElement","querySelector","JSON","parse","CLI_DATA","init","_extends","source","apply","isAbsolute","charAt","spliceOne","list","index","k","pop","addLeadingSlash","stripLeadingSlash","substr","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","result","appendListener","fn","listener","isActive","item","notifyListeners","_len","args","_key","forEach","getConfirmation","confirm","stripHash","getHashPath","substring","replaceHashPath","getDOMLocation","decodePath","basename","nextState","globalHistory","transitionManager","handleHashChange","encodedPath","encodePath","forceNextPop","ignorePath","ok","fromLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","revertPop","handlePop","checkDOMListeners","listenerCount","canUseDOM","invariant","_props$getUserConfirm","userAgent","_props$hashType","hashType","_HashPathCoders$hashT","HashPathCoders","initialLocation","isBlocked","createHref","baseTag","pushHashPath","prevIndex","nextPaths","goBack","goForward","block","unblock","to","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","join","condition","hashbang","noslash","slash","getDisplayName","displayName","getCurrentVNode","renderStack","isPossibleOwner","getOwnerStack","stack","next","_owner","reduce","acc","owner","__source","fileName","lineNumber","hasBabelPlugin","warn","serializeVNode","attrs","prop","toString","stringify","__PREACT_DEVTOOLS__","attachPreact","loggedTypeFailures","ownerStack","isWeakMapSupported","WeakMap","oldDiff","oldDiffed","oldRoot","oldRender","parent","setupComponentStack","oldBeforeDiff","oldVnode","oldCatchError","oldHook","_hook","warnedComponents","useEffect","useLayoutEffect","lazyPropTypes","_childDidSuspend","isValid","componentName","typeSpecs","values","getClosestDomNodeParent","propTypes","has","lazyVNode","set","keys","typeSpecName","comp","deprecatedAttributes","deprecatedProto","v","__self","setPrototypeOf","__hooks","hooks","_list","hook","_factory","_args"],"mappings":"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","file":"bundle.fb716.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t1: 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"0ad22\",\"3\":\"d0fa4\",\"4\":\"0e8d8\",\"5\":\"b64db\",\"6\":\"9892b\",\"7\":\"6edcf\",\"8\":\"22ffb\",\"9\":\"762b1\",\"10\":\"67526\",\"11\":\"ddac8\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"0\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"0\":\"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare\",\"3\":\"route-apprendimentoSistemiArtificiali\",\"4\":\"route-basiDiDati\",\"5\":\"route-calcoloNumerico\",\"6\":\"route-fisica\",\"7\":\"route-home\",\"8\":\"route-mingwinstall\",\"9\":\"route-ottimizzazioneLineare\",\"10\":\"route-statistica\",\"11\":\"route-vldigeometria\"}[chunkId]||chunkId) + \".chunk.\" + {\"0\":\"2ca12\",\"3\":\"31d6c\",\"4\":\"e409b\",\"5\":\"4d04d\",\"6\":\"598fe\",\"7\":\"81f93\",\"8\":\"5a95a\",\"9\":\"9a20b\",\"10\":\"4bfa5\",\"11\":\"96070\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"mdyV\");\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./vldigeometria.js\") );\n\t\t\t}, \"route-vldigeometria\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./apprendimentoSistemiArtificiali.js\") );\n\t\t\t}, \"route-apprendimentoSistemiArtificiali\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./statistica.js\") );\n\t\t\t}, \"route-statistica\");\n\t\t}\n\n\t\texport default Async(load);\n\t","import {createContext} from \"preact\";\r\n\r\nexport default createContext(\"White\");\r\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./mingwinstall.js\") );\n\t\t\t}, \"route-mingwinstall\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./calcoloNumerico.js\") );\n\t\t\t}, \"route-calcoloNumerico\");\n\t\t}\n\n\t\texport default Async(load);\n\t","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copyright\":\"copyright__E8xyG\"};","import \"preact/debug\";\n\n// noinspection ES6UnusedImports\nimport _style from './index.less';\n// noinspection ES6UnusedImports\nimport _manifest from './meta/manifest.json';\n// noinspection ES6UnusedImports\nimport _cname from './meta/CNAME';\n// noinspection ES6UnusedImports\nimport _nojekyll from './meta/.nojekyll';\n\nimport Router from 'preact-router';\nimport {createHashHistory} from \"history\";\nimport Home from './routes/home';\nimport Fisica from './routes/fisica';\nimport VlDiGeometria from './routes/vldigeometria';\nimport MingwInstall from './routes/mingwinstall';\nimport Copyright from './components/old/copyright';\nimport Statistica from './routes/statistica';\nimport OttimizzazioneLineare from \"./routes/ottimizzazioneLineare\";\nimport BasiDiDati from './routes/basiDiDati';\nimport CalcoloNumerico from './routes/calcoloNumerico';\nimport ApprendimentoSistemiArtificiali from \"./routes/apprendimentoSistemiArtificiali\";\nimport LatexRenderColor from \"./contexts/LatexRenderColor\";\n\n// noinspection JSUnusedGlobalSymbols\nexport default function(props) {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t

Appuntiweb di Steffo

\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import { h, Component } from 'preact';\n\nexport default function(req) {\n\tfunction Async() {\n\t\tComponent.call(this);\n\n\t\tlet b, old;\n\t\tthis.componentWillMount = () => {\n\t\t\tb = this.base = this.nextBase || this.__b; // short circuits 1st render\n\t\t\treq(m => {\n\t\t\t\tthis.setState({ child: m.default || m });\n\t\t\t});\n\t\t};\n\n\t\tthis.shouldComponentUpdate = (_, nxt) => {\n\t\t\tnxt = nxt.child === void 0;\n\t\t\tif (nxt && old === void 0 && b) {\n\t\t\t\t// Node.TEXT_NODE\n\t\t\t\tif (b.nodeType === 3) {\n\t\t\t\t\told = b.data;\n\t\t\t\t} else {\n\t\t\t\t\told = h(b.nodeName, {\n\t\t\t\t\t\tdangerouslySetInnerHTML: { __html: b.innerHTML },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\told = ''; // dump it\n\t\t\t}\n\t\t\treturn !nxt;\n\t\t};\n\n\t\tthis.render = (p, s) => (s.child ? h(s.child, p) : old);\n\t}\n\t(Async.prototype = new Component()).constructor = Async;\n\treturn Async;\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./basiDiDati.js\") );\n\t\t\t}, \"route-basiDiDati\");\n\t\t}\n\n\t\texport default Async(load);\n\t","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./home.js\") );\n\t\t\t}, \"route-home\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { cloneElement, createElement, Component, toChildArray } from 'preact';\nimport { exec, prepareVNodeForRanking, assign, pathRankSort } from './util';\n\nlet customHistory = null;\n\nconst ROUTERS = [];\n\nconst subscribers = [];\n\nconst EMPTY = {};\n\nfunction setUrl(url, type='push') {\n\tif (customHistory && customHistory[type]) {\n\t\tcustomHistory[type](url);\n\t}\n\telse if (typeof history!=='undefined' && history[type+'State']) {\n\t\thistory[type+'State'](null, null, url);\n\t}\n}\n\n\nfunction getCurrentUrl() {\n\tlet url;\n\tif (customHistory && customHistory.location) {\n\t\turl = customHistory.location;\n\t}\n\telse if (customHistory && customHistory.getCurrentLocation) {\n\t\turl = customHistory.getCurrentLocation();\n\t}\n\telse {\n\t\turl = typeof location!=='undefined' ? location : EMPTY;\n\t}\n\treturn `${url.pathname || ''}${url.search || ''}`;\n}\n\n\n\nfunction route(url, replace=false) {\n\tif (typeof url!=='string' && url.url) {\n\t\treplace = url.replace;\n\t\turl = url.url;\n\t}\n\n\t// only push URL into history if we can handle it\n\tif (canRoute(url)) {\n\t\tsetUrl(url, replace ? 'replace' : 'push');\n\t}\n\n\treturn routeTo(url);\n}\n\n\n/** Check if the given URL can be handled by any router instances. */\nfunction canRoute(url) {\n\tfor (let i=ROUTERS.length; i--; ) {\n\t\tif (ROUTERS[i].canRoute(url)) return true;\n\t}\n\treturn false;\n}\n\n\n/** Tell all router instances to handle the given URL. */\nfunction routeTo(url) {\n\tlet didRoute = false;\n\tfor (let i=0; i {\n\t\t\t\trouteTo(getCurrentUrl());\n\t\t\t});\n\t\t}\n\t\taddEventListener('click', delegateLinkHandler);\n\t}\n\teventListenersInitialized = true;\n}\n\n\nclass Router extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tif (props.history) {\n\t\t\tcustomHistory = props.history;\n\t\t}\n\n\t\tthis.state = {\n\t\t\turl: props.url || getCurrentUrl()\n\t\t};\n\n\t\tinitEventListeners();\n\t}\n\n\tshouldComponentUpdate(props) {\n\t\tif (props.static!==true) return true;\n\t\treturn props.url!==this.props.url || props.onChange!==this.props.onChange;\n\t}\n\n\t/** Check if the given URL can be matched against any children */\n\tcanRoute(url) {\n\t\tconst children = toChildArray(this.props.children);\n\t\treturn this.getMatchingChildren(children, url, false).length > 0;\n\t}\n\n\t/** Re-render children with a new URL to match against. */\n\trouteTo(url) {\n\t\tthis.setState({ url });\n\n\t\tconst didRoute = this.canRoute(url);\n\n\t\t// trigger a manual re-route if we're not in the middle of an update:\n\t\tif (!this.updating) this.forceUpdate();\n\n\t\treturn didRoute;\n\t}\n\n\tcomponentWillMount() {\n\t\tROUTERS.push(this);\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidMount() {\n\t\tif (customHistory) {\n\t\t\tthis.unlisten = customHistory.listen((location) => {\n\t\t\t\tthis.routeTo(`${location.pathname || ''}${location.search || ''}`);\n\t\t\t});\n\t\t}\n\t\tthis.updating = false;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (typeof this.unlisten==='function') this.unlisten();\n\t\tROUTERS.splice(ROUTERS.indexOf(this), 1);\n\t}\n\n\tcomponentWillUpdate() {\n\t\tthis.updating = true;\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.updating = false;\n\t}\n\n\tgetMatchingChildren(children, url, invoke) {\n\t\treturn children\n\t\t\t.filter(prepareVNodeForRanking)\n\t\t\t.sort(pathRankSort)\n\t\t\t.map( vnode => {\n\t\t\t\tlet matches = exec(url, vnode.props.path, vnode.props);\n\t\t\t\tif (matches) {\n\t\t\t\t\tif (invoke !== false) {\n\t\t\t\t\t\tlet newProps = { url, matches };\n\t\t\t\t\t\tassign(newProps, matches);\n\t\t\t\t\t\tdelete newProps.ref;\n\t\t\t\t\t\tdelete newProps.key;\n\t\t\t\t\t\treturn cloneElement(vnode, newProps);\n\t\t\t\t\t}\n\t\t\t\t\treturn vnode;\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t}\n\n\trender({ children, onChange }, { url }) {\n\t\tlet active = this.getMatchingChildren(toChildArray(children), url, true);\n\n\t\tlet current = active[0] || null;\n\n\t\tlet previous = this.previousUrl;\n\t\tif (url!==previous) {\n\t\t\tthis.previousUrl = url;\n\t\t\tif (typeof onChange==='function') {\n\t\t\t\tonChange({\n\t\t\t\t\trouter: this,\n\t\t\t\t\turl,\n\t\t\t\t\tprevious,\n\t\t\t\t\tactive,\n\t\t\t\t\tcurrent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn current;\n\t}\n}\n\nconst Link = (props) => (\n\tcreateElement('a', assign({ onClick: handleLinkClick }, props))\n);\n\nconst Route = props => createElement(props.component, props);\n\nRouter.subscribers = subscribers;\nRouter.getCurrentUrl = getCurrentUrl;\nRouter.route = route;\nRouter.Router = Router;\nRouter.Route = Route;\nRouter.Link = Link;\nRouter.exec = exec;\n\nexport { subscribers, getCurrentUrl, route, Router, Route, Link, exec };\nexport default Router;\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref,\n\t\tnull\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = oldVNode;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children == 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children == 'string' || typeof children == 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value == 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nfunction setProperty(dom, name, value, oldValue, isSvg) {\n\tlet s, useCapture, nameLower;\n\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'style') {\n\t\ts = dom.style;\n\n\t\tif (typeof value == 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t(newVNode._original === oldVNode._original && !c._processingException)\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\tnewVNode._children = newVNode.props.children;\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (!newHtml) {\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\tnewProps.value !== undefined &&\n\t\t\t\tnewProps.value !== dom.value\n\t\t\t) {\n\t\t\t\tdom.value = newProps.value == null ? '' : newProps.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\tnewProps.checked !== undefined &&\n\t\t\t\tnewProps.checked !== dom.checked\n\t\t\t) {\n\t\t\t\tdom.checked = newProps.checked;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\treturn createVNode(\n\t\tvnode.type,\n\t\tprops,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\treturn context;\n}\n","export const ELEMENT_NODE = 1;\nexport const DOCUMENT_NODE = 9;\nexport const DOCUMENT_FRAGMENT_NODE = 11;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","import style from './copyright.css';\nimport { Component } from 'preact';\n\nexport default class Copyright extends Component {\n\trender() {\n\t\treturn
© 2020 - Stefano Pigozzi - CC BY-SA 4.0 - Codice sorgente - Supportami
;\n\t}\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./ottimizzazioneLineare.js\") );\n\t\t\t}, \"route-ottimizzazioneLineare\");\n\t\t}\n\n\t\texport default Async(load);\n\t","/* global __webpack_public_path__ */\n\nimport * as Preact from 'preact';\nconst { h, render, hydrate } = Preact;\n\nconst interopDefault = m => (m && m.default ? m.default : m);\n\nconst normalizeURL = url => (url[url.length - 1] === '/' ? url : url + '/');\n\nif (process.env.NODE_ENV === 'development') {\n\t// enable preact devtools\n\trequire('preact/debug');\n\tif (process.env.RHL) {\n\t\t// enable hot loader\n\t\tconst hotLoader = interopDefault(require('react-hot-loader'));\n\t\thotLoader.preact(interopDefault(require('preact')));\n\t}\n\t// only add a debug sw if webpack service worker is not requested.\n\tif (process.env.ADD_SW === undefined && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(__webpack_public_path__ + 'sw-debug.js');\n\t} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t\t// eslint-disable-next-line no-undef\n\t\tnavigator.serviceWorker.register(\n\t\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t\t);\n\t}\n} else if (process.env.ADD_SW && 'serviceWorker' in navigator) {\n\t// eslint-disable-next-line no-undef\n\tnavigator.serviceWorker.register(\n\t\t__webpack_public_path__ + (process.env.ES_BUILD ? 'sw-esm.js' : 'sw.js')\n\t);\n}\n\nlet app = interopDefault(require('preact-cli-entrypoint'));\n\nif (typeof app === 'function') {\n\tlet root =\n\t\tdocument.getElementById('preact_root') || document.body.firstElementChild;\n\n\tlet init = () => {\n\t\tlet app = interopDefault(require('preact-cli-entrypoint'));\n\t\tlet preRenderData = {};\n\t\tconst inlineDataElement = document.querySelector(\n\t\t\t'[type=\"__PREACT_CLI_DATA__\"]'\n\t\t);\n\t\tif (inlineDataElement) {\n\t\t\tpreRenderData =\n\t\t\t\tJSON.parse(inlineDataElement.innerHTML).preRenderData || preRenderData;\n\t\t}\n\t\t/* An object named CLI_DATA is passed as a prop,\n\t\t * this keeps us future proof if in case we decide,\n\t\t * to send other data like at some point in time.\n\t\t */\n\t\tconst CLI_DATA = { preRenderData };\n\t\tconst currentURL = preRenderData.url ? normalizeURL(preRenderData.url) : '';\n\t\tconst canHydrate =\n\t\t\tprocess.env.PRERENDER &&\n\t\t\tprocess.env.NODE_ENV === 'production' &&\n\t\t\thydrate &&\n\t\t\tcurrentURL === location.pathname;\n\t\tconst doRender = canHydrate ? hydrate : render;\n\t\troot = doRender(h(app, { CLI_DATA }), document.body, root);\n\t};\n\n\tif (module.hot) module.hot.accept('preact-cli-entrypoint', init);\n\n\tinit();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","import { options, Fragment } from 'preact';\n\n/**\n * Get human readable name of the component/dom node\n * @param {import('./internal').VNode} vnode\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getDisplayName(vnode) {\n\tif (vnode.type === Fragment) {\n\t\treturn 'Fragment';\n\t} else if (typeof vnode.type == 'function') {\n\t\treturn vnode.type.displayName || vnode.type.name;\n\t} else if (typeof vnode.type == 'string') {\n\t\treturn vnode.type;\n\t}\n\n\treturn '#text';\n}\n\n/**\n * Used to keep track of the currently rendered `vnode` and print it\n * in debug messages.\n */\nlet renderStack = [];\n\n/**\n * Keep track of the current owners. An owner describes a component\n * which was responsible to render a specific `vnode`. This exclude\n * children that are passed via `props.children`, because they belong\n * to the parent owner.\n *\n * ```jsx\n * const Foo = props =>
{props.children}
// div's owner is Foo\n * const Bar = props => {\n * return (\n * // Foo's owner is Bar, span's owner is Bar\n * )\n * }\n * ```\n *\n * Note: A `vnode` may be hoisted to the root scope due to compiler\n * optimiztions. In these cases the `_owner` will be different.\n */\nlet ownerStack = [];\n\n/**\n * Get the currently rendered `vnode`\n * @returns {import('./internal').VNode | null}\n */\nexport function getCurrentVNode() {\n\treturn renderStack.length > 0 ? renderStack[renderStack.length - 1] : null;\n}\n\n/**\n * If the user doesn't have `@babel/plugin-transform-react-jsx-source`\n * somewhere in his tool chain we can't print the filename and source\n * location of a component. In that case we just omit that, but we'll\n * print a helpful message to the console, notifying the user of it.\n */\nlet hasBabelPlugin = false;\n\n/**\n * Check if a `vnode` is a possible owner.\n * @param {import('./internal').VNode} vnode\n */\nfunction isPossibleOwner(vnode) {\n\treturn typeof vnode.type == 'function' && vnode.type != Fragment;\n}\n\n/**\n * Return the component stack that was captured up to this point.\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function getOwnerStack(vnode) {\n\tconst stack = [vnode];\n\tlet next = vnode;\n\twhile (next._owner != null) {\n\t\tstack.push(next._owner);\n\t\tnext = next._owner;\n\t}\n\n\treturn stack.reduce((acc, owner) => {\n\t\tacc += ` in ${getDisplayName(owner)}`;\n\n\t\tconst source = owner.__source;\n\t\tif (source) {\n\t\t\tacc += ` (at ${source.fileName}:${source.lineNumber})`;\n\t\t} else if (!hasBabelPlugin) {\n\t\t\thasBabelPlugin = true;\n\t\t\tconsole.warn(\n\t\t\t\t'Add @babel/plugin-transform-react-jsx-source to get a more detailed component stack. Note that you should not add it to production builds of your App for bundle size reasons.'\n\t\t\t);\n\t\t}\n\n\t\treturn (acc += '\\n');\n\t}, '');\n}\n\n/**\n * Setup code to capture the component trace while rendering. Note that\n * we cannot simply traverse `vnode._parent` upwards, because we have some\n * debug messages for `this.setState` where the `vnode` is `undefined`.\n */\nexport function setupComponentStack() {\n\tlet oldDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldRoot = options._root;\n\tlet oldVNode = options.vnode;\n\tlet oldRender = options._render;\n\n\toptions.diffed = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.pop();\n\t\t}\n\t\trenderStack.pop();\n\t\tif (oldDiffed) oldDiffed(vnode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\trenderStack.push(vnode);\n\t\t}\n\t\tif (oldDiff) oldDiff(vnode);\n\t};\n\n\toptions._root = (vnode, parent) => {\n\t\townerStack = [];\n\t\tif (oldRoot) oldRoot(vnode, parent);\n\t};\n\n\toptions.vnode = vnode => {\n\t\tvnode._owner =\n\t\t\townerStack.length > 0 ? ownerStack[ownerStack.length - 1] : null;\n\t\tif (oldVNode) oldVNode(vnode);\n\t};\n\n\toptions._render = vnode => {\n\t\tif (isPossibleOwner(vnode)) {\n\t\t\townerStack.push(vnode);\n\t\t}\n\n\t\tif (oldRender) oldRender(vnode);\n\t};\n}\n","import { checkPropTypes } from './check-props';\nimport { options, Component } from 'preact';\nimport {\n\tELEMENT_NODE,\n\tDOCUMENT_NODE,\n\tDOCUMENT_FRAGMENT_NODE\n} from './constants';\nimport {\n\tgetOwnerStack,\n\tsetupComponentStack,\n\tgetCurrentVNode,\n\tgetDisplayName\n} from './component-stack';\n\nconst isWeakMapSupported = typeof WeakMap == 'function';\n\nfunction getClosestDomNodeParent(parent) {\n\tif (!parent) return {};\n\tif (typeof parent.type == 'function') {\n\t\treturn getClosestDomNodeParent(parent._parent);\n\t}\n\treturn parent;\n}\n\nexport function initDebug() {\n\tsetupComponentStack();\n\n\t/* eslint-disable no-console */\n\tlet oldBeforeDiff = options._diff;\n\tlet oldDiffed = options.diffed;\n\tlet oldVnode = options.vnode;\n\tlet oldCatchError = options._catchError;\n\tlet oldRoot = options._root;\n\tlet oldHook = options._hook;\n\tconst warnedComponents = !isWeakMapSupported\n\t\t? null\n\t\t: {\n\t\t\t\tuseEffect: new WeakMap(),\n\t\t\t\tuseLayoutEffect: new WeakMap(),\n\t\t\t\tlazyPropTypes: new WeakMap()\n\t\t };\n\n\toptions._catchError = (error, vnode, oldVNode) => {\n\t\tlet component = vnode && vnode._component;\n\t\tif (component && typeof error.then == 'function') {\n\t\t\tconst promise = error;\n\t\t\terror = new Error(\n\t\t\t\t`Missing Suspense. The throwing component was: ${getDisplayName(vnode)}`\n\t\t\t);\n\n\t\t\tlet parent = vnode;\n\t\t\tfor (; parent; parent = parent._parent) {\n\t\t\t\tif (parent._component && parent._component._childDidSuspend) {\n\t\t\t\t\terror = promise;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We haven't recovered and we know at this point that there is no\n\t\t\t// Suspense component higher up in the tree\n\t\t\tif (error instanceof Error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\toldCatchError(error, vnode, oldVNode);\n\t};\n\n\toptions._root = (vnode, parentNode) => {\n\t\tif (!parentNode) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined parent passed to render(), this is the second argument.\\n' +\n\t\t\t\t\t'Check if the element is available in the DOM/has the correct id.'\n\t\t\t);\n\t\t}\n\t\tlet isValid;\n\t\tswitch (parentNode.nodeType) {\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\tcase DOCUMENT_NODE:\n\t\t\t\tisValid = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tisValid = false;\n\t\t}\n\n\t\tif (!isValid) {\n\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\tthrow new Error(\n\t\t\t\t`Expected a valid HTML node as a second argument to render.\tReceived ${parentNode} instead: render(<${componentName} />, ${parentNode});`\n\t\t\t);\n\t\t}\n\n\t\tif (oldRoot) oldRoot(vnode, parentNode);\n\t};\n\n\toptions._diff = vnode => {\n\t\tlet { type, _parent: parent } = vnode;\n\t\tlet parentVNode = getClosestDomNodeParent(parent);\n\n\t\tif (type === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t'Undefined component passed to createElement()\\n\\n' +\n\t\t\t\t\t'You likely forgot to export your component or might have mixed up default and named imports' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type != null && typeof type == 'object') {\n\t\t\tif (type._children !== undefined && type._dom !== undefined) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid type passed to createElement(): ${type}\\n\\n` +\n\t\t\t\t\t\t'Did you accidentally pass a JSX literal as JSX twice?\\n\\n' +\n\t\t\t\t\t\t` let My${getDisplayName(vnode)} = ${serializeVNode(type)};\\n` +\n\t\t\t\t\t\t` let vnode = ;\\n\\n` +\n\t\t\t\t\t\t'This usually happens when you export a JSX literal and not the component.' +\n\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid type passed to createElement(): ' +\n\t\t\t\t\t(Array.isArray(type) ? 'array' : type)\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(type === 'thead' || type === 'tfoot' || type === 'tbody') &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your
should have a
should have a
should have a
parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (\n\t\t\ttype === 'tr' &&\n\t\t\tparentVNode.type !== 'thead' &&\n\t\t\tparentVNode.type !== 'tfoot' &&\n\t\t\tparentVNode.type !== 'tbody' &&\n\t\t\tparentVNode.type !== 'table'\n\t\t) {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your should have a parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'td' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your parent.' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t} else if (type === 'th' && parentVNode.type !== 'tr') {\n\t\t\tconsole.error(\n\t\t\t\t'Improper nesting of table. Your .' +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\tvnode.ref !== undefined &&\n\t\t\ttypeof vnode.ref != 'function' &&\n\t\t\ttypeof vnode.ref != 'object' &&\n\t\t\t!('$$typeof' in vnode) // allow string refs when preact-compat is installed\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t`Component's \"ref\" property should be a function, or an object created ` +\n\t\t\t\t\t`by createRef(), but got [${typeof vnode.ref}] instead\\n` +\n\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t);\n\t\t}\n\n\t\tif (typeof vnode.type == 'string') {\n\t\t\tfor (const key in vnode.props) {\n\t\t\t\tif (\n\t\t\t\t\tkey[0] === 'o' &&\n\t\t\t\t\tkey[1] === 'n' &&\n\t\t\t\t\ttypeof vnode.props[key] != 'function' &&\n\t\t\t\t\tvnode.props[key] != null\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Component's \"${key}\" property should be a function, ` +\n\t\t\t\t\t\t\t`but got [${typeof vnode.props[key]}] instead\\n` +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Check prop-types if available\n\t\tif (typeof vnode.type == 'function' && vnode.type.propTypes) {\n\t\t\tif (\n\t\t\t\tvnode.type.displayName === 'Lazy' &&\n\t\t\t\twarnedComponents &&\n\t\t\t\t!warnedComponents.lazyPropTypes.has(vnode.type)\n\t\t\t) {\n\t\t\t\tconst m =\n\t\t\t\t\t'PropTypes are not supported on lazy(). Use propTypes on the wrapped component itself. ';\n\t\t\t\ttry {\n\t\t\t\t\tconst lazyVNode = vnode.type();\n\t\t\t\t\twarnedComponents.lazyPropTypes.set(vnode.type, true);\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + `Component wrapped in lazy() is ${getDisplayName(lazyVNode)}`\n\t\t\t\t\t);\n\t\t\t\t} catch (promise) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tm + \"We will log the wrapped component's name once it is loaded.\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckPropTypes(\n\t\t\t\tvnode.type.propTypes,\n\t\t\t\tvnode.props,\n\t\t\t\t'prop',\n\t\t\t\tgetDisplayName(vnode)\n\t\t\t);\n\t\t}\n\n\t\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n\t};\n\n\toptions._hook = comp => {\n\t\tif (!comp) {\n\t\t\tthrow new Error('Hook can only be invoked from render methods.');\n\t\t}\n\n\t\tif (oldHook) oldHook(comp);\n\t};\n\n\tconst warn = (property, err) => ({\n\t\tget() {\n\t\t\tthrow new Error(`getting vnode.${property} is deprecated, ${err}`);\n\t\t},\n\t\tset() {\n\t\t\tthrow new Error(`setting vnode.${property} is not allowed, ${err}`);\n\t\t}\n\t});\n\n\tconst deprecatedAttributes = {\n\t\tnodeName: warn('nodeName', 'use vnode.type'),\n\t\tattributes: warn('attributes', 'use vnode.props'),\n\t\tchildren: warn('children', 'use vnode.props.children')\n\t};\n\n\tconst deprecatedProto = Object.create({}, deprecatedAttributes);\n\n\toptions.vnode = vnode => {\n\t\tconst props = vnode.props;\n\t\tif (\n\t\t\tvnode.type !== null &&\n\t\t\tprops != null &&\n\t\t\t('__source' in props || '__self' in props)\n\t\t) {\n\t\t\tconst newProps = (vnode.props = {});\n\t\t\tfor (let i in props) {\n\t\t\t\tconst v = props[i];\n\t\t\t\tif (i === '__source') vnode.__source = v;\n\t\t\t\telse if (i === '__self') vnode.__self = v;\n\t\t\t\telse newProps[i] = v;\n\t\t\t}\n\t\t}\n\t\tObject.setPrototypeOf(vnode, deprecatedProto);\n\t\tif (oldVnode) oldVnode(vnode);\n\t};\n\n\toptions.diffed = vnode => {\n\t\t// Check if the user passed plain objects as children. Note that we cannot\n\t\t// move this check into `options.vnode` because components can receive\n\t\t// children in any shape they want (e.g.\n\t\t// `{{ foo: 123, bar: \"abc\" }}`).\n\t\t// Putting this check in `options.diffed` ensures that\n\t\t// `vnode._children` is set and that we only validate the children\n\t\t// that were actually rendered.\n\t\tif (vnode._children) {\n\t\t\tvnode._children.forEach(child => {\n\t\t\t\tif (child && child.type === undefined) {\n\t\t\t\t\t// Remove internal vnode keys that will always be patched\n\t\t\t\t\tdelete child._parent;\n\t\t\t\t\tdelete child._depth;\n\t\t\t\t\tconst keys = Object.keys(child).join(',');\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Objects are not valid as a child. Encountered an object with the keys {${keys}}.` +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t/** @type {import('./internal').Component} */\n\t\tconst component = vnode._component;\n\t\tif (component && component.__hooks) {\n\t\t\tlet hooks = component.__hooks;\n\t\t\tif (Array.isArray(hooks._list)) {\n\t\t\t\thooks._list.forEach(hook => {\n\t\t\t\t\tif (hook._factory && (!hook._args || !Array.isArray(hook._args))) {\n\t\t\t\t\t\tlet componentName = getDisplayName(vnode);\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`In ${componentName} you are calling useMemo/useCallback without passing arguments.\\n` +\n\t\t\t\t\t\t\t\t`This is a noop since it will not be able to memoize, it will execute it every render.` +\n\t\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (oldDiffed) oldDiffed(vnode);\n\n\t\tif (vnode._children != null) {\n\t\t\tconst keys = [];\n\t\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\t\tconst child = vnode._children[i];\n\t\t\t\tif (!child || child.key == null) continue;\n\n\t\t\t\tconst key = child.key;\n\t\t\t\tif (keys.indexOf(key) !== -1) {\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'Following component has two or more children with the ' +\n\t\t\t\t\t\t\t`same key attribute: \"${key}\". This may cause glitches and misbehavior ` +\n\t\t\t\t\t\t\t'in rendering process. Component: \\n\\n' +\n\t\t\t\t\t\t\tserializeVNode(vnode) +\n\t\t\t\t\t\t\t`\\n\\n${getOwnerStack(vnode)}`\n\t\t\t\t\t);\n\n\t\t\t\t\t// Break early to not spam the console\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tkeys.push(key);\n\t\t\t}\n\t\t}\n\t};\n}\n\nconst setState = Component.prototype.setState;\nComponent.prototype.setState = function(update, callback) {\n\tif (this._vnode == null) {\n\t\t// `this._vnode` will be `null` during componentWillMount. But it\n\t\t// is perfectly valid to call `setState` during cWM. So we\n\t\t// need an additional check to verify that we are dealing with a\n\t\t// call inside constructor.\n\t\tif (this.state == null) {\n\t\t\tconsole.warn(\n\t\t\t\t`Calling \"this.setState\" inside the constructor of a component is a ` +\n\t\t\t\t\t`no-op and might be a bug in your application. Instead, set ` +\n\t\t\t\t\t`\"this.state = {}\" directly.\\n\\n${getOwnerStack(getCurrentVNode())}`\n\t\t\t);\n\t\t}\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.setState\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\n\treturn setState.call(this, update, callback);\n};\n\nconst forceUpdate = Component.prototype.forceUpdate;\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode == null) {\n\t\tconsole.warn(\n\t\t\t`Calling \"this.forceUpdate\" inside the constructor of a component is a ` +\n\t\t\t\t`no-op and might be a bug in your application.\\n\\n${getOwnerStack(\n\t\t\t\t\tgetCurrentVNode()\n\t\t\t\t)}`\n\t\t);\n\t} else if (this._parentDom == null) {\n\t\tconsole.warn(\n\t\t\t`Can't call \"this.forceUpdate\" on an unmounted component. This is a no-op, ` +\n\t\t\t\t`but it indicates a memory leak in your application. To fix, cancel all ` +\n\t\t\t\t`subscriptions and asynchronous tasks in the componentWillUnmount method.` +\n\t\t\t\t`\\n\\n${getOwnerStack(this._vnode)}`\n\t\t);\n\t}\n\treturn forceUpdate.call(this, callback);\n};\n\n/**\n * Serialize a vnode tree to a string\n * @param {import('./internal').VNode} vnode\n * @returns {string}\n */\nexport function serializeVNode(vnode) {\n\tlet { props } = vnode;\n\tlet name = getDisplayName(vnode);\n\n\tlet attrs = '';\n\tfor (let prop in props) {\n\t\tif (props.hasOwnProperty(prop) && prop !== 'children') {\n\t\t\tlet value = props[prop];\n\n\t\t\t// If it is an object but doesn't have toString(), use Object.toString\n\t\t\tif (typeof value == 'function') {\n\t\t\t\tvalue = `function ${value.displayName || value.name}() {}`;\n\t\t\t}\n\n\t\t\tvalue =\n\t\t\t\tObject(value) === value && !value.toString\n\t\t\t\t\t? Object.prototype.toString.call(value)\n\t\t\t\t\t: value + '';\n\n\t\t\tattrs += ` ${prop}=${JSON.stringify(value)}`;\n\t\t}\n\t}\n\n\tlet children = props.children;\n\treturn `<${name}${attrs}${\n\t\tchildren && children.length ? '>..' : ' />'\n\t}`;\n}\n","import { options, Fragment } from 'preact';\n\nexport function initDevTools() {\n\tif (typeof window != 'undefined' && window.__PREACT_DEVTOOLS__) {\n\t\twindow.__PREACT_DEVTOOLS__.attachPreact('10.0.5', options, {\n\t\t\tFragment\n\t\t});\n\t}\n}\n","const ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nlet loggedTypeFailures = {};\n\n/**\n * Reset the history of which prop type warnings have been logged.\n */\nexport function resetPropWarnings() {\n\tloggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * Adapted from https://github.com/facebook/prop-types/blob/master/checkPropTypes.js\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n */\nexport function checkPropTypes(\n\ttypeSpecs,\n\tvalues,\n\tlocation,\n\tcomponentName,\n\tgetStack\n) {\n\tObject.keys(typeSpecs).forEach(typeSpecName => {\n\t\tlet error;\n\t\ttry {\n\t\t\terror = typeSpecs[typeSpecName](\n\t\t\t\tvalues,\n\t\t\t\ttypeSpecName,\n\t\t\t\tcomponentName,\n\t\t\t\tlocation,\n\t\t\t\tnull,\n\t\t\t\tReactPropTypesSecret\n\t\t\t);\n\t\t} catch (e) {\n\t\t\terror = e;\n\t\t}\n\t\tif (error && !(error.message in loggedTypeFailures)) {\n\t\t\tloggedTypeFailures[error.message] = true;\n\t\t\tconsole.error(\n\t\t\t\t`Failed ${location} type: ${error.message}${(getStack && getStack()) ||\n\t\t\t\t\t''}`\n\t\t\t);\n\t\t}\n\t});\n}\n","\n\t\timport Async from \"../../node_modules/@preact/async-loader/async-legacy.js\";\n\n\t\tfunction load(cb) {\n\t\t\trequire.ensure([], function (require) {\n\t\t\t\tcb( require(\"!!../../node_modules/babel-loader/lib/index.js??ref--4!./fisica.js\") );\n\t\t\t}, \"route-fisica\");\n\t\t}\n\n\t\texport default Async(load);\n\t"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 73e100d..cf62451 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -Appunti Web \ No newline at end of file +Appunti Web \ No newline at end of file diff --git a/docs/precache-manifest.d5b9b83a383fd46375c30c19ae5399b0.esm.js b/docs/precache-manifest.40c748ad559066accc883673cce8ce47.esm.js similarity index 63% rename from docs/precache-manifest.d5b9b83a383fd46375c30c19ae5399b0.esm.js rename to docs/precache-manifest.40c748ad559066accc883673cce8ce47.esm.js index 08425f3..3baafba 100644 --- a/docs/precache-manifest.d5b9b83a383fd46375c30c19ae5399b0.esm.js +++ b/docs/precache-manifest.40c748ad559066accc883673cce8ce47.esm.js @@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/assets/icon.png" }, { - "revision": "cdffd673b62abca1bb05", - "url": "/bundle.87dc2.esm.js" + "revision": "fb7165efb31d4ed080a7", + "url": "/bundle.74134.esm.js" }, { - "revision": "cdffd673b62abca1bb05", - "url": "/bundle.a2f8e.css" + "revision": "fb7165efb31d4ed080a7", + "url": "/bundle.b01bd.css" }, { - "revision": "eccd60d4ad62e1cac86ac6271b3747c7", + "revision": "01cbae314274c5f1fe7aeb6f7f7dba89", "url": "/index.html" }, { @@ -40,28 +40,28 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-basiDiDati.chunk.e409b.css" }, { - "revision": "b5b36e44b3493c845e05", - "url": "/route-calcoloNumerico.chunk.073a6.esm.js" + "revision": "b64db060b9300c6946c2", + "url": "/route-calcoloNumerico.chunk.4d04d.css" }, { - "revision": "b5b36e44b3493c845e05", - "url": "/route-calcoloNumerico.chunk.c6691.css" + "revision": "b64db060b9300c6946c2", + "url": "/route-calcoloNumerico.chunk.abaa3.esm.js" }, { - "revision": "b6e4361375b8bfc7afa7", - "url": "/route-fisica.chunk.1ad2c.esm.js" + "revision": "9892b86fc399d72f83cd", + "url": "/route-fisica.chunk.598fe.css" }, { - "revision": "b6e4361375b8bfc7afa7", - "url": "/route-fisica.chunk.31dee.css" + "revision": "9892b86fc399d72f83cd", + "url": "/route-fisica.chunk.953ff.esm.js" }, { - "revision": "0540f384952e1d653527", - "url": "/route-home.chunk.a4a02.esm.js" + "revision": "6edcfcd03fa266915b36", + "url": "/route-home.chunk.008cd.esm.js" }, { - "revision": "0540f384952e1d653527", - "url": "/route-home.chunk.b0630.css" + "revision": "6edcfcd03fa266915b36", + "url": "/route-home.chunk.81f93.css" }, { "revision": "22ffb6c67dc4f3e490f6", @@ -72,12 +72,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-mingwinstall.chunk.5a95a.css" }, { - "revision": "9e341a7e7ce5d1ee141f", - "url": "/route-ottimizzazioneLineare.chunk.192fc.esm.js" + "revision": "762b1b1f93c88d329280", + "url": "/route-ottimizzazioneLineare.chunk.353b8.esm.js" }, { - "revision": "9e341a7e7ce5d1ee141f", - "url": "/route-ottimizzazioneLineare.chunk.eb9a0.css" + "revision": "762b1b1f93c88d329280", + "url": "/route-ottimizzazioneLineare.chunk.9a20b.css" }, { "revision": "675260c6a85b3fa1af79", diff --git a/docs/precache-manifest.d70c8ac2ebf9c8612909cb2648f39798.js b/docs/precache-manifest.c174bc8e42d4199c747cda8554c67ae3.js similarity index 64% rename from docs/precache-manifest.d70c8ac2ebf9c8612909cb2648f39798.js rename to docs/precache-manifest.c174bc8e42d4199c747cda8554c67ae3.js index e118428..2281b68 100644 --- a/docs/precache-manifest.d70c8ac2ebf9c8612909cb2648f39798.js +++ b/docs/precache-manifest.c174bc8e42d4199c747cda8554c67ae3.js @@ -4,15 +4,15 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/assets/icon.png" }, { - "revision": "cdffd673b62abca1bb05", - "url": "/bundle.a2f8e.css" + "revision": "fb7165efb31d4ed080a7", + "url": "/bundle.b01bd.css" }, { - "revision": "cdffd673b62abca1bb05", - "url": "/bundle.cdffd.js" + "revision": "fb7165efb31d4ed080a7", + "url": "/bundle.fb716.js" }, { - "revision": "eccd60d4ad62e1cac86ac6271b3747c7", + "revision": "01cbae314274c5f1fe7aeb6f7f7dba89", "url": "/index.html" }, { @@ -40,28 +40,28 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-basiDiDati.chunk.e409b.css" }, { - "revision": "b5b36e44b3493c845e05", - "url": "/route-calcoloNumerico.chunk.b5b36.js" + "revision": "b64db060b9300c6946c2", + "url": "/route-calcoloNumerico.chunk.4d04d.css" }, { - "revision": "b5b36e44b3493c845e05", - "url": "/route-calcoloNumerico.chunk.c6691.css" + "revision": "b64db060b9300c6946c2", + "url": "/route-calcoloNumerico.chunk.b64db.js" }, { - "revision": "b6e4361375b8bfc7afa7", - "url": "/route-fisica.chunk.31dee.css" + "revision": "9892b86fc399d72f83cd", + "url": "/route-fisica.chunk.598fe.css" }, { - "revision": "b6e4361375b8bfc7afa7", - "url": "/route-fisica.chunk.b6e43.js" + "revision": "9892b86fc399d72f83cd", + "url": "/route-fisica.chunk.9892b.js" }, { - "revision": "0540f384952e1d653527", - "url": "/route-home.chunk.0540f.js" + "revision": "6edcfcd03fa266915b36", + "url": "/route-home.chunk.6edcf.js" }, { - "revision": "0540f384952e1d653527", - "url": "/route-home.chunk.b0630.css" + "revision": "6edcfcd03fa266915b36", + "url": "/route-home.chunk.81f93.css" }, { "revision": "22ffb6c67dc4f3e490f6", @@ -72,12 +72,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/route-mingwinstall.chunk.5a95a.css" }, { - "revision": "9e341a7e7ce5d1ee141f", - "url": "/route-ottimizzazioneLineare.chunk.9e341.js" + "revision": "762b1b1f93c88d329280", + "url": "/route-ottimizzazioneLineare.chunk.762b1.js" }, { - "revision": "9e341a7e7ce5d1ee141f", - "url": "/route-ottimizzazioneLineare.chunk.eb9a0.css" + "revision": "762b1b1f93c88d329280", + "url": "/route-ottimizzazioneLineare.chunk.9a20b.css" }, { "revision": "675260c6a85b3fa1af79", @@ -100,7 +100,7 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/sw-debug.js" }, { - "revision": "bc6cf47dca12613460b3636f6e65a112", + "revision": "1d851c65b9afa5a7ebfe0d8c037816cf", "url": "/sw-esm.js" }, { diff --git a/docs/push-manifest.json b/docs/push-manifest.json index ba5c27e..081c856 100644 --- a/docs/push-manifest.json +++ b/docs/push-manifest.json @@ -1 +1 @@ -{"/":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-home.chunk.a4a02.esm.js":{"type":"script","weight":0.9},"route-home.chunk.b0630.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali~route-ottimizzazioneLineare":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.8dc12.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/basiDiDati":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.1c7f7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.e409b.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.073a6.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.c6691.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-fisica.chunk.1ad2c.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.31dee.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.24a27.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.5a95a.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.192fc.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.eb9a0.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-statistica.chunk.8a057.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.4bfa5.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.a2f8e.css":{"type":"style","weight":1},"bundle.87dc2.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.76957.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.96070.css":{"type":"style","weight":0.9}}} \ No newline at end of file +{"/":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-home.chunk.008cd.esm.js":{"type":"script","weight":0.9},"route-home.chunk.81f93.css":{"type":"style","weight":0.9}},"/apprendimentoSistemiArtificiali~route-ottimizzazioneLineare":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/apprendimentoSistemiArtificiali":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-apprendimentoSistemiArtificiali.chunk.8dc12.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9}},"/basiDiDati":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-basiDiDati.chunk.1c7f7.esm.js":{"type":"script","weight":0.9},"route-basiDiDati.chunk.e409b.css":{"type":"style","weight":0.9}},"/calcoloNumerico":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-calcoloNumerico.chunk.abaa3.esm.js":{"type":"script","weight":0.9},"route-calcoloNumerico.chunk.4d04d.css":{"type":"style","weight":0.9}},"/fisica":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-fisica.chunk.953ff.esm.js":{"type":"script","weight":0.9},"route-fisica.chunk.598fe.css":{"type":"style","weight":0.9}},"/mingwinstall":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-mingwinstall.chunk.24a27.esm.js":{"type":"script","weight":0.9},"route-mingwinstall.chunk.5a95a.css":{"type":"style","weight":0.9}},"/ottimizzazioneLineare":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-ottimizzazioneLineare.chunk.353b8.esm.js":{"type":"script","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.2ca12.css":{"type":"style","weight":0.9},"route-apprendimentoSistemiArtificiali~route-ottimizzazioneLineare.chunk.bea71.esm.js":{"type":"script","weight":0.9},"route-ottimizzazioneLineare.chunk.9a20b.css":{"type":"style","weight":0.9}},"/statistica":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-statistica.chunk.8a057.esm.js":{"type":"script","weight":0.9},"route-statistica.chunk.4bfa5.css":{"type":"style","weight":0.9}},"/vldigeometria":{"bundle.b01bd.css":{"type":"style","weight":1},"bundle.74134.esm.js":{"type":"script","weight":1},"route-vldigeometria.chunk.76957.esm.js":{"type":"script","weight":0.9},"route-vldigeometria.chunk.96070.css":{"type":"style","weight":0.9}}} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.c6691.css b/docs/route-calcoloNumerico.chunk.4d04d.css similarity index 92% rename from docs/route-calcoloNumerico.chunk.c6691.css rename to docs/route-calcoloNumerico.chunk.4d04d.css index 3af503a..2016659 100644 --- a/docs/route-calcoloNumerico.chunk.c6691.css +++ b/docs/route-calcoloNumerico.chunk.4d04d.css @@ -1 +1 @@ -.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.latex__3zlIu{display:inline-block;vertical-align:middle}.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.example__2PzAa{color:#d3a1ff;padding:4px;border-radius:4px;margin:4px 0}.example__2PzAa,.example__2PzAa table{background-color:rgba(211,161,255,.05)}.example__2PzAa table{border-spacing:0;border:2px solid rgba(211,161,255,.1);border-collapse:collapse}.example__2PzAa table tbody td,.example__2PzAa table tbody th,.example__2PzAa table thead td,.example__2PzAa table thead th{padding:4px;border:1px solid rgba(211,161,255,.1)}.example__2PzAa table thead{background-color:rgba(211,161,255,.1);color:#fff}.todo__1UVRh{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d} \ No newline at end of file +.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.latex__3zlIu{display:inline-block;vertical-align:middle}.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.example__2PzAa{color:#d3a1ff;padding:4px;border-radius:4px;margin:4px 0}.example__2PzAa,.example__2PzAa table{background-color:rgba(211,161,255,.05)}.example__2PzAa table{border-spacing:0;border:2px solid rgba(211,161,255,.1);border-collapse:collapse}.example__2PzAa table tbody td,.example__2PzAa table tbody th,.example__2PzAa table thead td,.example__2PzAa table thead th{padding:4px;border:1px solid rgba(211,161,255,.1)}.example__2PzAa table thead{background-color:rgba(211,161,255,.1);color:#fff}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.073a6.esm.js b/docs/route-calcoloNumerico.chunk.abaa3.esm.js similarity index 99% rename from docs/route-calcoloNumerico.chunk.073a6.esm.js rename to docs/route-calcoloNumerico.chunk.abaa3.esm.js index 6914e5b..71dff87 100644 --- a/docs/route-calcoloNumerico.chunk.073a6.esm.js +++ b/docs/route-calcoloNumerico.chunk.abaa3.esm.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{"2w3n":function(i){i.exports={example:"example__2PzAa"}},"3k98":function(i){i.exports={todo:"todo__1UVRh"}},"6GOG":function(i,e,n){"use strict";n.r(e),function(i){n.d(e,"default",(function(){return O}));var t=n("hosL"),l=n("lL4N"),a=n("OMhl"),o=n("HKwK"),r=n("PEwj"),u=n("jXlC"),s=n("BSmf");let c,p,d,m,_,f,h,v,g,x,b,z,E,w,V,L,y,H,A,C,N,k,q,j=i=>i;const M=String.raw;class O extends t.Component{render(){return i("div",null,i("h1",null,"Calcolo Numerico"),i(l.a,{title:"Contatti"},i(o.a,{title:"Email della prof.ssa"},i("p",null,i("a",{href:"mailto:silvia.bonettini@unimore.it"},"silvia.bonettini@unimore.it"))),i(o.a,{title:"Ricevimento"},i("p",null,"Su appuntamento."))),i(l.a,{title:"Esame"},i(o.a,{title:"Orale"},i("p",null,"E' composto da:"),i("ul",null,i("li",null,"2 domande sugli argomenti teorici"),i("li",null,"1 domanda di implementazione algoritmo in MATLAB ",i("small",null,"(facoltativa per i punteggi migliori del TBL)"))),i("p",null,"Prossimo appello:",i(s.a,null)))),i(l.a,{title:"Algoritmi"},i(o.a,{title:"Algoritmi numerici"},i("p",null,"Algoritmi che hanno:"),i("ul",null,i("li",null,"numeri reali in input e output"),i("li",null,"successioni delle quattro operazioni aritmetiche fondamentali come passi")))),i(l.a,{title:"Errore di rappresentazione"},i(o.a,{title:"Errore di rappresentazione"},i("p",null,"Con i numeri floating point può capitare che un certo numero ",i(a.a,null,M(c||(c=j`\alpha`)))," non sia rappresentato correttamente."),i("p",null,"In tal caso, il numero si indica con ",i(a.a,null,M(p||(p=j`\alpha^*`))),".")),i(o.a,{title:"Errore assoluto"},i("p",null,"È la differenza tra il numero desiderato e il numero rappresentato:"),i("p",null,i(a.a,null,M(d||(d=j`E_a = \left | \alpha - \alpha^* \right |`)))),i(r.a,null,"Vale sempre 0, tranne in caso di underflow o overflow.")),i(o.a,{title:"Errore relativo"},i("p",null,"Indica quanto il numero rappresentato differisce dal numero desiderato:"),i("p",null,i(a.a,null,M(m||(m=j`\forall \alpha \neq 0, E_r = \frac{E_a}{\left | \alpha \right |}`)))))),i(l.a,{title:"Floating point"},i(o.a,{title:"Precisione di macchina"},i("p",null,"L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla ",i("i",null,"precisione di macchina"),":"),i("p",null,i(a.a,null,M(_||(_=j`E_r \leq k \cdot \beta^{1-t}`)))),i("ul",null,i("li",null,i(a.a,null,"\\beta")," è uguale alla base utilizzata (solitamente 2)."),i("li",null,i(a.a,null,"t")," è uguale al numero di cifre della mantissa."),i("li",null,i(a.a,null,"k")," è uguale a ",i(a.a,null,"1")," se il numero viene rappresentato per troncamento oppure a ",i(a.a,null,M(f||(f=j`\frac{1}{2}`)))," se viene rappresentato per arrotondamento.")))),i(l.a,{title:"Operazioni di macchina"},i(o.a,{title:"Un nuovo insieme"},i("p",null,"L'insieme ",i(a.a,null,"F")," è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando."),i("p",null,"Operazioni tra elementi di ",i(a.a,null,"F")," producono risultati in ",i(a.a,null,M(h||(h=j`\mathbb{R}`))),", che però decaderanno nuovamente a elementi di ",i(a.a,null,"F"),", perdendo informazioni."),i("p",null,"Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.")),i(o.a,{title:"Caratteristiche delle operazioni di macchina"},i("ul",null,i("li",null,"Hanno più di un elemento neutro."),i("li",null,"Un numero ha più opposti."),i("li",null,"Non sono associative."),i("li",null,"Non sono distributive."),i("li",null,"Non vale la legge di annullamento del prodotto."))),i(o.a,{title:"La funzione fl"},i("p",null,"Indica che un valore è soggetto alla precisione di macchina:"),i("p",null,i(a.a,null,M(v||(v=j`fl(x) = (x)(1 + \epsilon_x)`)))))),i(l.a,{title:"Errori nelle operazioni di macchina"},i(o.a,{title:"Errore inerente"},i("p",null,"Errore dipendente ",i("b",null,"solo dai dati"),"."),i("p",null,i(u.a,null,"TODO: qual è la formula?")),i("p",null,"È l'errore che si presenterebbe se ",i(a.a,null,M(g||(g=j`\epsilon_1 = \epsilon_2 = \dots = 0`))),".")),i(o.a,{title:"Errore algoritmico"},i("p",null,"Errore dipendente ",i("b",null,"solo dalle operazioni effettuate"),"."),i("p",null,i(u.a,null,"TODO: qual è la formula?")),i("p",null,"È l'errore che si presenterebbe se ",i(a.a,null,M(x||(x=j`\epsilon_x = \epsilon_y = \dots = 0`))),"."))),i(l.a,null,i(o.a,{title:"Problema ben condizionato"},i("p",null,"Un problema poco sensibile all'",i("b",null,"errore inerente"),"."),i(r.a,null,i(a.a,null,M(b||(b=j`y = \frac{1}{x}`)))," è mal condizionato intorno allo 0 e ben condizionato lontano dallo 0.")),i(o.a,{title:"Algoritmo stabile"},i("p",null,"Un algoritmo poco sensibile all'",i("b",null,"errore algoritmico"),"."),i(r.a,null,i("p",null,"Cerchiamo un algoritmo che risolva ",i(a.a,null,M(z||(z=j`2x = 4`))),"."),i("p",null,"Calcolare prima ",i(a.a,null,M(E||(E=j`t = fl \left( \frac{1}{4} \right)`)))," e poi ",i(a.a,null,M(w||(w=j`x^* = fl ( 2 \cdot t )`)))," porta a una perdita di precisione."),i("p",null,"Calcolare direttamente ",i(a.a,null,M(V||(V=j`x^* = fl \left( \frac{2}{4} \right)`)))," non ha alcuna perdita di precisione e rende l'algoritmo ",i("b",null,"più stabile")," del precedente.")))),i(l.a,null,i(o.a,{title:"Indice di condizionamento"},i("p",null,"È il coefficiente di proporzionalità tra i dati e l'",i("b",null,"errore inerente"),"."),i("p",null,"Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione."),i("p",null,"Minore è l'indice di condizionamento, meglio condizionato è un problema.")),i(o.a,{title:"Indice algoritmico"},i("p",null,"È il coefficiente di proporzionalità tra i dati e l'",i("b",null,"errore algoritmico"),"."),i("p",null,"Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione."))),i(l.a,{title:"Le cose più difficili di Algebra Lineare"},i(o.a,{title:"Matrice singolare"},i("p",null,"Matrice con determinante 0."),i("p",null,"Le matrici singolari ",i("b",null,"non sono invertibili"),"."))),i(l.a,{title:"Norme"},i(o.a,{title:"Norma vettoriale"},i("p",null,"Funzione che associa un valore positivo a ogni vettore diverso da 0, e 0 al vettore zero."),i(r.a,null,i("a",{href:"https://it.wikipedia.org/wiki/Norma_(matematica)#/media/File:Vector_norms.svg"},"Esempi su Wikipedia"))),i(o.a,{title:"Norma a infinito"},i("p",null,"Massimo dei valori assoluti di tutti gli elementi del vettore."),i("p",null,i(a.a,null,M(L||(L=j`\Vert x \Vert_\infty = max_{i = 1..n} | x_i |`))))),i(o.a,{title:"Norma a 1"},i("p",null,"Somma dei valori assoluti di tutti gli elementi del vettore."),i("p",null,i(a.a,null,M(y||(y=j`\Vert x \Vert_1 = \sum_{i = 1}^n | x_i |`))))),i(o.a,{title:"Norma a 2"},i("p",null,"Radice quadrata della somma dei quadrati di tutti gli elementi del vettore."),i("p",null,i(a.a,null,M(H||(H=j`\Vert x \Vert_2 = \sqrt{\sum_{i = 1}^n x_i^2}`)))))),i(l.a,null,i(o.a,{title:"Norma matriciale indotta"},i("p",null,"Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero."),i("p",null,"Si ricavano dalle norme vettoriali:"),i("p",null,i(a.a,null,M(A||(A=j`\Vert A \Vert = sup_{x \in \mathbb{R}, x \neq 0} \frac{\Vert A \cdot x \Vert}{\Vert x \Vert}`)))),i(r.a,null,i(a.a,null,"sup")," è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le prime lezioni di Analisi?")),i(o.a,{title:"Norma a infinito"},i("p",null,"Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice."),i("p",null,i(a.a,null,M(C||(C=j`\Vert A \Vert_\infty = max_{i = 1..n} \sum_{j = 1}^n | a_{ij} |`))))),i(o.a,{title:"Norma a 1"},i("p",null,"Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice."),i("p",null,i(a.a,null,M(N||(N=j`\Vert A \Vert_1 = max_{j = 1..n} \sum_{i = 1}^n | a_{ij} |`))))),i(o.a,{title:"Norma a 2"},i("p",null,"Radice quadrata del rango del prodotto tra una matrice e la sua trasposta."),i("p",null,i(a.a,null,M(k||(k=j`\Vert A \Vert_2 = \sqrt{\rho ( A^T \times A ) }`)))))),i(l.a,null,i(o.a,{title:"Errore relativo tra vettori e matrici"},i("p",null,"Le norme sono usate per calcolare l'errore relativo tra due vettori o matrici:"),i("p",null,i(a.a,null,M(q||(q=j`\frac{\Vert x - y \Vert}{\Vert x \Vert}`)))))),i(l.a,{title:"Fattorizzazione"},i(o.a,{title:"Cos'è?"},i("p",null,"La fattorizzazione è il processo che permette di risolvere sistemi di equazioni lineari rappresentati in forma di matrice."),i("p",null,"Esistono molteplici algoritmi in grado di realizzarla: mentre tutti portano alla stessa soluzione, possono avere ",i("b",null,"velocità")," e ",i("b",null,"indici algoritmici")," diversi."),i("p",null,"Il sistema lineare da risolvere viene diviso in due parti: la ",i("i",null,"matrice dei coefficienti")," e il ",i("i",null,"vettore termine noto"),".")),i(o.a,{title:"Teorema di Rouché-Capélli"},i("p",null))))}}}.call(this,n("hosL").h)},BSmf:function(i,e,n){"use strict";(function(i){n.d(e,"a",(function(){return o}));var t=n("hosL"),l=n("EfTa"),a=n.n(l);class o extends t.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let e="Unknown date",n=a.a.timer,t={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){e=new Date(this.props.to);let i=e-this.state.now;i>0?t={milliseconds:i%1e3,seconds:Math.floor(i/1e3)%60,minutes:Math.floor(i/6e4)%60,hours:Math.floor(i/36e5)%24,days:Math.floor(i/864e5)}:(t={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},n+=" "+a.a.expired)}else n+=" "+a.a.unknown;return i("div",{class:n,title:e},i("div",{class:a.a.days+" "+a.a.count},t.days),i("div",{className:a.a.days+" "+a.a.text},"giorni"),i("div",{class:a.a.hours+" "+a.a.count},t.hours),i("div",{className:a.a.hours+" "+a.a.text},"ore"),i("div",{class:a.a.minutes+" "+a.a.count},t.minutes),i("div",{className:a.a.minutes+" "+a.a.text},"minuti"),i("div",{class:a.a.seconds+" "+a.a.count},t.seconds),i("div",{class:a.a.seconds+" "+a.a.text},"secondi"),i("div",{class:a.a.remaining},"rimasti"))}}}).call(this,n("hosL").h)},EfTa:function(i){i.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"}},HKwK:function(i,e,n){"use strict";(function(i){n.d(e,"a",(function(){return o}));var t=n("r4EX"),l=n.n(t),a=n("hosL");class o extends a.Component{getStyle(){return l.a.panel}render(){let e=null;return void 0!==this.props.title&&(e=i("h3",null,this.props.title)),i("div",{class:this.getStyle(),id:this.props.id},e,this.props.children)}}}).call(this,n("hosL").h)},OMhl:function(i,e,n){"use strict";(function(i){var t=n("p7QU"),l=n.n(t),a=n("QRet"),o=n("8CDw"),r=n("wQ73");e.a=function(e){let n,t=Object(a.b)(o.a),u=Object(a.b)(r.a);return n=void 0===e.inline?u:e.inline,i("img",{src:`https://latex.codecogs.com/svg.latex?${`${n?"\\inline":""} {\\color{${t}} ${e.children} }`}`,alt:e.children,title:e.children,class:l.a.latex})}}).call(this,n("hosL").h)},PEwj:function(i,e,n){"use strict";(function(i){var t=n("2w3n"),l=n.n(t);n("hosL"),e.a=function(e){return i("div",{class:l.a.example},e.children)}}).call(this,n("hosL").h)},QRet:function(i,e,n){"use strict";function t(i){E.options.__h&&E.options.__h(b);var e=b.__H||(b.__H={__:[],__h:[]});return i>=e.__.length&&e.__.push({}),e.__[i]}function l(i){return a(g,i)}function a(i,e,n){var l=t(x++);return l.__c||(l.__c=b,l.__=[n?n(e):g(void 0,e),function(e){var n=i(l.__[0],e);l.__[0]!==n&&(l.__[0]=n,l.__c.setState({}))}]),l.__}function o(i,e){var n=t(x++);v(n.__H,e)&&(n.__=i,n.__H=e,b.__H.__h.push(n))}function r(i,e){var n=t(x++);v(n.__H,e)&&(n.__=i,n.__H=e,b.__h.push(n))}function u(i){return c((function(){return{current:i}}),[])}function s(i,e,n){r((function(){"function"==typeof i?i(e()):i&&(i.current=e())}),null==n?n:n.concat(i))}function c(i,e){var n=t(x++);return v(n.__H,e)?(n.__H=e,n.__h=i,n.__=i()):n.__}function p(i,e){return c((function(){return i}),e)}function d(i){var e=b.context[i.__c];if(!e)return i.__;var n=t(x++);return null==n.__&&(n.__=!0,e.sub(b)),e.props.value}function m(i,e){E.options.useDebugValue&&E.options.useDebugValue(e?e(i):i)}function _(){w.some((function(i){if(i.__P)try{i.__H.__h.forEach(f),i.__H.__h.forEach(h),i.__H.__h=[]}catch(e){return i.__H.__h=[],E.options.__e(e,i.__v),!0}})),w=[]}function f(i){i.t&&i.t()}function h(i){var e=i.__();"function"==typeof e&&(i.t=e)}function v(i,e){return!i||e.some((function(e,n){return e!==i[n]}))}function g(i,e){return"function"==typeof e?e(i):e}n.d(e,"j",(function(){return l})),n.d(e,"h",(function(){return a})),n.d(e,"d",(function(){return o})),n.d(e,"f",(function(){return r})),n.d(e,"i",(function(){return u})),n.d(e,"e",(function(){return s})),n.d(e,"g",(function(){return c})),n.d(e,"a",(function(){return p})),n.d(e,"b",(function(){return d})),n.d(e,"c",(function(){return m}));var x,b,z,E=n("hosL"),w=[],V=E.options.__r,L=E.options.diffed,y=E.options.__c,H=E.options.unmount;E.options.__r=function(i){V&&V(i),x=0,(b=i.__c).__H&&(b.__H.__h.forEach(f),b.__H.__h.forEach(h),b.__H.__h=[])},E.options.diffed=function(i){L&&L(i);var e=i.__c;if(e){var n=e.__H;n&&n.__h.length&&(1!==w.push(e)&&z===E.options.requestAnimationFrame||((z=E.options.requestAnimationFrame)||function(i){var e,n=function(){clearTimeout(t),cancelAnimationFrame(e),setTimeout(i)},t=setTimeout(n,100);"undefined"!=typeof window&&(e=requestAnimationFrame(n))})(_))}},E.options.__c=function(i,e){e.some((function(i){try{i.__h.forEach(f),i.__h=i.__h.filter((function(i){return!i.__||h(i)}))}catch(n){e.some((function(i){i.__h&&(i.__h=[])})),e=[],E.options.__e(n,i.__v)}})),y&&y(i,e)},E.options.unmount=function(i){H&&H(i);var e=i.__c;if(e){var n=e.__H;if(n)try{n.__.forEach((function(i){return i.t&&i.t()}))}catch(i){E.options.__e(i,e.__v)}}}},eCjK:function(i){i.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},jXlC:function(i,e,n){"use strict";(function(i){n.d(e,"a",(function(){return o}));var t=n("3k98"),l=n.n(t),a=n("hosL");class o extends a.Component{render(){return i("span",{class:l.a.todo},this.props.children)}}}).call(this,n("hosL").h)},lL4N:function(i,e,n){"use strict";(function(i){n.d(e,"a",(function(){return o}));var t=n("eCjK"),l=n.n(t),a=n("hosL");class o extends a.Component{render(){let e,n=null;return void 0!==this.props.title&&(n=i("h2",null,this.props.title)),e=Array.isArray(this.props.children)?this.props.children.map(e=>i("div",{class:l.a.splitchild},e)):i("div",{class:l.a.splitchild},this.props.children),i("div",{class:l.a.split},n,i("div",{class:l.a.splitparent},e))}}}).call(this,n("hosL").h)},p7QU:function(i){i.exports={latex:"latex__3zlIu"}},r4EX:function(i){i.exports={panel:"panel__7bYPC"}},wQ73:function(i,e,n){"use strict";var t=n("hosL");e.a=Object(t.createContext)(!0)}}]); -//# sourceMappingURL=route-calcoloNumerico.chunk.073a6.esm.js.map \ No newline at end of file +//# sourceMappingURL=route-calcoloNumerico.chunk.abaa3.esm.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.073a6.esm.js.map b/docs/route-calcoloNumerico.chunk.abaa3.esm.js.map similarity index 54% rename from docs/route-calcoloNumerico.chunk.073a6.esm.js.map rename to docs/route-calcoloNumerico.chunk.abaa3.esm.js.map index 1e21fff..ca9cfc1 100644 --- a/docs/route-calcoloNumerico.chunk.073a6.esm.js.map +++ b/docs/route-calcoloNumerico.chunk.abaa3.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"route-calcoloNumerico.chunk.073a6.esm.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"route-calcoloNumerico.chunk.abaa3.esm.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.b5b36.js b/docs/route-calcoloNumerico.chunk.b64db.js similarity index 99% rename from docs/route-calcoloNumerico.chunk.b5b36.js rename to docs/route-calcoloNumerico.chunk.b64db.js index 98f64c1..fb813ab 100644 --- a/docs/route-calcoloNumerico.chunk.b5b36.js +++ b/docs/route-calcoloNumerico.chunk.b64db.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{"2w3n":function(n){n.exports={example:"example__2PzAa"}},"3k98":function(n){n.exports={todo:"todo__1UVRh"}},"6GOG":function(n,t,e){"use strict";e.r(t),function(n){function i(){var n=A(["\frac{Vert x - y Vert}{Vert x Vert}"],["\\frac{\\Vert x - y \\Vert}{\\Vert x \\Vert}"]);return i=function(){return n},n}function r(){var n=A(["Vert A Vert_2 = sqrt{\rho ( A^T \times A ) }"],["\\Vert A \\Vert_2 = \\sqrt{\\rho ( A^T \\times A ) }"]);return r=function(){return n},n}function o(){var n=A(["Vert A Vert_1 = max_{j = 1..n} sum_{i = 1}^n | a_{ij} |"],["\\Vert A \\Vert_1 = max_{j = 1..n} \\sum_{i = 1}^n | a_{ij} |"]);return o=function(){return n},n}function l(){var n=A(["Vert A Vert_infty = max_{i = 1..n} sum_{j = 1}^n | a_{ij} |"],["\\Vert A \\Vert_\\infty = max_{i = 1..n} \\sum_{j = 1}^n | a_{ij} |"]);return l=function(){return n},n}function a(){var n=A(["Vert A Vert = sup_{x in mathbb{R}, x \neq 0} \frac{Vert A cdot x Vert}{Vert x Vert}"],["\\Vert A \\Vert = sup_{x \\in \\mathbb{R}, x \\neq 0} \\frac{\\Vert A \\cdot x \\Vert}{\\Vert x \\Vert}"]);return a=function(){return n},n}function u(){var n=A(["Vert x Vert_2 = sqrt{sum_{i = 1}^n x_i^2}"],["\\Vert x \\Vert_2 = \\sqrt{\\sum_{i = 1}^n x_i^2}"]);return u=function(){return n},n}function c(){var n=A(["Vert x Vert_1 = sum_{i = 1}^n | x_i |"],["\\Vert x \\Vert_1 = \\sum_{i = 1}^n | x_i |"]);return c=function(){return n},n}function s(){var n=A(["Vert x Vert_infty = max_{i = 1..n} | x_i |"],["\\Vert x \\Vert_\\infty = max_{i = 1..n} | x_i |"]);return s=function(){return n},n}function p(){var n=A(["x^* = fl left( \frac{2}{4} \right)"],["x^* = fl \\left( \\frac{2}{4} \\right)"]);return p=function(){return n},n}function _(){var n=A(["x^* = fl ( 2 cdot t )"],["x^* = fl ( 2 \\cdot t )"]);return _=function(){return n},n}function d(){var n=A(["t = fl left( \frac{1}{4} \right)"],["t = fl \\left( \\frac{1}{4} \\right)"]);return d=function(){return n},n}function f(){var n=A(["2x = 4"]);return f=function(){return n},n}function m(){var n=A(["y = \frac{1}{x}"],["y = \\frac{1}{x}"]);return m=function(){return n},n}function h(){var n=A(["epsilon_x = epsilon_y = dots = 0"],["\\epsilon_x = \\epsilon_y = \\dots = 0"]);return h=function(){return n},n}function v(){var n=A(["epsilon_1 = epsilon_2 = dots = 0"],["\\epsilon_1 = \\epsilon_2 = \\dots = 0"]);return v=function(){return n},n}function g(){var n=A(["fl(x) = (x)(1 + epsilon_x)"],["fl(x) = (x)(1 + \\epsilon_x)"]);return g=function(){return n},n}function x(){var n=A(["mathbb{R}"],["\\mathbb{R}"]);return x=function(){return n},n}function b(){var n=A(["\frac{1}{2}"],["\\frac{1}{2}"]);return b=function(){return n},n}function y(){var n=A(["E_r leq k cdot \beta^{1-t}"],["E_r \\leq k \\cdot \\beta^{1-t}"]);return y=function(){return n},n}function V(){var n=A(["\forall alpha \neq 0, E_r = \frac{E_a}{left | alpha \right |}"],["\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}"]);return V=function(){return n},n}function z(){var n=A(["E_a = left | alpha - alpha^* \right |"],["E_a = \\left | \\alpha - \\alpha^* \\right |"]);return z=function(){return n},n}function E(){var n=A(["alpha^*"],["\\alpha^*"]);return E=function(){return n},n}function w(){var n=A(["alpha"],["\\alpha"]);return w=function(){return n},n}function A(n,t){return t||(t=n.slice(0)),n.raw=t,n}e.d(t,"default",(function(){return M}));var L=e("hosL"),H=e("lL4N"),j=e("OMhl"),q=e("HKwK"),C=e("PEwj"),N=e("jXlC"),k=e("BSmf"),O=String.raw,M=function(t){function e(){return t.apply(this,arguments)||this}var A,L;return L=t,(A=e).prototype=Object.create(L.prototype),A.prototype.constructor=A,A.__proto__=L,e.prototype.render=function(){return n("div",null,n("h1",null,"Calcolo Numerico"),n(H.a,{title:"Contatti"},n(q.a,{title:"Email della prof.ssa"},n("p",null,n("a",{href:"mailto:silvia.bonettini@unimore.it"},"silvia.bonettini@unimore.it"))),n(q.a,{title:"Ricevimento"},n("p",null,"Su appuntamento."))),n(H.a,{title:"Esame"},n(q.a,{title:"Orale"},n("p",null,"E' composto da:"),n("ul",null,n("li",null,"2 domande sugli argomenti teorici"),n("li",null,"1 domanda di implementazione algoritmo in MATLAB ",n("small",null,"(facoltativa per i punteggi migliori del TBL)"))),n("p",null,"Prossimo appello:",n(k.a,null)))),n(H.a,{title:"Algoritmi"},n(q.a,{title:"Algoritmi numerici"},n("p",null,"Algoritmi che hanno:"),n("ul",null,n("li",null,"numeri reali in input e output"),n("li",null,"successioni delle quattro operazioni aritmetiche fondamentali come passi")))),n(H.a,{title:"Errore di rappresentazione"},n(q.a,{title:"Errore di rappresentazione"},n("p",null,"Con i numeri floating point può capitare che un certo numero ",n(j.a,null,O(w()))," non sia rappresentato correttamente."),n("p",null,"In tal caso, il numero si indica con ",n(j.a,null,O(E())),".")),n(q.a,{title:"Errore assoluto"},n("p",null,"È la differenza tra il numero desiderato e il numero rappresentato:"),n("p",null,n(j.a,null,O(z()))),n(C.a,null,"Vale sempre 0, tranne in caso di underflow o overflow.")),n(q.a,{title:"Errore relativo"},n("p",null,"Indica quanto il numero rappresentato differisce dal numero desiderato:"),n("p",null,n(j.a,null,O(V()))))),n(H.a,{title:"Floating point"},n(q.a,{title:"Precisione di macchina"},n("p",null,"L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla ",n("i",null,"precisione di macchina"),":"),n("p",null,n(j.a,null,O(y()))),n("ul",null,n("li",null,n(j.a,null,"\\beta")," è uguale alla base utilizzata (solitamente 2)."),n("li",null,n(j.a,null,"t")," è uguale al numero di cifre della mantissa."),n("li",null,n(j.a,null,"k")," è uguale a ",n(j.a,null,"1")," se il numero viene rappresentato per troncamento oppure a ",n(j.a,null,O(b()))," se viene rappresentato per arrotondamento.")))),n(H.a,{title:"Operazioni di macchina"},n(q.a,{title:"Un nuovo insieme"},n("p",null,"L'insieme ",n(j.a,null,"F")," è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando."),n("p",null,"Operazioni tra elementi di ",n(j.a,null,"F")," producono risultati in ",n(j.a,null,O(x())),", che però decaderanno nuovamente a elementi di ",n(j.a,null,"F"),", perdendo informazioni."),n("p",null,"Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.")),n(q.a,{title:"Caratteristiche delle operazioni di macchina"},n("ul",null,n("li",null,"Hanno più di un elemento neutro."),n("li",null,"Un numero ha più opposti."),n("li",null,"Non sono associative."),n("li",null,"Non sono distributive."),n("li",null,"Non vale la legge di annullamento del prodotto."))),n(q.a,{title:"La funzione fl"},n("p",null,"Indica che un valore è soggetto alla precisione di macchina:"),n("p",null,n(j.a,null,O(g()))))),n(H.a,{title:"Errori nelle operazioni di macchina"},n(q.a,{title:"Errore inerente"},n("p",null,"Errore dipendente ",n("b",null,"solo dai dati"),"."),n("p",null,n(N.a,null,"TODO: qual è la formula?")),n("p",null,"È l'errore che si presenterebbe se ",n(j.a,null,O(v())),".")),n(q.a,{title:"Errore algoritmico"},n("p",null,"Errore dipendente ",n("b",null,"solo dalle operazioni effettuate"),"."),n("p",null,n(N.a,null,"TODO: qual è la formula?")),n("p",null,"È l'errore che si presenterebbe se ",n(j.a,null,O(h())),"."))),n(H.a,null,n(q.a,{title:"Problema ben condizionato"},n("p",null,"Un problema poco sensibile all'",n("b",null,"errore inerente"),"."),n(C.a,null,n(j.a,null,O(m()))," è mal condizionato intorno allo 0 e ben condizionato lontano dallo 0.")),n(q.a,{title:"Algoritmo stabile"},n("p",null,"Un algoritmo poco sensibile all'",n("b",null,"errore algoritmico"),"."),n(C.a,null,n("p",null,"Cerchiamo un algoritmo che risolva ",n(j.a,null,O(f())),"."),n("p",null,"Calcolare prima ",n(j.a,null,O(d()))," e poi ",n(j.a,null,O(_()))," porta a una perdita di precisione."),n("p",null,"Calcolare direttamente ",n(j.a,null,O(p()))," non ha alcuna perdita di precisione e rende l'algoritmo ",n("b",null,"più stabile")," del precedente.")))),n(H.a,null,n(q.a,{title:"Indice di condizionamento"},n("p",null,"È il coefficiente di proporzionalità tra i dati e l'",n("b",null,"errore inerente"),"."),n("p",null,"Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione."),n("p",null,"Minore è l'indice di condizionamento, meglio condizionato è un problema.")),n(q.a,{title:"Indice algoritmico"},n("p",null,"È il coefficiente di proporzionalità tra i dati e l'",n("b",null,"errore algoritmico"),"."),n("p",null,"Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione."))),n(H.a,{title:"Le cose più difficili di Algebra Lineare"},n(q.a,{title:"Matrice singolare"},n("p",null,"Matrice con determinante 0."),n("p",null,"Le matrici singolari ",n("b",null,"non sono invertibili"),"."))),n(H.a,{title:"Norme"},n(q.a,{title:"Norma vettoriale"},n("p",null,"Funzione che associa un valore positivo a ogni vettore diverso da 0, e 0 al vettore zero."),n(C.a,null,n("a",{href:"https://it.wikipedia.org/wiki/Norma_(matematica)#/media/File:Vector_norms.svg"},"Esempi su Wikipedia"))),n(q.a,{title:"Norma a infinito"},n("p",null,"Massimo dei valori assoluti di tutti gli elementi del vettore."),n("p",null,n(j.a,null,O(s())))),n(q.a,{title:"Norma a 1"},n("p",null,"Somma dei valori assoluti di tutti gli elementi del vettore."),n("p",null,n(j.a,null,O(c())))),n(q.a,{title:"Norma a 2"},n("p",null,"Radice quadrata della somma dei quadrati di tutti gli elementi del vettore."),n("p",null,n(j.a,null,O(u()))))),n(H.a,null,n(q.a,{title:"Norma matriciale indotta"},n("p",null,"Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero."),n("p",null,"Si ricavano dalle norme vettoriali:"),n("p",null,n(j.a,null,O(a()))),n(C.a,null,n(j.a,null,"sup")," è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le prime lezioni di Analisi?")),n(q.a,{title:"Norma a infinito"},n("p",null,"Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice."),n("p",null,n(j.a,null,O(l())))),n(q.a,{title:"Norma a 1"},n("p",null,"Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice."),n("p",null,n(j.a,null,O(o())))),n(q.a,{title:"Norma a 2"},n("p",null,"Radice quadrata del rango del prodotto tra una matrice e la sua trasposta."),n("p",null,n(j.a,null,O(r()))))),n(H.a,null,n(q.a,{title:"Errore relativo tra vettori e matrici"},n("p",null,"Le norme sono usate per calcolare l'errore relativo tra due vettori o matrici:"),n("p",null,n(j.a,null,O(i()))))),n(H.a,{title:"Fattorizzazione"},n(q.a,{title:"Cos'è?"},n("p",null,"La fattorizzazione è il processo che permette di risolvere sistemi di equazioni lineari rappresentati in forma di matrice."),n("p",null,"Esistono molteplici algoritmi in grado di realizzarla: mentre tutti portano alla stessa soluzione, possono avere ",n("b",null,"velocità")," e ",n("b",null,"indici algoritmici")," diversi."),n("p",null,"Il sistema lineare da risolvere viene diviso in due parti: la ",n("i",null,"matrice dei coefficienti")," e il ",n("i",null,"vettore termine noto"),".")),n(q.a,{title:"Teorema di Rouché-Capélli"},n("p",null))))},e}(L.Component)}.call(this,e("hosL").h)},BSmf:function(n,t,e){"use strict";(function(n){e.d(t,"a",(function(){return l}));var i=e("hosL"),r=e("EfTa"),o=e.n(r),l=function(t){function e(){var n;return(n=t.call(this)||this).state={now:Date.now()},n.timer=null,n}var i,r;r=t,(i=e).prototype=Object.create(r.prototype),i.prototype.constructor=i,i.__proto__=r;var l=e.prototype;return l.componentDidMount=function(){var n=this;this.timer=setInterval((function(){n.setState({now:Date.now()})}),1e3)},l.componentWillUnmount=function(){null!==this.timer&&clearInterval(this.timer)},l.render=function(){var t="Unknown date",e=o.a.timer,i={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){var r=(t=new Date(this.props.to))-this.state.now;r>0?i={milliseconds:r%1e3,seconds:Math.floor(r/1e3)%60,minutes:Math.floor(r/6e4)%60,hours:Math.floor(r/36e5)%24,days:Math.floor(r/864e5)}:(i={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},e+=" "+o.a.expired)}else e+=" "+o.a.unknown;return n("div",{class:e,title:t},n("div",{class:o.a.days+" "+o.a.count},i.days),n("div",{className:o.a.days+" "+o.a.text},"giorni"),n("div",{class:o.a.hours+" "+o.a.count},i.hours),n("div",{className:o.a.hours+" "+o.a.text},"ore"),n("div",{class:o.a.minutes+" "+o.a.count},i.minutes),n("div",{className:o.a.minutes+" "+o.a.text},"minuti"),n("div",{class:o.a.seconds+" "+o.a.count},i.seconds),n("div",{class:o.a.seconds+" "+o.a.text},"secondi"),n("div",{class:o.a.remaining},"rimasti"))},e}(i.Component)}).call(this,e("hosL").h)},EfTa:function(n){n.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"}},HKwK:function(n,t,e){"use strict";(function(n){e.d(t,"a",(function(){return o}));var i=e("r4EX"),r=e.n(i),o=function(t){function e(){return t.apply(this,arguments)||this}var i,o;o=t,(i=e).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o;var l=e.prototype;return l.getStyle=function(){return r.a.panel},l.render=function(){var t=null;return void 0!==this.props.title&&(t=n("h3",null,this.props.title)),n("div",{class:this.getStyle(),id:this.props.id},t,this.props.children)},e}(e("hosL").Component)}).call(this,e("hosL").h)},OMhl:function(n,t,e){"use strict";(function(n){var i=e("p7QU"),r=e.n(i),o=e("QRet"),l=e("8CDw"),a=e("wQ73");t.a=function(t){var e=Object(o.b)(l.a),i=Object(o.b)(a.a);return n("img",{src:"https://latex.codecogs.com/svg.latex?"+(((void 0===t.inline?i:t.inline)?"\\inline":"")+" {\\color{"+e+"} "+t.children+" }"),alt:t.children,title:t.children,class:r.a.latex})}}).call(this,e("hosL").h)},PEwj:function(n,t,e){"use strict";(function(n){var i=e("2w3n"),r=e.n(i);e("hosL");t.a=function(t){return n("div",{class:r.a.example},t.children)}}).call(this,e("hosL").h)},QRet:function(n,t,e){"use strict";function i(n){V.options.__h&&V.options.__h(b);var t=b.__H||(b.__H={__:[],__h:[]});return n>=t.__.length&&t.__.push({}),t.__[n]}function r(n){return o(g,n)}function o(n,t,e){var r=i(x++);return r.__c||(r.__c=b,r.__=[e?e(t):g(void 0,t),function(t){var e=n(r.__[0],t);r.__[0]!==e&&(r.__[0]=e,r.__c.setState({}))}]),r.__}function l(n,t){var e=i(x++);v(e.__H,t)&&(e.__=n,e.__H=t,b.__H.__h.push(e))}function a(n,t){var e=i(x++);v(e.__H,t)&&(e.__=n,e.__H=t,b.__h.push(e))}function u(n){return s((function(){return{current:n}}),[])}function c(n,t,e){a((function(){"function"==typeof n?n(t()):n&&(n.current=t())}),null==e?e:e.concat(n))}function s(n,t){var e=i(x++);return v(e.__H,t)?(e.__H=t,e.__h=n,e.__=n()):e.__}function p(n,t){return s((function(){return n}),t)}function _(n){var t=b.context[n.__c];if(!t)return n.__;var e=i(x++);return null==e.__&&(e.__=!0,t.sub(b)),t.props.value}function d(n,t){V.options.useDebugValue&&V.options.useDebugValue(t?t(n):n)}function f(){z.some((function(n){if(n.__P)try{n.__H.__h.forEach(m),n.__H.__h.forEach(h),n.__H.__h=[]}catch(t){return n.__H.__h=[],V.options.__e(t,n.__v),!0}})),z=[]}function m(n){n.t&&n.t()}function h(n){var t=n.__();"function"==typeof t&&(n.t=t)}function v(n,t){return!n||t.some((function(t,e){return t!==n[e]}))}function g(n,t){return"function"==typeof t?t(n):t}e.d(t,"j",(function(){return r})),e.d(t,"h",(function(){return o})),e.d(t,"d",(function(){return l})),e.d(t,"f",(function(){return a})),e.d(t,"i",(function(){return u})),e.d(t,"e",(function(){return c})),e.d(t,"g",(function(){return s})),e.d(t,"a",(function(){return p})),e.d(t,"b",(function(){return _})),e.d(t,"c",(function(){return d}));var x,b,y,V=e("hosL"),z=[],E=V.options.__r,w=V.options.diffed,A=V.options.__c,L=V.options.unmount;V.options.__r=function(n){E&&E(n),x=0,(b=n.__c).__H&&(b.__H.__h.forEach(m),b.__H.__h.forEach(h),b.__H.__h=[])},V.options.diffed=function(n){w&&w(n);var t=n.__c;if(t){var e=t.__H;e&&e.__h.length&&(1!==z.push(t)&&y===V.options.requestAnimationFrame||((y=V.options.requestAnimationFrame)||function(n){var t,e=function(){clearTimeout(i),cancelAnimationFrame(t),setTimeout(n)},i=setTimeout(e,100);"undefined"!=typeof window&&(t=requestAnimationFrame(e))})(f))}},V.options.__c=function(n,t){t.some((function(n){try{n.__h.forEach(m),n.__h=n.__h.filter((function(n){return!n.__||h(n)}))}catch(e){t.some((function(n){n.__h&&(n.__h=[])})),t=[],V.options.__e(e,n.__v)}})),A&&A(n,t)},V.options.unmount=function(n){L&&L(n);var t=n.__c;if(t){var e=t.__H;if(e)try{e.__.forEach((function(n){return n.t&&n.t()}))}catch(n){V.options.__e(n,t.__v)}}}},eCjK:function(n){n.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},jXlC:function(n,t,e){"use strict";(function(n){e.d(t,"a",(function(){return o}));var i=e("3k98"),r=e.n(i),o=function(t){function e(){return t.apply(this,arguments)||this}var i,o;return o=t,(i=e).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o,e.prototype.render=function(){return n("span",{class:r.a.todo},this.props.children)},e}(e("hosL").Component)}).call(this,e("hosL").h)},lL4N:function(n,t,e){"use strict";(function(n){e.d(t,"a",(function(){return o}));var i=e("eCjK"),r=e.n(i),o=function(t){function e(){return t.apply(this,arguments)||this}var i,o;return o=t,(i=e).prototype=Object.create(o.prototype),i.prototype.constructor=i,i.__proto__=o,e.prototype.render=function(){var t,e=null;return void 0!==this.props.title&&(e=n("h2",null,this.props.title)),t=Array.isArray(this.props.children)?this.props.children.map((function(t){return n("div",{class:r.a.splitchild},t)})):n("div",{class:r.a.splitchild},this.props.children),n("div",{class:r.a.split},e,n("div",{class:r.a.splitparent},t))},e}(e("hosL").Component)}).call(this,e("hosL").h)},p7QU:function(n){n.exports={latex:"latex__3zlIu"}},r4EX:function(n){n.exports={panel:"panel__7bYPC"}},wQ73:function(n,t,e){"use strict";var i=e("hosL");t.a=Object(i.createContext)(!0)}}]); -//# sourceMappingURL=route-calcoloNumerico.chunk.b5b36.js.map \ No newline at end of file +//# sourceMappingURL=route-calcoloNumerico.chunk.b64db.js.map \ No newline at end of file diff --git a/docs/route-calcoloNumerico.chunk.b5b36.js.map b/docs/route-calcoloNumerico.chunk.b64db.js.map similarity index 99% rename from docs/route-calcoloNumerico.chunk.b5b36.js.map rename to docs/route-calcoloNumerico.chunk.b64db.js.map index 85e73d7..1ba0c38 100644 --- a/docs/route-calcoloNumerico.chunk.b5b36.js.map +++ b/docs/route-calcoloNumerico.chunk.b64db.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./components/old/todo.css","webpack:///./routes/calcoloNumerico.js","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/old/panel.js","webpack:///./components/Latex.js","webpack:///./components/example.js","webpack:///../src/index.js","webpack:///./components/old/split.css","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/Latex.css","webpack:///./components/old/panel.less","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","r","String","raw","CalcoloNumerico","render","title","href","Component","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","style","parts","milliseconds","seconds","minutes","hours","days","props","to","timeLeft","Math","floor","expired","unknown","class","count","text","remaining","Panel","getStyle","panel","undefined","id","children","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","inline","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","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-calcoloNumerico.chunk.b5b36.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__2PzAa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Timer from \"../components/old/timer\";\n\nconst r = String.raw;\n\nexport default class CalcoloNumerico extends Component {\n render() {\n return (\n
\n

Calcolo Numerico

\n \n \n

\n silvia.bonettini@unimore.it\n

\n
\n \n

\n Su appuntamento.\n

\n
\n
\n \n \n

\n E' composto da:\n

\n
    \n
  • 2 domande sugli argomenti teorici
  • \n
  • 1 domanda di implementazione algoritmo in MATLAB (facoltativa per i punteggi migliori del TBL)
  • \n
\n

\n Prossimo appello:\n \n

\n
\n
\n \n \n

\n Algoritmi che hanno:\n

\n
    \n
  • numeri reali in input e output
  • \n
  • successioni delle quattro operazioni aritmetiche fondamentali come passi
  • \n
\n
\n
\n \n \n

\n Con i numeri floating point può capitare che un certo numero {r`\\alpha`} non sia rappresentato correttamente.\n

\n

\n In tal caso, il numero si indica con {r`\\alpha^*`}.\n

\n
\n \n

\n È la differenza tra il numero desiderato e il numero rappresentato:\n

\n

\n {r`E_a = \\left | \\alpha - \\alpha^* \\right |`}\n

\n \n Vale sempre 0, tranne in caso di underflow o overflow.\n \n
\n \n

\n Indica quanto il numero rappresentato differisce dal numero desiderato:\n

\n

\n {r`\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}`}\n

\n
\n
\n \n \n

\n L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla precisione di macchina:\n

\n

\n {r`E_r \\leq k \\cdot \\beta^{1-t}`}\n

\n
    \n
  • \n \\beta è uguale alla base utilizzata (solitamente 2).\n
  • \n
  • \n t è uguale al numero di cifre della mantissa.\n
  • \n
  • \n k è uguale a 1 se il numero viene rappresentato per troncamento oppure a {r`\\frac{1}{2}`} se viene rappresentato per arrotondamento.\n
  • \n
\n
\n
\n \n \n

\n L'insieme F è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando.\n

\n

\n Operazioni tra elementi di F producono risultati in {r`\\mathbb{R}`}, che però decaderanno nuovamente a elementi di F, perdendo informazioni.\n

\n

\n Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.\n

\n
\n \n
    \n
  • Hanno più di un elemento neutro.
  • \n
  • Un numero ha più opposti.
  • \n
  • Non sono associative.
  • \n
  • Non sono distributive.
  • \n
  • Non vale la legge di annullamento del prodotto.
  • \n
\n
\n \n

\n Indica che un valore è soggetto alla precisione di macchina:\n

\n

\n {r`fl(x) = (x)(1 + \\epsilon_x)`}\n

\n
\n
\n \n \n

\n Errore dipendente solo dai dati.\n

\n

\n TODO: qual è la formula?\n

\n

\n È l'errore che si presenterebbe se {r`\\epsilon_1 = \\epsilon_2 = \\dots = 0`}.\n

\n
\n \n

\n Errore dipendente solo dalle operazioni effettuate.\n

\n

\n TODO: qual è la formula?\n

\n

\n È l'errore che si presenterebbe se {r`\\epsilon_x = \\epsilon_y = \\dots = 0`}.\n

\n
\n
\n \n \n

\n Un problema poco sensibile all'errore inerente.\n

\n \n {r`y = \\frac{1}{x}`} è mal condizionato intorno allo 0 e ben condizionato lontano dallo 0.\n \n
\n \n

\n Un algoritmo poco sensibile all'errore algoritmico.\n

\n \n

\n Cerchiamo un algoritmo che risolva {r`2x = 4`}.\n

\n

\n Calcolare prima {r`t = fl \\left( \\frac{1}{4} \\right)`} e poi {r`x^* = fl ( 2 \\cdot t )`} porta a una perdita di precisione.\n

\n

\n Calcolare direttamente {r`x^* = fl \\left( \\frac{2}{4} \\right)`} non ha alcuna perdita di precisione e rende l'algoritmo più stabile del precedente.\n

\n
\n
\n
\n \n \n

\n È il coefficiente di proporzionalità tra i dati e l'errore inerente.\n

\n

\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

\n

\n Minore è l'indice di condizionamento, meglio condizionato è un problema.\n

\n
\n \n

\n È il coefficiente di proporzionalità tra i dati e l'errore algoritmico.\n

\n

\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

\n
\n
\n \n \n

\n Matrice con determinante 0.\n

\n

\n Le matrici singolari non sono invertibili.\n

\n
\n
\n \n \n

\n Funzione che associa un valore positivo a ogni vettore diverso da 0, e 0 al vettore zero.\n

\n \n Esempi su Wikipedia\n \n
\n \n

\n Massimo dei valori assoluti di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_\\infty = max_{i = 1..n} | x_i |`}\n

\n
\n \n

\n Somma dei valori assoluti di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_1 = \\sum_{i = 1}^n | x_i |`}\n

\n
\n \n

\n Radice quadrata della somma dei quadrati di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_2 = \\sqrt{\\sum_{i = 1}^n x_i^2}`}\n

\n
\n
\n \n \n

\n Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero.\n

\n

\n Si ricavano dalle norme vettoriali:\n

\n

\n {r`\\Vert A \\Vert = sup_{x \\in \\mathbb{R}, x \\neq 0} \\frac{\\Vert A \\cdot x \\Vert}{\\Vert x \\Vert}`}\n

\n \n sup è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le prime lezioni di Analisi?\n \n
\n \n

\n Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice.\n

\n

\n {r`\\Vert A \\Vert_\\infty = max_{i = 1..n} \\sum_{j = 1}^n | a_{ij} |`}\n

\n
\n \n

\n Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice.\n

\n

\n {r`\\Vert A \\Vert_1 = max_{j = 1..n} \\sum_{i = 1}^n | a_{ij} |`}\n

\n
\n \n

\n Radice quadrata del rango del prodotto tra una matrice e la sua trasposta.\n

\n

\n {r`\\Vert A \\Vert_2 = \\sqrt{\\rho ( A^T \\times A ) }`}\n

\n
\n
\n \n \n

\n Le norme sono usate per calcolare l'errore relativo tra due vettori o matrici:\n

\n

\n {r`\\frac{\\Vert x - y \\Vert}{\\Vert x \\Vert}`}\n

\n
\n
\n \n \n

\n La fattorizzazione è il processo che permette di risolvere sistemi di equazioni lineari rappresentati in forma di matrice.\n

\n

\n Esistono molteplici algoritmi in grado di realizzarla: mentre tutti portano alla stessa soluzione, possono avere velocità e indici algoritmici diversi.\n

\n

\n Il sistema lineare da risolvere viene diviso in due parti: la matrice dei coefficienti e il vettore termine noto.\n

\n
\n \n

\n\n

\n
\n
\n
\n )\n }\n}\n","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
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// 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 \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","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{props.children}\n\t\t\t\n\t);\n}\n","import style from \"./Example.less\";\r\nimport {Component} from \"preact\";\r\n\r\nexport default function(props) {\r\n return (\r\n
\r\n {props.children}\r\n
\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} */\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} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} 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 {(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","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./components/Example.less","webpack:///./components/old/todo.css","webpack:///./routes/calcoloNumerico.js","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/old/panel.js","webpack:///./components/Latex.js","webpack:///./components/example.js","webpack:///../src/index.js","webpack:///./components/old/split.css","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/Latex.css","webpack:///./components/old/panel.less","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","r","String","raw","CalcoloNumerico","render","title","href","Component","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","style","parts","milliseconds","seconds","minutes","hours","days","props","to","timeLeft","Math","floor","expired","unknown","class","count","text","remaining","Panel","getStyle","panel","undefined","id","children","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","inline","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","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-calcoloNumerico.chunk.b64db.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"example\":\"example__2PzAa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Timer from \"../components/old/timer\";\n\nconst r = String.raw;\n\nexport default class CalcoloNumerico extends Component {\n render() {\n return (\n
\n

Calcolo Numerico

\n \n \n

\n silvia.bonettini@unimore.it\n

\n
\n \n

\n Su appuntamento.\n

\n
\n
\n \n \n

\n E' composto da:\n

\n
    \n
  • 2 domande sugli argomenti teorici
  • \n
  • 1 domanda di implementazione algoritmo in MATLAB (facoltativa per i punteggi migliori del TBL)
  • \n
\n

\n Prossimo appello:\n \n

\n
\n
\n \n \n

\n Algoritmi che hanno:\n

\n
    \n
  • numeri reali in input e output
  • \n
  • successioni delle quattro operazioni aritmetiche fondamentali come passi
  • \n
\n
\n
\n \n \n

\n Con i numeri floating point può capitare che un certo numero {r`\\alpha`} non sia rappresentato correttamente.\n

\n

\n In tal caso, il numero si indica con {r`\\alpha^*`}.\n

\n
\n \n

\n È la differenza tra il numero desiderato e il numero rappresentato:\n

\n

\n {r`E_a = \\left | \\alpha - \\alpha^* \\right |`}\n

\n \n Vale sempre 0, tranne in caso di underflow o overflow.\n \n
\n \n

\n Indica quanto il numero rappresentato differisce dal numero desiderato:\n

\n

\n {r`\\forall \\alpha \\neq 0, E_r = \\frac{E_a}{\\left | \\alpha \\right |}`}\n

\n
\n
\n \n \n

\n L'errore relativo di un numero reale rappresentato in virgola mobile è minore o uguale alla precisione di macchina:\n

\n

\n {r`E_r \\leq k \\cdot \\beta^{1-t}`}\n

\n
    \n
  • \n \\beta è uguale alla base utilizzata (solitamente 2).\n
  • \n
  • \n t è uguale al numero di cifre della mantissa.\n
  • \n
  • \n k è uguale a 1 se il numero viene rappresentato per troncamento oppure a {r`\\frac{1}{2}`} se viene rappresentato per arrotondamento.\n
  • \n
\n
\n
\n \n \n

\n L'insieme F è il sottoinsieme dei numeri reali rappresentabili in floating point dalla macchina che stiamo usando.\n

\n

\n Operazioni tra elementi di F producono risultati in {r`\\mathbb{R}`}, che però decaderanno nuovamente a elementi di F, perdendo informazioni.\n

\n

\n Il teorema della precisione di macchina si applica quindi anche ai risultati delle operazioni.\n

\n
\n \n
    \n
  • Hanno più di un elemento neutro.
  • \n
  • Un numero ha più opposti.
  • \n
  • Non sono associative.
  • \n
  • Non sono distributive.
  • \n
  • Non vale la legge di annullamento del prodotto.
  • \n
\n
\n \n

\n Indica che un valore è soggetto alla precisione di macchina:\n

\n

\n {r`fl(x) = (x)(1 + \\epsilon_x)`}\n

\n
\n
\n \n \n

\n Errore dipendente solo dai dati.\n

\n

\n TODO: qual è la formula?\n

\n

\n È l'errore che si presenterebbe se {r`\\epsilon_1 = \\epsilon_2 = \\dots = 0`}.\n

\n
\n \n

\n Errore dipendente solo dalle operazioni effettuate.\n

\n

\n TODO: qual è la formula?\n

\n

\n È l'errore che si presenterebbe se {r`\\epsilon_x = \\epsilon_y = \\dots = 0`}.\n

\n
\n
\n \n \n

\n Un problema poco sensibile all'errore inerente.\n

\n \n {r`y = \\frac{1}{x}`} è mal condizionato intorno allo 0 e ben condizionato lontano dallo 0.\n \n
\n \n

\n Un algoritmo poco sensibile all'errore algoritmico.\n

\n \n

\n Cerchiamo un algoritmo che risolva {r`2x = 4`}.\n

\n

\n Calcolare prima {r`t = fl \\left( \\frac{1}{4} \\right)`} e poi {r`x^* = fl ( 2 \\cdot t )`} porta a una perdita di precisione.\n

\n

\n Calcolare direttamente {r`x^* = fl \\left( \\frac{2}{4} \\right)`} non ha alcuna perdita di precisione e rende l'algoritmo più stabile del precedente.\n

\n
\n
\n
\n \n \n

\n È il coefficiente di proporzionalità tra i dati e l'errore inerente.\n

\n

\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

\n

\n Minore è l'indice di condizionamento, meglio condizionato è un problema.\n

\n
\n \n

\n È il coefficiente di proporzionalità tra i dati e l'errore algoritmico.\n

\n

\n Essendo sempre maggiore di uno, si può dire che sia un coefficiente di amplificazione.\n

\n
\n
\n \n \n

\n Matrice con determinante 0.\n

\n

\n Le matrici singolari non sono invertibili.\n

\n
\n
\n \n \n

\n Funzione che associa un valore positivo a ogni vettore diverso da 0, e 0 al vettore zero.\n

\n \n Esempi su Wikipedia\n \n
\n \n

\n Massimo dei valori assoluti di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_\\infty = max_{i = 1..n} | x_i |`}\n

\n
\n \n

\n Somma dei valori assoluti di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_1 = \\sum_{i = 1}^n | x_i |`}\n

\n
\n \n

\n Radice quadrata della somma dei quadrati di tutti gli elementi del vettore.\n

\n

\n {r`\\Vert x \\Vert_2 = \\sqrt{\\sum_{i = 1}^n x_i^2}`}\n

\n
\n
\n \n \n

\n Funzione che associa un valore positivo a ogni matrice diversa da 0, e 0 alla matrice zero.\n

\n

\n Si ricavano dalle norme vettoriali:\n

\n

\n {r`\\Vert A \\Vert = sup_{x \\in \\mathbb{R}, x \\neq 0} \\frac{\\Vert A \\cdot x \\Vert}{\\Vert x \\Vert}`}\n

\n \n sup è l'estremo superiore di un insieme. E' molto simile al massimo: ricordi le prime lezioni di Analisi?\n \n
\n \n

\n Massimo delle somme dei valori assoluti di tutti gli elementi di ogni riga di una matrice.\n

\n

\n {r`\\Vert A \\Vert_\\infty = max_{i = 1..n} \\sum_{j = 1}^n | a_{ij} |`}\n

\n
\n \n

\n Massimo delle somme dei valori assoluti di tutti gli elementi di ogni colonna di una matrice.\n

\n

\n {r`\\Vert A \\Vert_1 = max_{j = 1..n} \\sum_{i = 1}^n | a_{ij} |`}\n

\n
\n \n

\n Radice quadrata del rango del prodotto tra una matrice e la sua trasposta.\n

\n

\n {r`\\Vert A \\Vert_2 = \\sqrt{\\rho ( A^T \\times A ) }`}\n

\n
\n
\n \n \n

\n Le norme sono usate per calcolare l'errore relativo tra due vettori o matrici:\n

\n

\n {r`\\frac{\\Vert x - y \\Vert}{\\Vert x \\Vert}`}\n

\n
\n
\n \n \n

\n La fattorizzazione è il processo che permette di risolvere sistemi di equazioni lineari rappresentati in forma di matrice.\n

\n

\n Esistono molteplici algoritmi in grado di realizzarla: mentre tutti portano alla stessa soluzione, possono avere velocità e indici algoritmici diversi.\n

\n

\n Il sistema lineare da risolvere viene diviso in due parti: la matrice dei coefficienti e il vettore termine noto.\n

\n
\n \n

\n\n

\n
\n
\n
\n )\n }\n}\n","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
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// 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 \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","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{props.children}\n\t\t\t\n\t);\n}\n","import style from \"./Example.less\";\r\nimport {Component} from \"preact\";\r\n\r\nexport default function(props) {\r\n return (\r\n
\r\n {props.children}\r\n
\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} */\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} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} 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 {(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","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-fisica.chunk.31dee.css b/docs/route-fisica.chunk.598fe.css similarity index 80% rename from docs/route-fisica.chunk.31dee.css rename to docs/route-fisica.chunk.598fe.css index 4a53900..aff7e34 100644 --- a/docs/route-fisica.chunk.31dee.css +++ b/docs/route-fisica.chunk.598fe.css @@ -1 +1 @@ -.latex__3zlIu{display:inline-block;vertical-align:middle}.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.plus__2u13i{color:#ff7d7d}.minus__2EaF0{color:#7d7dff}.todo__1UVRh{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0} \ No newline at end of file +.latex__3zlIu{display:inline-block;vertical-align:middle}.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.plus__2u13i{color:#ff7d7d}.minus__2EaF0{color:#7d7dff}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0} \ No newline at end of file diff --git a/docs/route-fisica.chunk.1ad2c.esm.js b/docs/route-fisica.chunk.953ff.esm.js similarity index 99% rename from docs/route-fisica.chunk.1ad2c.esm.js rename to docs/route-fisica.chunk.953ff.esm.js index c9931ca..e2fba5e 100644 --- a/docs/route-fisica.chunk.1ad2c.esm.js +++ b/docs/route-fisica.chunk.953ff.esm.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{"3k98":function(e){e.exports={todo:"todo__1UVRh"}},"56OW":function(e){e.exports={plus:"plus__2u13i"}},HKwK:function(e,l,a){"use strict";(function(e){a.d(l,"a",(function(){return o}));var n=a("r4EX"),i=a.n(n),t=a("hosL");class o extends t.Component{getStyle(){return i.a.panel}render(){let l=null;return void 0!==this.props.title&&(l=e("h3",null,this.props.title)),e("div",{class:this.getStyle(),id:this.props.id},l,this.props.children)}}}).call(this,a("hosL").h)},OMhl:function(e,l,a){"use strict";(function(e){var n=a("p7QU"),i=a.n(n),t=a("QRet"),o=a("8CDw"),r=a("wQ73");l.a=function(l){let a,n=Object(t.b)(o.a),u=Object(t.b)(r.a);return a=void 0===l.inline?u:l.inline,e("img",{src:`https://latex.codecogs.com/svg.latex?${`${a?"\\inline":""} {\\color{${n}} ${l.children} }`}`,alt:l.children,title:l.children,class:i.a.latex})}}).call(this,a("hosL").h)},QRet:function(e,l,a){"use strict";function n(e){q.options.__h&&q.options.__h(b);var l=b.__H||(b.__H={__:[],__h:[]});return e>=l.__.length&&l.__.push({}),l.__[e]}function i(e){return t(h,e)}function t(e,l,a){var i=n(z++);return i.__c||(i.__c=b,i.__=[a?a(l):h(void 0,l),function(l){var a=e(i.__[0],l);i.__[0]!==a&&(i.__[0]=a,i.__c.setState({}))}]),i.__}function o(e,l){var a=n(z++);_(a.__H,l)&&(a.__=e,a.__H=l,b.__H.__h.push(a))}function r(e,l){var a=n(z++);_(a.__H,l)&&(a.__=e,a.__H=l,b.__h.push(a))}function u(e){return s((function(){return{current:e}}),[])}function c(e,l,a){r((function(){"function"==typeof e?e(l()):e&&(e.current=l())}),null==a?a:a.concat(e))}function s(e,l){var a=n(z++);return _(a.__H,l)?(a.__H=l,a.__h=e,a.__=e()):a.__}function p(e,l){return s((function(){return e}),l)}function d(e){var l=b.context[e.__c];if(!l)return e.__;var a=n(z++);return null==a.__&&(a.__=!0,l.sub(b)),l.props.value}function m(e,l){q.options.useDebugValue&&q.options.useDebugValue(l?l(e):e)}function v(){C.some((function(e){if(e.__P)try{e.__H.__h.forEach(f),e.__H.__h.forEach(g),e.__H.__h=[]}catch(l){return e.__H.__h=[],q.options.__e(l,e.__v),!0}})),C=[]}function f(e){e.t&&e.t()}function g(e){var l=e.__();"function"==typeof l&&(e.t=l)}function _(e,l){return!e||l.some((function(l,a){return l!==e[a]}))}function h(e,l){return"function"==typeof l?l(e):l}a.d(l,"j",(function(){return i})),a.d(l,"h",(function(){return t})),a.d(l,"d",(function(){return o})),a.d(l,"f",(function(){return r})),a.d(l,"i",(function(){return u})),a.d(l,"e",(function(){return c})),a.d(l,"g",(function(){return s})),a.d(l,"a",(function(){return p})),a.d(l,"b",(function(){return d})),a.d(l,"c",(function(){return m}));var z,b,L,q=a("hosL"),C=[],D=q.options.__r,E=q.options.diffed,F=q.options.__c,A=q.options.unmount;q.options.__r=function(e){D&&D(e),z=0,(b=e.__c).__H&&(b.__H.__h.forEach(f),b.__H.__h.forEach(g),b.__H.__h=[])},q.options.diffed=function(e){E&&E(e);var l=e.__c;if(l){var a=l.__H;a&&a.__h.length&&(1!==C.push(l)&&L===q.options.requestAnimationFrame||((L=q.options.requestAnimationFrame)||function(e){var l,a=function(){clearTimeout(n),cancelAnimationFrame(l),setTimeout(e)},n=setTimeout(a,100);"undefined"!=typeof window&&(l=requestAnimationFrame(a))})(v))}},q.options.__c=function(e,l){l.some((function(e){try{e.__h.forEach(f),e.__h=e.__h.filter((function(e){return!e.__||g(e)}))}catch(a){l.some((function(e){e.__h&&(e.__h=[])})),l=[],q.options.__e(a,e.__v)}})),F&&F(e,l)},q.options.unmount=function(e){A&&A(e);var l=e.__c;if(l){var a=l.__H;if(a)try{a.__.forEach((function(e){return e.t&&e.t()}))}catch(e){q.options.__e(e,l.__v)}}}},UEJU:function(e,l,a){"use strict";(function(e){a.d(l,"a",(function(){return o}));var n=a("nhUl"),i=a.n(n),t=a("hosL");class o extends t.Component{render(){return e("span",{class:i.a.minus},this.props.children)}}}).call(this,a("hosL").h)},YJDv:function(e,l,a){"use strict";a.r(l),function(e){a.d(l,"default",(function(){return Rl}));var n=a("hosL"),i=a("OMhl"),t=a("HKwK"),o=a("lL4N"),r=a("h7i1"),u=a("UEJU"),c=a("jXlC"),s=a("wQ73");let p,d,m,v,f,g,_,h,z,b,L,q,C,D,E,F,A,P,S,I,w,k,x,B,N,U,V,H,T,R,y,M,O,Q,j,K,G,J,W,X,$,Y,Z,ee,le,ae,ne,ie,te,oe,re,ue,ce,se,pe,de,me,ve,fe,ge,_e,he,ze,be,Le,qe,Ce,De,Ee,Fe,Ae,Pe,Se,Ie,we,ke,xe,Be,Ne,Ue,Ve,He,Te,Re,ye,Me,Oe,Qe,je,Ke,Ge,Je,We,Xe,$e,Ye,Ze,el,ll,al,nl,il,tl,ol,rl,ul,cl,sl,pl,dl,ml,vl,fl,gl,_l,hl,zl,bl,Ll,ql,Cl,Dl,El,Fl,Al,Pl,Sl,Il,wl,kl,xl,Bl,Nl,Ul,Vl,Hl=e=>e;const Tl=String.raw;class Rl extends n.Component{render(){return e(s.a.Provider,{value:!1},e("div",null,e("h1",null,"Fisica"),e(o.a,{title:"Vettori"},e(t.a,{title:"Componenti cartesiane"},e("p",null,"Usa le regole base della trigonometria:"),e("p",null,e(i.a,null,Tl(p||(p=Hl`\vec{v} = \vec{v}_x + \vec{v}_y`)))),e("p",null,e(i.a,null,Tl(d||(d=Hl`\left | \vec{v}_x \right | = \left | \vec{v} \right | \sin \alpha`)))),e("p",null,e(i.a,null,Tl(m||(m=Hl`\left | \vec{v}_y \right | = \left | \vec{v} \right | \cos \alpha`))))),e(t.a,{title:"Somma"},e("p",null,"Scomponi in componenti, poi sommali:"),e("p",null,e(i.a,null,Tl(v||(v=Hl`\vec{v} + \vec{w} = (\vec{v}_x + \vec{w}_x) + (\vec{v}_y + \vec{w}_y)`)))),e("p",null,"Produce il vettore risultante dall'applicazione della regola del parallelogramma.")),e(t.a,{title:"Differenza"},e("p",null,"Alla fine è sempre una somma:"),e("p",null,e(i.a,null,Tl(f||(f=Hl`\vec{v} - \vec{w} = (\vec{v}_x - \vec{w}_x) + (\vec{v}_y - \vec{w}_y)`)))),e("p",null,"Produce il vettore che parte da ",e(i.a,null,"w")," e arriva a ",e(i.a,null,"v"),".")),e(t.a,{title:"Prodotto scalare"},e("p",null,"Si chiama scalare perchè il risultato è uno scalare, non un vettore."),e("p",null,e(i.a,null,Tl(g||(g=Hl`\vec{v} \cdot \vec{w} = \left | \vec{v} \right | \left | \vec{w} \right | \cos \alpha`)))),e("p",null,"Produce il modulo della proiezione di ",e(i.a,null,Tl(_||(_=Hl`\vec{a}`)))," su ",e(i.a,null,Tl(h||(h=Hl`\vec{b}`))),".")),e(t.a,{title:"Prodotto vettoriale"},e("p",null,"Si chiama vettoriale perchè il risultato è un altro vettore."),e("ul",null,e("li",null,e(i.a,null,Tl(z||(z=Hl`\vec{c} = \vec{a} \times \vec{b}`)))),e("li",null,e(i.a,null,Tl(b||(b=Hl`\left | \vec{c} \right | = \left | \vec{a} \right | \cdot \left | \vec{b} \right | \cdot \sin(\alpha)`)))),e("li",null,e("a",{href:"https://it.wikipedia.org/wiki/Regola_della_mano_destra"},"Regola della mano destra"))),e("p",null,"Non è commutativo!"))),e(o.a,{title:"Leggi di Newton"},e(t.a,{title:"1ᵃ: Inerzia"},e("p",null,"Se un corpo puntiforme ha forza risultante nulla, allora la sua velocità non cambia."),e("p",null,e(i.a,null,Tl(L||(L=Hl`\Sigma \vec{F} = 0 \Longleftrightarrow \Delta v = 0`))))),e(t.a,{title:"2ᵃ: Proporzionalità"},e("p",null,"La forza risultante di un corpo è direttamente proporzionale alla sua accelerazione, e la costante di proporzionalità è la ",e("i",null,"massa"),"."),e("p",null,e(i.a,null,Tl(q||(q=Hl`\Sigma \vec{F} = m \vec{a}`))))),e(t.a,{title:"3ᵃ: Azione e reazione"},e("p",null,"Due corpi esercitano forze uguali e opposte uno sull'altro."),e("p",null,e(i.a,null,Tl(C||(C=Hl`\vec{F}_{21} = -\vec{F}_{12}`)))))),e(o.a,{title:"Forza di gravità"},e(t.a,{title:"Tra due corpi"},e("p",null,"Due corpi puntiformi si attirano uno verso l'altro con forza:"),e("p",null,e(i.a,null,Tl(D||(D=Hl`\left | \vec{F} \right | = G \frac{m_1 m_2}{s^2}`)))),e("p",null,e(i.a,null,"G")," è la ",e("i",null,"costante di gravitazione universale")," e vale:"),e("p",null,e(i.a,null,Tl(E||(E=Hl`G = 6.67 \cdot 10^{-11} \frac{N m^2}{{kg}^2}`))))),e(t.a,{title:"Verso la Terra"},e("p",null,"Se nel sistema di riferimento consideriamo la Terra ferma, allora un corpo è attratto verso la Terra con forza ",e("i",null,"peso")," uguale a:"),e("p",null,e(i.a,null,Tl(F||(F=Hl`\left | \vec{F} \right | = g m`)))),e("p",null,e(i.a,null,"g")," è la ",e("i",null,"costante di gravità")," della Terra, e vale:"),e("p",null,e(i.a,null,Tl(A||(A=Hl`g = 9.81 \frac{m}{s^2}`))))),e(t.a,{title:"Su pianeti diversi"},e("p",null,"Per pianeti diversi dalla Terra vale la stessa regola:"),e("p",null,e(i.a,null,Tl(P||(P=Hl`\left | \vec{F} \right | = g m`)))),e("p",null,"L'unica differenza è che cambia la ",e("i",null,"costante di gravità"),":"),e("p",null,e(i.a,null,Tl(S||(S=Hl`g_{luna} = 1.62 \frac{m}{s^2}`)))),e("p",null,e(i.a,null,Tl(I||(I=Hl`g_{marte} = 3.71 \frac{m}{s^2}`)))))),e(o.a,{title:"Forze di contatto"},e(t.a,{title:"Normale"},e("p",null,"Si oppone alle forze applicate alla superficie di contatto."),e("p",null,"Un libro appoggiato su un tavolo ha la ",e("b",null,"forza di gravità")," che lo attira verso il terreno e la ",e("b",null,"forza normale")," che lo trattiene dal cadere.")),e(t.a,{title:"Attrito statico"},e("p",null,"Impedisce a un corpo di muoversi se non viene spinto da una forza che supera una certa soglia:"),e("p",null,e(i.a,null,Tl(w||(w=Hl`\left | \vec{F} \right | \leq \mu_{s} \left | \vec{F}_{normale} \right |`))))),e(t.a,{title:"Attrito dinamico"},e("p",null,"Rallenta i corpi che si stanno muovendo finchè essi non si fermano:"),e("p",null,e(i.a,null,Tl(k||(k=Hl`\left | \vec{F} \right | \leq \mu_{d} \left | \vec{F}_{normale} \right |`))))),e(t.a,{title:"Tensione"},e("p",null,"E' forza trasmessa tra due estremi di una fune."),e("p",null,"Può essere redirezionata per mezzo di carrucole.")),e(t.a,{title:"Elastica"},e("p",null,"Una molla cerca sempre di tornare alla sua posizione indeformata con forza:"),e("p",null,e(i.a,null,Tl(x||(x=Hl`F = -k x`)))),e("p",null,"(E' negativa perchè la forza è opposta a quella applicata per deformarla.)"))),e(o.a,{title:"Cinematica"},e(t.a,{title:"Spostamento"},e("p",null,"È un vettore che indica la posizione di un corpo rispetto a un'origine."),e("p",null,e(i.a,null,Tl(B||(B=Hl`\Delta \vec{s} = \vec{s}(fine) - \vec{s}(inizio)`))))),e(t.a,{title:"Velocità"},e("p",null,"È un vettore che misura la variazione di posizione nel tempo."),e("p",null,e(i.a,null,Tl(N||(N=Hl`\vec{v} = \frac{\Delta \vec{s}}{\Delta t}`)))),e("p",null,"Se si considera un intervallo di tempo infinitesimale si dice ",e("i",null,"velocità istantanea"),":"),e("p",null,e(i.a,null,Tl(U||(U=Hl`\vec{v} = \lim_{\Delta t \to 0} \frac{\Delta \vec{s}}{\Delta t} = \frac{d \vec{s}}{dt}`))))),e(t.a,{title:"Accelerazione"},e("p",null,"È un vettore che misura la variazione di velocità nel tempo."),e("p",null,e(i.a,null,Tl(V||(V=Hl`\vec{a} = \frac{\Delta \vec{v}}{\Delta t}`)))),e("p",null,"Se si considera un intervallo di tempo infinitesimale si dice ",e("i",null,"accelerazione istantanea"),":"),e("p",null,e(i.a,null,Tl(H||(H=Hl`\vec{a} = \lim_{\Delta v \to 0} \frac{\Delta \vec{v}}{\Delta t} = \frac{d \vec{v}}{d t} = \frac{d^2 \vec{s}}{d t^2}`))))),e(t.a,{title:e("span",null,"Quantità di moto ",e("small",null,"(momento lineare)"))},e("p",null,"La quantità di moto è una proprietà vettoriale dei corpi:"),e("p",null,e(i.a,null,Tl(T||(T=Hl`\vec{p} = m \vec{v}`)))),e("p",null,"Se la forza risultante è nulla, la quantità di moto non cambia."),e("p",null,e(i.a,null,Tl(R||(R=Hl`\Sigma \vec{F} = 0 \Longleftrightarrow \Delta \vec{p} = 0`)))))),e(o.a,{title:"Moto rettilineo uniforme"},e(t.a,{title:"Spostamento"},e("p",null,"La ",e("i",null,"legge oraria")," è:"),e("p",null,e(i.a,null,Tl(y||(y=Hl`s(t) = v \cdot \Delta t + s(0)`))))),e(t.a,{title:"Velocità"},e("p",null,"È costante:"),e("p",null,e(i.a,null,Tl(M||(M=Hl`v(t) = k`))))),e(t.a,{title:"Accelerazione"},e("p",null,"La velocità non varia:"),e("p",null,e(i.a,null,Tl(O||(O=Hl`a(t) = 0`))))),e(t.a,{title:"Forze"},e("p",null,"Si applica la prima legge di Newton:"),e("p",null,e(i.a,null,"f(t) = 0")))),e(o.a,{title:"Moto rettilineo uniformemente accelerato"},e(t.a,{title:"Spostamento"},e("p",null,"La ",e("i",null,"legge oraria")," è:"),e("p",null,e(i.a,null,Tl(Q||(Q=Hl`s(t) = \frac{1}{2} a \cdot (\Delta t)^2 + v(0) \cdot (\Delta t) + s(0)`))))),e(t.a,{title:"Velocità"},e("p",null,"È una retta:"),e("p",null,e(i.a,null,Tl(j||(j=Hl`v(t) = a \Delta t + v(0)`))))),e(t.a,{title:"Accelerazione"},e("p",null,"È costante:"),e("p",null,e(i.a,null,Tl(K||(K=Hl`a(t) = k`))))),e(t.a,{title:"Forze"},e("p",null,"Si applica la prima legge di Newton:"),e("p",null,e(i.a,null,"f(t) = m a")))),e(o.a,{title:"Moto armonico semplice"},e(t.a,{title:"Ampiezza"},e("p",null,"E' la distanza dal centro massima che raggiunge il corpo."),e("p",null,"(L'ampiezza di una sinusoide.)")),e(t.a,{title:"Velocità angolare"},e("p",null,"Indica quanto in fretta cambia la posizione del corpo."),e("p",null,"Dipende dal periodo:"),e("p",null,e(i.a,null,Tl(G||(G=Hl`\omega = \frac{2 \pi}{T}`))))),e(t.a,{title:"Spostamento"},e("p",null,"E' una sinusoide:"),e("p",null,e(i.a,null,Tl(J||(J=Hl`s(t) = A \sin (\omega \cdot t + \phi)`))))),e(t.a,{title:"Velocità"},e("p",null,"E' la sinusoide dello spostamento, sfasata di ",e(i.a,null,Tl(W||(W=Hl`\frac{\pi}{2}`))),":"),e("p",null,e(i.a,null,Tl(X||(X=Hl`v(t) = A \sin (\omega \cdot t + \phi + \frac{\pi}{2})`))))),e(t.a,{title:"Accelerazione"},e("p",null,"E' la sinusoide della velocità, sfasata di ",e(i.a,null,Tl($||($=Hl`\pi`))),":"),e("p",null,e(i.a,null,Tl(Y||(Y=Hl`a(t) = A \sin (\omega \cdot t + \phi + \pi)`))))),e(t.a,{title:"Forze"},e("p",null,"Si applica la prima legge di Newton:"),e("p",null,e(i.a,null,"f(t) = m a")))),e(o.a,{title:"Moti composti"},e(t.a,{title:"Moto parabolico"},e("p",null,"Il moto parabolico è dato sommando un moto rettilineo uniforme sull'asse orizzontale e un moto rettilineo uniformemente accelerato sull'asse verticale.")),e(t.a,{title:"Moto circolare uniforme"},e("p",null,"Il moto parabolico è dato sommando due moti armonici semplici: uno sull'asse X, e l'altro, sfasato di ",e(i.a,null,Tl(Z||(Z=Hl`\frac{\pi}{2}`))),", sull'asse Y."))),e(o.a,{title:"Moto circolare uniforme"},e(t.a,null,e("h3",null,"Velocità angolare"),e("p",null,"Quanto cambia la fase nel tempo."),e("p",null,e(i.a,null,Tl(ee||(ee=Hl`\omega = \frac{2 \pi}{T}`))))),e(t.a,{title:"Fase"},e("p",null,"E' l'angolo percorso dal corpo rispetto alla posizione iniziale."),e("p",null,"Si indica con ",e(i.a,null,Tl(le||(le=Hl`\phi`))),", e generalmente si usa in radianti.")),e(t.a,{title:"Velocità"},e("p",null,"Si applicano le formule per la circonferenza:"),e("p",null,e(i.a,null,Tl(ae||(ae=Hl`v = \frac{\Delta s}{t} = \frac{2 \pi \cdot r}{T} = \omega r`))))),e(t.a,{title:"Accelerazione"},e("p",null,"Il corpo ha sempre un accelerazione verso il centro che gli impedisce di abbandonare il moto:"),e("p",null,e(i.a,null,Tl(ne||(ne=Hl`a = \frac{v^2}{r} = r \cdot \omega^2 = v \cdot \omega`))))),e(t.a,{title:"Forza centripeta"},e("p",null,"È verso il centro e si calcola con:"),e("p",null,e(i.a,null,Tl(ie||(ie=Hl`F = m \cdot a`)))))),e(o.a,{title:"Lavoro ed energia"},e(t.a,{title:"Lavoro"},e("p",null,"E' compiuto da una forza che sposta un corpo."),e("p",null,e(i.a,null,Tl(te||(te=Hl`W = \vec{F} \cdot \vec{s} = F \cdot \Delta s \cdot cos(\alpha )`)))),e("p",null,"(Se la forza non è parallela allo spostamento, il prodotto scalare ci fa considerare solo la componente parallela.)")),e(t.a,{title:"Energia cinetica"},e("p",null,"Un corpo ha energia cinetica in ogni momento uguale a:"),e("p",null,e(i.a,null,Tl(oe||(oe=Hl`E_c = \frac{1}{2} m v^2`)))),e("p",null,"Se una forza effettua lavoro su un corpo, cambia la sua energia cinetica pari al lavoro effettuato:"),e("p",null,e(i.a,null,Tl(re||(re=Hl`\Delta E_c = W`))))),e(t.a,{title:"Energia potenziale gravitazionale"},e("p",null,"Un corpo ha energia potenziale in ogni momento pari a:"),e("p",null,e(i.a,null,Tl(ue||(ue=Hl`E_{p_g} = m \cdot g \cdot h`)))),e("p",null,"(Con ",e(i.a,null,"h")," uguale a un altezza scelta come punto di riferimento.)")),e(t.a,{title:"Energia potenziale elastica"},e("p",null,"Una molla ha sempre energia potenziale elastica pari a:"),e("p",null,e(i.a,null,Tl(ce||(ce=Hl`E_{p_e} = \frac{1}{2} k x^2`))))),e(t.a,{title:"Forze conservative"},e("p",null,"Sono conservative le forze per le quali il lavoro compiuto non dipende dal percorso seguito per andare dalla partenza all'arrivo."),e("p",null,"Ad esempio, è conservativa la ",e("i",null,"forza di gravità"),", ma ",e("b",null,"non")," è conservativa la forza di attrito."),e("p",null,"Se in un sistema ci sono solo forze conservative, allora l'energia meccanica totale si conserva:"),e("p",null,e(i.a,null,Tl(se||(se=Hl`E = E_k + E_p`))))),e(t.a,{title:"Potenza"},e("p",null,"È la velocità di trasferimento di energia:"),e("p",null,e(i.a,null,Tl(pe||(pe=Hl`P = \frac{\Delta E}{\Delta t}`)))))),e(o.a,{title:"Elettrostatica"},e(t.a,{title:"Carica elettrica"},e("p",null,"È una proprietà dei corpi che può essere ",e(r.a,null,"positiva")," o ",e(u.a,null,"negativa"),"."),e("p",null,"Si conserva: in un sistema chiuso la carica totale è costante."),e("p",null,"Esiste un'unità elementare: ",e(i.a,null,Tl(de||(de=Hl`C_{elettrone} = 1.602 \cdot 10^{-19}`))),"."),e("p",null,"Cariche ",e(r.a,null,"opp"),e(u.a,null,"oste")," si attraggono; cariche ",e(r.a,null,"uguali")," si respingono.")),e(t.a,{title:"Conduttori e isolanti"},e("p",null,"Più ",e("a",{href:"https://it.wikipedia.org/wiki/Ione"},"ioni")," ha un corpo, meglio la carica si muove attraverso di esso."),e("p",null,"I corpi in cui la carica si muove bene sono ",e("i",null,"conduttori"),", mentre quelli in cui si muove difficilmente sono ",e("i",null,"isolanti"),"."),e("p",null,e("i",null,"Il corpo umano è un buon conduttore.")))),e(o.a,{title:"Polarizzazione"},e(t.a,{title:"Polarizzazione"},e("p",null,"E' possibile polarizzare un corpo per accumulare la carica di un segno in una certa zona."))),e(o.a,null,e(t.a,{title:"Messa a terra"},e("p",null,"Se un corpo conduttore è in contatto con la Terra, le cariche su di esso saranno ",e("i",null,"equilibrate")," e il corpo diventerà elettricamente neutro (con stesso numero di ",e(r.a,null,"cariche positive")," e ",e(u.a,null,"negative")," all'interno)."))),e(o.a,null,e(t.a,{title:"Polarizzazione per strofinio"},e("p",null,"Strofinando tra loro due corpi isolanti, essi si ",e("i",null,"polarizzeranno per strofinio"),".")),e(t.a,{title:"Polarizzazione per contatto"},e("p",null,"Toccando un conduttore con un corpo carico, il conduttore potrà ",e("i",null,"polarizzarsi per contatto"),".")),e(t.a,{title:"Polarizzazione per induzione"},e("p",null,'Se un corpo conduttore ha cariche "esterne" di un ',e(r.a,null,"certo segno")," vicino, esso avrà tutte le cariche del ",e(u.a,null,"segno opposto")," in equilibrio vicino alle cariche esterne, e tutte le cariche dello ",e(r.a,null,"stesso segno")," più lontano possibile da esse."),e("p",null,"Mettendo a terra il conduttore, nuove cariche del ",e(u.a,null,"segno opposto")," saranno attratte all'interno del corpo per equilibrare le cariche che si sono allontanate."),e("p",null,"Staccando il conduttore da terra e rimuovendo le cariche esterne, esso si ritroverà ",e(u.a,null,"caricato del segno opposto")," rispetto alle cariche esterne."))),e(o.a,{title:"Forza elettrica"},e(t.a,{title:"Legge di Coulomb"},e("p",null,"Due corpi carichi si attraggono tra loro con forza:"),e("p",null,e(i.a,null,Tl(me||(me=Hl`\left | \vec{F}_{elettrica} \right | = \frac{-k \cdot q_1 \cdot q_2}{s^2}`)))),e("p",null,e(i.a,null,Tl(ve||(ve=Hl`k`)))," è la ",e("i",null,"costante di Coulomb"),", e vale ",e(i.a,null,Tl(fe||(fe=Hl`k = 8.99 \cdot 10^9 \frac{N \cdot m^2}{C^2}`))),".")),e(t.a,{title:"Permeabilità dello spazio vuoto"},e("p",null,"La costante ",e(i.a,null,Tl(ge||(ge=Hl`k`)))," è in realtà dipendente da un altra costante, ",e(i.a,null,Tl(_e||(_e=Hl`\epsilon_0`))),", la ",e("i",null,"permeabilità del vuoto"),"."),e("p",null,e(i.a,null,Tl(he||(he=Hl`k = \frac{1}{4 \pi \cdot \epsilon_0}`)))),e("p",null,e(i.a,null,Tl(ze||(ze=Hl`\left | \vec{F}_{elettrica} \right | = \frac{q_1 \cdot q_2}{4 \pi \cdot \epsilon_0 \cdot s^2}`))))),e(t.a,{title:"Campo elettrico"},e("p",null,"Misura che forza viene applicata in ogni punto su una carica unitaria:"),e("p",null,e(i.a,null,Tl(be||(be=Hl`\vec{E} = \frac{\vec{F}_{elettrica}}{q} = \frac{-k \cdot q}{s^2}`))))),e(t.a,{title:"Flusso elettrico"},e("p",null,'È la differenza tra "quanto" campo elettrico ',e(r.a,null,"entra")," e quanto campo elettrico ",e(u.a,null,"esce")," da una certa area."),e("p",null,"In qualsiasi superficie chiusa, il flusso elettrico è uguale alla componente perpendicolare del campo elettrico moltiplicato per l'area."),e("p",null,e(i.a,null,Tl(Le||(Le=Hl`\Phi_E = \vec{E} \cdot \vec{A}`)))),e("p",null,"Se il campo elettrico è uniforme, se ne può calcolare facilmente il valore:"),e("p",null,e(i.a,null,Tl(qe||(qe=Hl`\Phi_E = \vec{E} \cdot \vec{A} = E_\perp \cdot A \cdot \cos(\alpha)`)))),e("p",null,e(c.a,null,"Circa. E' una specie di integrale..."))),e(t.a,{title:"Legge di Gauss per i campi elettrostatici"},e("p",null,"Il flusso elettrico è direttamente proporzionale alla carica presente all'interno della superficie."),e("p",null,e(i.a,null,Tl(Ce||(Ce=Hl`\Phi_E = 4 \pi \cdot k \cdot q = \frac{q}{\epsilon_0}`)))),e("p",null,"Ovvero, i campi elettrostatici sono generati dalle cariche elettriche."))),e(o.a,{title:"Energia elettrica"},e(t.a,{title:"Energia potenziale elettrica"},e("p",null,"Un corpo carico vicino ad altre cariche possiede un'",e("i",null,"energia potenziale elettrica")," ",e(i.a,null,Tl(De||(De=Hl`U_e`))),"."))),e(o.a,{title:"Circuiti elettrici"},e(t.a,{title:e("span",null,"Potenziale elettrico ",e("small",null,"(tensione)"))},e("p",null,"È il valore dell'energia potenziale elettrica per una carica unitaria."),e("p",null,e(i.a,null,Tl(Ee||(Ee=Hl`V = \frac{U_e}{q}`)))),e("p",null,"La sua unità di misura è il Volt (",e(i.a,null,Tl(Fe||(Fe=Hl`V`))),")."),e("p",null,"In una batteria è detto ",e("i",null,"forza elettromotrice"),", e corrisponde al lavoro compiuto da una batteria ideale per spostare una carica unitaria tra i due poli.")),e(t.a,{title:e("span",null,"Corrente elettrica ",e("small",null,"(intensità)"))},e("p",null,"Quanta carica passa attraverso un'area (perpendicolare al flusso) nel tempo."),e("p",null,e(i.a,null,Tl(Ae||(Ae=Hl`I = \frac{\Delta q}{\Delta t}`)))),e("p",null,"Fintanto che c'è differenza di potenziale, ci sarà anche intensità non nulla."),e("p",null,"La sua unità di misura è l'Ampere (",e(i.a,null,Tl(Pe||(Pe=Hl`A`))),").")),e(t.a,{title:e("span",null,"Corrente continua ",e("small",null,"(",e("abbr",{title:"Direct Current"},"DC"),")"))},e("p",null,"Quando in un circuito la direzione della corrente è costante.")),e(t.a,{title:e("span",null,"Corrente alternata ",e("small",null,"(",e("abbr",{title:"Alternate Current"},"AC"),")"))},e("p",null,"Quando in un circuito la direzione della corrente si alterna periodicamente.")),e(t.a,{title:"Potenza elettrica"},e("p",null,"Possiamo calcolare la potenza di un circuito:"),e("p",null,e(i.a,null,Tl(Se||(Se=Hl`P = \frac{\Delta U_e}{\Delta t} = I \cdot \Delta V = I^2 \cdot R = \frac{(\Delta V)^2}{R}`)))))),e(o.a,{title:"Elementi di un circuito"},e(t.a,{title:"Resistore"},e("p",null,"Riduce l'intensità di corrente, e converte parte del potenziale in calore."),e("p",null,"Il potenziale utilizzato è pari a:"),e("p",null,e(i.a,null,Tl(Ie||(Ie=Hl`V = R \cdot I`)))),e("p",null,"Dove ",e(i.a,null,Tl(we||(we=Hl`R`)))," è una costante detta ",e("i",null,"resistenza")," con unità di misura Ohm (",e(i.a,null,Tl(ke||(ke=Hl`\Omega`))),")."),e("p",null,"La resistenza di un conduttore vale:"),e("p",null,e(i.a,null,Tl(xe||(xe=Hl`R = \rho \frac{L_{unghezza}}{A_{rea}}`)))),e("p",null,e(i.a,null,Tl(Be||(Be=Hl`\rho`)))," è la ",e("i",null,"resistività")," del materiale, e varia in base alla temperatura:"),e("p",null,e(i.a,null,Tl(Ne||(Ne=Hl`\rho = \rho_0 (1 + \alpha(T - T_0))`))))),e(t.a,{title:"Condensatore"},e("p",null,"Immagazzina potenziale elettrico, permettendo di riutilizzarla in seguito."),e("p",null,"Per farlo, cattura cariche ",e(r.a,null,"positive")," e ",e(u.a,null,"negative")," sulle sue due armature; perchè questo avvenga, deve essere compiuto lavoro."),e("p",null,"Ha una ",e("b",null,"capacità")," caratteristica, che in un condensatore a facce piane parallele è:"),e("p",null,e(i.a,null,Tl(Ue||(Ue=Hl`C = \frac{q_{massima}}{\Delta V}`)))),e("p",null,"Condensatori di capacità maggiore immagazzinano più potenziale con meno carica."),e("p",null,"La capacità aumenta se viene messo qualcosa tra le armature:"),e("p",null,e(i.a,null,Tl(Ve||(Ve=Hl`C_{nuova} = \kappa \cdot \frac{\epsilon_0 \cdot A}{s}`)))),e("p",null,"Dove ",e(i.a,null,Tl(He||(He=Hl`\kappa`)))," è la ",e("i",null,"costante dielettrica relativa")," del materiale inserito, ",e(i.a,null,Tl(Te||(Te=Hl`A`)))," l'area di una armatura e ",e(i.a,null,Tl(Re||(Re=Hl`s`)))," la distanza tra le due armature."),e("p",null,"Se il campo elettrico creatosi tra le due armature supera la ",e("i",null,"rigidità dielettrica")," del condensatore, la carica immagazzinata viene persa e ha luogo un ",e("i",null,"breakdown"),"."),e("p",null,"La sua unità di misura è il Farad (",e(i.a,null,Tl(ye||(ye=Hl`Fa`))),")")),e(t.a,{title:"Amperometro"},e("p",null,"Misura la corrente elettrica se messo in serie."),e("p",null,"(Funzionamento: ha una resistenza interna bassisima in modo da non influire significativamente sulla corrente.)")),e(t.a,{title:"Voltmetro"},e("p",null,"Misura la differenza di potenziale se messo in parallelo."),e("p",null,"(Funzionamento: ha una resistenza altissima in modo da non influire significativamente sulla tensione.)"))),e(o.a,{title:"Principi di Kirchhoff"},e(t.a,{title:"Legge dei nodi"},e("p",null,"Per nodo si intende un qualsiasi punto del circuito."),e("p",null,"Da un nodo entra ed esce la stessa corrente.")),e(t.a,{title:"Legge delle maglie"},e("p",null,"Per maglia si intende un qualsiasi percorso chiuso all'interno del circuito."),e("p",null,"In una maglia chiusa, la somma delle differenze di potenziale è 0."))),e(o.a,{title:"Serie e Parallelo"},e(t.a,{title:"Circuito in serie"},e("p",null,"Più parti di circuito sono ",e("i",null,"in serie")," se sono consecutive e senza biforcazioni."),e("p",null,"Parti di circuito in serie sono attraversate dalla stessa corrente.")),e(t.a,{title:"Circuito in parallelo"},e("p",null,"Più parti di circuito sono ",e("i",null,"in parallelo")," tra loro se hanno lo stesso punto di partenza e lo stesso punto di arrivo."),e("p",null,"Parti di circuito in parallelo hanno la stessa differenza di potenziale."))),e(o.a,{title:"Resistenze equivalenti"},e(t.a,{title:"Circuiti in serie"},e("p",null,"Nei circuiti in serie, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza della somma di tutte le quelle sostituite:"),e("p",null,e(i.a,null,Tl(Me||(Me=Hl`R_{serie} = \sum_{i=1}^{n} R_i`))))),e(t.a,{title:"Circuiti in parallelo"},e("p",null,"Nei circuiti in parallelo, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza di:"),e("p",null,e(i.a,null,Tl(Oe||(Oe=Hl`R_{parallelo} = \frac{1}{\sum_{i=1}^{n} \frac{1}{R_i}}`)))))),e(o.a,{title:"Condensatori equivalenti"},e(t.a,{title:"Circuiti in serie"},e("p",null,"Nei circuiti in serie, tutti i condensatori possono essere sostituiti con uno equivalente dalla capacità di:"),e("p",null,e(i.a,null,Tl(Qe||(Qe=Hl`C_{serie} = \frac{1}{\sum_{i=1}^{n} \frac{1}{C_i}}`))))),e(t.a,{title:"Circuiti in parallelo"},e("p",null,"Nei circuiti in parallelo, tutte i condensatori possono essere sostituite con uno equivalente dalla capacità della somma di tutti quelli sostituiti:"),e("p",null,e(i.a,null,Tl(je||(je=Hl`C_{parallelo} = \sum_{i=1}^{n} C_n`)))))),e(o.a,{title:"Magnetismo"},e(t.a,{title:"Permeabilità magnetica dello spazio vuoto"},e("p",null,"E' una costante fisica fondamentale che rappresenta quanto un materiale si magnetizza facilmente."),e("p",null,e(i.a,null,Tl(Ke||(Ke=Hl`\mu_0 = 4 \pi \cdot 10^{-7} \frac{H}{m}`)))," (",e(i.a,null,Tl(Ge||(Ge=Hl`\frac{N}{A^2}`))),")")),e(t.a,{title:"Campo magnetico"},e("p",null,"Come un campo elettrico, ma per i magneti."),e("p",null,"Il suo simbolo è ",e(i.a,null,Tl(Je||(Je=Hl`B`))),", e la sua unità di misura è il Tesla (",e(i.a,null,"T"),").")),e(t.a,{title:"Flusso magnetico"},e("p",null,'È "quanto" campo magnetico ',e("b",null,"attraversa")," un percorso chiuso."),e("p",null,'Per qualsiasi percorso chiuso, il flusso magnetico è uguale alla somma di tutti i "sottoflussi" magnetici calcolati sui suoi lati.'),e("p",null,e(i.a,null,Tl(We||(We=Hl`\Phi_{B_{i}} = \vec{B} \cdot \vec{L}_n = B \cdot L_i \cdot \sin(\alpha) = B_\parallel \cdot L_i`)))),e("p",null,e(i.a,null,Tl(Xe||(Xe=Hl`\Phi_{B} = \sum_{i=0}^{n_{lati}} \Phi_{Bn}`)))),e("p",null,"La sua unità di misura è il Weber (",e(i.a,null,Tl($e||($e=Hl`Wb = T \cdot m^2`))),").")),e(t.a,{title:"Legge di Gauss per i campi magnetici"},e("p",null,"Il flusso magnetico attraverso qualsiasi superficie chiusa è sempre nullo."),e("p",null,"Ovvero, non esistono monopoli magnetici.")),e(t.a,{title:"Legge di Ampère"},e("p",null,"L'intensità di corrente che attraversa un percorso chiuso è direttamente proporzionale al flusso magnetico dello stesso percorso."),e("p",null,e(i.a,null,Tl(Ye||(Ye=Hl`\Phi_B = \mu_0 \cdot I`)))))),e(o.a,{title:"Forze magnetiche"},e(t.a,{title:e("span",null,"Forza magnetica su carica puntiforme ",e("small",null,"(Forza di Lorentz)"))},e("p",null,"I campi magnetici applicano una forza sulle cariche vicine:"),e("p",null,e(i.a,null,Tl(Ze||(Ze=Hl`\vec{F}_{B} = q \cdot (\vec{v} \times \vec{B})`)))),e("p",null,"Dove ",e(i.a,null,Tl(el||(el=Hl`\vec{B}`)))," è l'intensità del campo magnetico e ",e(i.a,null,Tl(ll||(ll=Hl`\vec{v}`)))," la velocità della carica considerata."),e("p",null,"Si ha una forza massima se la velocità è perpendicolare al campo magnetico."),e("p",null,"In un campo magnetico uniforme, una velocità perpendicolare al campo porta alla creazione di un moto circolare uniforme.")),e(t.a,{title:"Forza magnetica in un filo"},e("p",null,"I campi magnetici influenzano ovviamente anche le cariche presenti in un conduttore:"),e("p",null,e(i.a,null,Tl(al||(al=Hl`\vec{F}_{magnetica} = I \cdot (\vec{L} \times \vec{B})`)))," ",e("a",{href:"https://it.openprof.com/wb/forza_di_lorentz_su_un_filo_percorso_da_corrente?ch=360"},"[1]")),e("p",null,"Dove ",e(i.a,null,Tl(nl||(nl=Hl`I`)))," è la corrente elettrica, ",e(i.a,null,Tl(il||(il=Hl`\vec{L}`)))," è un vettore che punta nella direzione di scorrimento della corrente e ha come modulo la lunghezza del conduttore."))),e(o.a,{title:"Campi magnetici"},e(t.a,{title:"Campo magnetico in una spira"},e("p",null,"Una spira in cui passa corrente produce un campo magnetico perpendicolare al piano creato dalla spira.")),e(t.a,{title:"Campo magnetico di un solenoide"},e("p",null,"Un solenoide sono tante spire avvolte in modo da formare una specie di cilindro."),e("p",null,"All'interno del solenoide si crea un campo (quasi) uniforme:"),e("p",null,e(i.a,null,Tl(tl||(tl=Hl`\left | \vec{B} \right | = \mu_0 \cdot I \cdot \frac{A_{vvolgimenti}}{L_{unghezzafilo}}`))))),e(t.a,{title:"Legge di Oersted"},e("p",null,e("i",null,"Caso particolare della ",e("a",{href:"https://it.wikipedia.org/wiki/Legge_di_Amp%C3%A8re"},"Legge di Ampère"),".")),e("p",null,"Il modulo del campo magnetico ",e(i.a,null,"B")," prodotto da un filo in cui passa una corrente continua ",e(i.a,null,"I")," alla distanza ",e(i.a,null,"s")," è:"),e("p",null,e(i.a,null,Tl(ol||(ol=Hl`\left | \vec{B} \right | = \frac{\mu \cdot I}{2 \pi r}`)))),e("p",null,"Il campo magnetico così creato gira attorno al filo in senso antiorario."),e("p",null,"Due fili attraversati dalla ",e(r.a,null,"stessa corrente")," si attraggono, due fili attraversati da ",e(r.a,null,"corr"),e(u.a,null,"enti")," ",e(r.a,null,"opp"),e(u.a,null,"oste")," si respingono."))),e(o.a,{title:"Induzione elettromagnetica"},e(t.a,{title:"Forza elettromotrice indotta"},e("p",null,"Un conduttore perpendicolare ad un campo magnetico può ottenere una differenza di potenziale se messo in movimento in un direzione perpendicolare alla direzione del conduttore e del campo."),e("p",null,"La differenza di potenziale si crea a causa della forza magnetica, che fa spostare tutti gli elettroni verso un capo del conduttore."),e("p",null,"Essa vale:"),e("p",null,e(i.a,null,Tl(rl||(rl=Hl`\Delta V_{indotta} = v \cdot B \cdot L`)))),e("p",null,"Dove ",e(i.a,null,"v")," è la velocità del conduttore, ",e(i.a,null,"B")," è l'intensità del campo magnetico ed ",e(i.a,null,"L")," è la lunghezza del conduttore.")),e(t.a,{title:"Flusso magnetico in una spira"},e("p",null,"In un campo magnetico ",e(i.a,null,Tl(ul||(ul=Hl`B`)))," uniforme e perpendicolare al piano di una spira di area ",e(i.a,null,Tl(cl||(cl=Hl`A`))),", il flusso magnetico si può determinare con la ",e("i",null,"Legge di Faraday-Neumann-Lenz"),":"),e("p",null,e(i.a,null,Tl(sl||(sl=Hl`\Phi_B = \vec{B} \cdot \vec{A} = B \cdot A \cdot \cos(\alpha)`)))))),e(o.a,null,e(t.a,{title:"Legge di Faraday-Neumann-Lenz"},e("p",null,"Dice che la forza elettromotrice media indotta in un percorso dipende dalla variazione nel tempo del flusso magnetico nello stesso percorso."),e("p",null,e(i.a,null,Tl(pl||(pl=Hl`\Delta V_{indotta} = - \frac{\Delta \Phi_B}{\Delta t}`)))),e("p",null,"Il meno è dovuto alla ",e("a",{href:"https://it.wikipedia.org/wiki/Legge_di_Lenz"},"Legge di Lenz"),", che specifica qualitativamente il verso della forza elettromotrice indotta.")),e(t.a,{title:"Faraday in un solenoide"},e("p",null,"In un solenoide, la forza elettromotrice indotta è uguale a:"),e("p",null,e(i.a,null,Tl(dl||(dl=Hl`\Delta V_{indotta} = - \frac{N \cdot \Delta \Phi_{B_{spira}}}{\Delta t} = - \frac{N \cdot B \cdot A \cdot cos(\alpha)}{\Delta t}`)))),e("p",null,"Dove ",e(i.a,null,Tl(ml||(ml=Hl`N`)))," è il numero delle spire del solenoide.")),e(t.a,{title:"Legge di Ampère-Maxwell"},e("p",null,"Correnti o campi elettrici variabili creano un campo magnetico."))),e(o.a,{title:"Elettromagnetismo"},e(t.a,{title:"Onde elettromagnetiche"},e("p",null,"Nel vuoto, il campo elettrico ",e(i.a,null,Tl(vl||(vl=Hl`E`)))," e il campo magnetico ",e(i.a,null,Tl(fl||(fl=Hl`B`)))," sono perpendicolari tra loro e la direzione di propagazione, e sono entrambe funzioni del tempo."),e("p",null,"Si dice quindi che sono ",e("i",null,"onde elettromagnetiche"),"."),e("p",null,"Esse sono legate dalla relazione:"),e("p",null,e(i.a,null,Tl(gl||(gl=Hl`E = c \cdot B`)))),e("p",null,"Dove ",e(i.a,null,Tl(_l||(_l=Hl`c`)))," è la velocità delle onde (luce) nel vuoto, e a sua volta è uguale a:"),e("p",null,e(i.a,null,Tl(hl||(hl=Hl`c = \frac{1}{\sqrt{\epsilon_0 \cdot \mu_0}} = 3.00 \cdot 10^8 \frac{m}{s}`))))),e(t.a,{title:"Formula delle onde"},e("p",null,e(i.a,null,Tl(zl||(zl=Hl`A(t) = A_{max} \cdot \sin \left ( \frac{2 \pi}{\lambda} - \omega t + \phi \right )`)))),e("p",null,"Dove ",e(i.a,null,Tl(bl||(bl=Hl`A_{max}`)))," è l'ampiezza massima che può avere l'onda, ",e(i.a,null,Tl(Ll||(Ll=Hl`\frac{2 \pi}{\lambda} = \left | \vec{k} \right |`)))," è il vettore d'onda, ",e(i.a,null,Tl(ql||(ql=Hl`\omega`)))," la frequenza angolare e ",e(i.a,null,Tl(Cl||(Cl=Hl`\phi`)))," la fase."))),e(o.a,{title:"Spettroscopia"},e(t.a,{title:"Emissione"},e("p",null,"I solidi, se portati ad alta temperatura, emettono luce con uno ",e("a",{href:"https://it.wikipedia.org/wiki/Spettro_continuo"},"spettro continuo"),"."),e("p",null,"I gas, invece, ad alta temperatura emettono luce solo con particolari lunghezze d'onda."),e("p",null,"In un gas di idrogeno, le lunghezze d'onda emesse sono ricavabili con:"),e("p",null,e(i.a,null,Tl(Dl||(Dl=Hl`\frac{1}{\lambda} = R \left ( \frac{1}{4} - \frac{1}{n^2} \right )`)))),e("p",null,"Con ",e(i.a,null,Tl(El||(El=Hl`R = 1.097 \cdot 10^7 \frac{1}{m}`))),", detta costante di Rydberg, e ",e(i.a,null,Tl(Fl||(Fl=Hl`n`)))," un numero intero.")),e(t.a,{title:"Grandezza quantizzata"},e("p",null,"Una grandezza si dice quantizzata (o discreta) se può assumere solo determinati valori."),e("p",null,"Una grandezza si dice continua se può assumere qualsiasi valore e quindi se non è quantizzata."),e("p",null,"Energia, momento angolare e raggio sono quantizzati."),e("p",null,"Nota costante quantica è ",e(i.a,null,Tl(Al||(Al=Hl`h`))),", la costante di Planck, ovvero il valore minimo possibile per la carica (talvolta espressa come ",e(i.a,null,Tl(Pl||(Pl=Hl`\hbar = \left ( \frac{h}{2 \pi} \right )`))),"."))),e(o.a,null,e(t.a,{title:"Modello di Bohr"},e("p",null,"L'energia degli elettroni è quantizzata."),e("p",null,"Inoltre, per essi è valido che:"),e("p",null,e(i.a,null,Tl(Sl||(Sl=Hl`m \cdot v_n \cdot 2 \pi \cdot r = n \cdot h`)))),e("p",null,"Ancora, il raggio delle orbite è uguale a:"),e("p",null,e(i.a,null,Tl(Il||(Il=Hl`r_n = n^2 \cdot a_0 = n^2 \cdot \frac{\hbar}{m_{elettrone} \cdot k \cdot e^2} `)))),e("p",null,"Con ",e(i.a,null,Tl(wl||(wl=Hl`a_0 = \left ( \frac{h}{2 \pi} \right )^2 \cdot \frac{1}{m_{elettrone} \cdot k \cdot e^2} = 5.29 \cdot 10^{-11} m`))),"."),e("p",null,"Infine, in ogni stato, l'energia è pari a:"),e("p",null,e(i.a,null,Tl(kl||(kl=Hl`E_n = \frac{1}{n^2} \cdot E_1 = - \frac{1}{n^2} \cdot \frac{a_0^2}{2 \cdot m \cdot \hbar^4} = - \frac{1}{n^2} \cdot \frac{m_{elettrone} \cdot k^2 \cdot e^4}{2 \cdot \hbar^2}`)))),e("p",null,"Due elettroni non possono occupare lo stesso stato."),e("p",null,"Questo modello funziona solo per atomi con numero atomico basso. Atomi con molti elettroni hanno comportamenti diversi, descritti dal modello di"))),e(o.a,null,e(t.a,{title:"Nei solidi"},e("p",null,"Nei solidi, le lunghezze d'onda sono talmente tanto vicine da poter essere considerate una banda."),e("p",null,"Possono però comunque avere dei gap dovuti agli intervalli di energia non ammessi."))),e(o.a,{title:"Semiconduttori"},e(t.a,{title:"Semiconduttori"},e("p",null,e(c.a,null,"Refactor this")),e("p",null,"Se la banda di emissione con energia più alta di un corpo è assente o è separata da un gap dell'ordine di grandezza maggiore di ",e(i.a,null,Tl(xl||(xl=Hl`10^1 eV`))),", allora il corpo è un isolante."),e("p",null,"Se invece la banda di emissione si sovrappone a un altra, allora il corpo è un conduttore."),e("p",null,"Se il gap è invece dell'ordine di grandezza di ",e(i.a,null,Tl(Bl||(Bl=Hl`1 eV`))),", allora il corpo è un semiconduttore.")),e(t.a,{title:"Lacune"},e("p",null,"Legami in cui ",e(r.a,null,"mancano elettroni"),"."),e("p",null,e(u.a,null,"Elettroni")," di altri legami possono spostarsi per colmare le ",e(r.a,null,"lacune"),", creandone altre, e spostandole in direzione opposta a quella della corrente.")),e(t.a,{title:"Accettori e donori"},e("p",null,"Se si inserisce in un cristallo semiconduttore si inserisce un atomo con numero atomico diverso, si otterrà:"),e("ul",null,e("li",null,"Con numero atomico maggiore, un semiconduttore di ",e(u.a,null,"tipo N")," con ",e(u.a,null,"elettroni in eccesso")," liberi di scorrere."),e("li",null,"Con numero atomico minore, un semiconduttore di ",e(r.a,null,"tipo P")," con ",e(r.a,null,"lacune in eccesso")," libere di catturare elettroni da altri legami.")),e("p",null,"Maggiore impurezza porta a maggiore conduttività.")),e(t.a,{title:"Temperatura"},e("p",null,"Aumentando la temperatura di un semiconduttore si aumenta la conduttività, perchè eccita le particelle e favorisce il movimento di ",e(u.a,null,"elettroni")," e ",e(r.a,null,"lacune"),"."))),e(o.a,{title:e("span",null,"Ottica ",e("small",null,"(non l'abbiamo fatta)"))},e(t.a,{title:"Assorbimento e riflessione"},e("p",null,"I corpi possono assorbire o riflettere le onde elettromagnetiche che li colpiscono.")),e(t.a,{title:"Corpo nero"},e("p",null,"Un corpo nero è un corpo che assorbe tutte le onde elettromagnetiche che riceve senza rifletterne nessuna."),e("p",null,"Le onde assorbite vengono poi riemesse sotto forma di un onda di ",e(i.a,null,Tl(Nl||(Nl=Hl`\lambda`)))," variabile in base alla temperatura."),e("p",null,e(i.a,null,Tl(Ul||(Ul=Hl`\lambda_{max} \cdot T`)))," è costante.")),e(t.a,{title:"Teoria di Planck per il corpo nero"},e("p",null,"L'energia assorbita e emessa dai corpi neri è quantizzata.")),e(t.a,{title:"Fotone"},e("p",null,"Un onda magnetica con un quanto di energia è detta ",e("i",null,"fotone"),":"),e("p",null,e(i.a,null,Tl(Vl||(Vl=Hl`E_{fotone} = h \cdot f`))))),e(t.a,{title:"Effetto fotoelettrico"},e("p",null,"A volte, i fotoni che colpiscono un metallo possono estrarvi degli elettroni e creare una differenza di potenziale."),e("p",null,"Perchè avvenga, la frequenza deve essere maggiore di una certa soglia."),e("p",null,"Il numero di elettroni estratti dipende dall'intensità dell'onda, mentre l'energia cinetica degli elettroni dipende dalla frequenza."),e("p",null,"Non c'è nessun ritardo tra l'assorbimento del fotone e l'estrazione di elettroni.")))))}}}.call(this,a("hosL").h)},eCjK:function(e){e.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},h7i1:function(e,l,a){"use strict";(function(e){a.d(l,"a",(function(){return o}));var n=a("56OW"),i=a.n(n),t=a("hosL");class o extends t.Component{render(){return e("span",{class:i.a.plus},this.props.children)}}}).call(this,a("hosL").h)},jXlC:function(e,l,a){"use strict";(function(e){a.d(l,"a",(function(){return o}));var n=a("3k98"),i=a.n(n),t=a("hosL");class o extends t.Component{render(){return e("span",{class:i.a.todo},this.props.children)}}}).call(this,a("hosL").h)},lL4N:function(e,l,a){"use strict";(function(e){a.d(l,"a",(function(){return o}));var n=a("eCjK"),i=a.n(n),t=a("hosL");class o extends t.Component{render(){let l,a=null;return void 0!==this.props.title&&(a=e("h2",null,this.props.title)),l=Array.isArray(this.props.children)?this.props.children.map(l=>e("div",{class:i.a.splitchild},l)):e("div",{class:i.a.splitchild},this.props.children),e("div",{class:i.a.split},a,e("div",{class:i.a.splitparent},l))}}}).call(this,a("hosL").h)},nhUl:function(e){e.exports={minus:"minus__2EaF0"}},p7QU:function(e){e.exports={latex:"latex__3zlIu"}},r4EX:function(e){e.exports={panel:"panel__7bYPC"}},wQ73:function(e,l,a){"use strict";var n=a("hosL");l.a=Object(n.createContext)(!0)}}]); -//# sourceMappingURL=route-fisica.chunk.1ad2c.esm.js.map \ No newline at end of file +//# sourceMappingURL=route-fisica.chunk.953ff.esm.js.map \ No newline at end of file diff --git a/docs/route-fisica.chunk.1ad2c.esm.js.map b/docs/route-fisica.chunk.953ff.esm.js.map similarity index 59% rename from docs/route-fisica.chunk.1ad2c.esm.js.map rename to docs/route-fisica.chunk.953ff.esm.js.map index 06f0365..f64d516 100644 --- a/docs/route-fisica.chunk.1ad2c.esm.js.map +++ b/docs/route-fisica.chunk.953ff.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"route-fisica.chunk.1ad2c.esm.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"route-fisica.chunk.953ff.esm.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/route-fisica.chunk.b6e43.js b/docs/route-fisica.chunk.9892b.js similarity index 99% rename from docs/route-fisica.chunk.b6e43.js rename to docs/route-fisica.chunk.9892b.js index 772bb9e..186ad2f 100644 --- a/docs/route-fisica.chunk.b6e43.js +++ b/docs/route-fisica.chunk.9892b.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{"3k98":function(n){n.exports={todo:"todo__1UVRh"}},"56OW":function(n){n.exports={plus:"plus__2u13i"}},HKwK:function(n,e,t){"use strict";(function(n){t.d(e,"a",(function(){return i}));var a=t("r4EX"),l=t.n(a),i=function(e){function t(){return e.apply(this,arguments)||this}var a,i;i=e,(a=t).prototype=Object.create(i.prototype),a.prototype.constructor=a,a.__proto__=i;var r=t.prototype;return r.getStyle=function(){return l.a.panel},r.render=function(){var e=null;return void 0!==this.props.title&&(e=n("h3",null,this.props.title)),n("div",{class:this.getStyle(),id:this.props.id},e,this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},OMhl:function(n,e,t){"use strict";(function(n){var a=t("p7QU"),l=t.n(a),i=t("QRet"),r=t("8CDw"),o=t("wQ73");e.a=function(e){var t=Object(i.b)(r.a),a=Object(i.b)(o.a);return n("img",{src:"https://latex.codecogs.com/svg.latex?"+(((void 0===e.inline?a:e.inline)?"\\inline":"")+" {\\color{"+t+"} "+e.children+" }"),alt:e.children,title:e.children,class:l.a.latex})}}).call(this,t("hosL").h)},QRet:function(n,e,t){"use strict";function a(n){L.options.__h&&L.options.__h(b);var e=b.__H||(b.__H={__:[],__h:[]});return n>=e.__.length&&e.__.push({}),e.__[n]}function l(n){return i(g,n)}function i(n,e,t){var l=a(z++);return l.__c||(l.__c=b,l.__=[t?t(e):g(void 0,e),function(e){var t=n(l.__[0],e);l.__[0]!==t&&(l.__[0]=t,l.__c.setState({}))}]),l.__}function r(n,e){var t=a(z++);h(t.__H,e)&&(t.__=n,t.__H=e,b.__H.__h.push(t))}function o(n,e){var t=a(z++);h(t.__H,e)&&(t.__=n,t.__H=e,b.__h.push(t))}function u(n){return s((function(){return{current:n}}),[])}function c(n,e,t){o((function(){"function"==typeof n?n(e()):n&&(n.current=e())}),null==t?t:t.concat(n))}function s(n,e){var t=a(z++);return h(t.__H,e)?(t.__H=e,t.__h=n,t.__=n()):t.__}function p(n,e){return s((function(){return n}),e)}function d(n){var e=b.context[n.__c];if(!e)return n.__;var t=a(z++);return null==t.__&&(t.__=!0,e.sub(b)),e.props.value}function f(n,e){L.options.useDebugValue&&L.options.useDebugValue(e?e(n):n)}function v(){q.some((function(n){if(n.__P)try{n.__H.__h.forEach(m),n.__H.__h.forEach(_),n.__H.__h=[]}catch(e){return n.__H.__h=[],L.options.__e(e,n.__v),!0}})),q=[]}function m(n){n.t&&n.t()}function _(n){var e=n.__();"function"==typeof e&&(n.t=e)}function h(n,e){return!n||e.some((function(e,t){return e!==n[t]}))}function g(n,e){return"function"==typeof e?e(n):e}t.d(e,"j",(function(){return l})),t.d(e,"h",(function(){return i})),t.d(e,"d",(function(){return r})),t.d(e,"f",(function(){return o})),t.d(e,"i",(function(){return u})),t.d(e,"e",(function(){return c})),t.d(e,"g",(function(){return s})),t.d(e,"a",(function(){return p})),t.d(e,"b",(function(){return d})),t.d(e,"c",(function(){return f}));var z,b,D,L=t("hosL"),q=[],E=L.options.__r,F=L.options.diffed,C=L.options.__c,A=L.options.unmount;L.options.__r=function(n){E&&E(n),z=0,(b=n.__c).__H&&(b.__H.__h.forEach(m),b.__H.__h.forEach(_),b.__H.__h=[])},L.options.diffed=function(n){F&&F(n);var e=n.__c;if(e){var t=e.__H;t&&t.__h.length&&(1!==q.push(e)&&D===L.options.requestAnimationFrame||((D=L.options.requestAnimationFrame)||function(n){var e,t=function(){clearTimeout(a),cancelAnimationFrame(e),setTimeout(n)},a=setTimeout(t,100);"undefined"!=typeof window&&(e=requestAnimationFrame(t))})(v))}},L.options.__c=function(n,e){e.some((function(n){try{n.__h.forEach(m),n.__h=n.__h.filter((function(n){return!n.__||_(n)}))}catch(t){e.some((function(n){n.__h&&(n.__h=[])})),e=[],L.options.__e(t,n.__v)}})),C&&C(n,e)},L.options.unmount=function(n){A&&A(n);var e=n.__c;if(e){var t=e.__H;if(t)try{t.__.forEach((function(n){return n.t&&n.t()}))}catch(n){L.options.__e(n,e.__v)}}}},UEJU:function(n,e,t){"use strict";(function(n){t.d(e,"a",(function(){return i}));var a=t("nhUl"),l=t.n(a),i=function(e){function t(){return e.apply(this,arguments)||this}var a,i;return i=e,(a=t).prototype=Object.create(i.prototype),a.prototype.constructor=a,a.__proto__=i,t.prototype.render=function(){return n("span",{class:l.a.minus},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},YJDv:function(n,e,t){"use strict";t.r(e),function(n){function a(){var n=Se(["E_{fotone} = h cdot f"],["E_{fotone} = h \\cdot f"]);return a=function(){return n},n}function l(){var n=Se(["lambda_{max} cdot T"],["\\lambda_{max} \\cdot T"]);return l=function(){return n},n}function i(){var n=Se(["lambda"],["\\lambda"]);return i=function(){return n},n}function r(){var n=Se(["1 eV"]);return r=function(){return n},n}function o(){var n=Se(["10^1 eV"]);return o=function(){return n},n}function u(){var n=Se(["E_n = \frac{1}{n^2} cdot E_1 = - \frac{1}{n^2} cdot \frac{a_0^2}{2 cdot m cdot hbar^4} = - \frac{1}{n^2} cdot \frac{m_{elettrone} cdot k^2 cdot e^4}{2 cdot hbar^2}"],["E_n = \\frac{1}{n^2} \\cdot E_1 = - \\frac{1}{n^2} \\cdot \\frac{a_0^2}{2 \\cdot m \\cdot \\hbar^4} = - \\frac{1}{n^2} \\cdot \\frac{m_{elettrone} \\cdot k^2 \\cdot e^4}{2 \\cdot \\hbar^2}"]);return u=function(){return n},n}function c(){var n=Se(["a_0 = left ( \frac{h}{2 pi} \right )^2 cdot \frac{1}{m_{elettrone} cdot k cdot e^2} = 5.29 cdot 10^{-11} m"],["a_0 = \\left ( \\frac{h}{2 \\pi} \\right )^2 \\cdot \\frac{1}{m_{elettrone} \\cdot k \\cdot e^2} = 5.29 \\cdot 10^{-11} m"]);return c=function(){return n},n}function s(){var n=Se(["r_n = n^2 cdot a_0 = n^2 cdot \frac{hbar}{m_{elettrone} cdot k cdot e^2} "],["r_n = n^2 \\cdot a_0 = n^2 \\cdot \\frac{\\hbar}{m_{elettrone} \\cdot k \\cdot e^2} "]);return s=function(){return n},n}function p(){var n=Se(["m cdot v_n cdot 2 pi cdot r = n cdot h"],["m \\cdot v_n \\cdot 2 \\pi \\cdot r = n \\cdot h"]);return p=function(){return n},n}function d(){var n=Se(["hbar = left ( \frac{h}{2 pi} \right )"],["\\hbar = \\left ( \\frac{h}{2 \\pi} \\right )"]);return d=function(){return n},n}function f(){var n=Se(["h"]);return f=function(){return n},n}function v(){var n=Se(["n"]);return v=function(){return n},n}function m(){var n=Se(["R = 1.097 cdot 10^7 \frac{1}{m}"],["R = 1.097 \\cdot 10^7 \\frac{1}{m}"]);return m=function(){return n},n}function _(){var n=Se(["\frac{1}{lambda} = R left ( \frac{1}{4} - \frac{1}{n^2} \right )"],["\\frac{1}{\\lambda} = R \\left ( \\frac{1}{4} - \\frac{1}{n^2} \\right )"]);return _=function(){return n},n}function h(){var n=Se(["phi"],["\\phi"]);return h=function(){return n},n}function g(){var n=Se(["omega"],["\\omega"]);return g=function(){return n},n}function z(){var n=Se(["\frac{2 pi}{lambda} = left | \vec{k} \right |"],["\\frac{2 \\pi}{\\lambda} = \\left | \\vec{k} \\right |"]);return z=function(){return n},n}function b(){var n=Se(["A_{max}"]);return b=function(){return n},n}function D(){var n=Se(["A(t) = A_{max} cdot sin left ( \frac{2 pi}{lambda} - omega t + phi \right )"],["A(t) = A_{max} \\cdot \\sin \\left ( \\frac{2 \\pi}{\\lambda} - \\omega t + \\phi \\right )"]);return D=function(){return n},n}function L(){var n=Se(["c = \frac{1}{sqrt{epsilon_0 cdot mu_0}} = 3.00 cdot 10^8 \frac{m}{s}"],["c = \\frac{1}{\\sqrt{\\epsilon_0 \\cdot \\mu_0}} = 3.00 \\cdot 10^8 \\frac{m}{s}"]);return L=function(){return n},n}function q(){var n=Se(["c"]);return q=function(){return n},n}function E(){var n=Se(["E = c cdot B"],["E = c \\cdot B"]);return E=function(){return n},n}function F(){var n=Se(["B"]);return F=function(){return n},n}function C(){var n=Se(["E"]);return C=function(){return n},n}function A(){var n=Se(["N"]);return A=function(){return n},n}function P(){var n=Se(["Delta V_{indotta} = - \frac{N cdot Delta Phi_{B_{spira}}}{Delta t} = - \frac{N cdot B cdot A cdot cos(alpha)}{Delta t}"],["\\Delta V_{indotta} = - \\frac{N \\cdot \\Delta \\Phi_{B_{spira}}}{\\Delta t} = - \\frac{N \\cdot B \\cdot A \\cdot cos(\\alpha)}{\\Delta t}"]);return P=function(){return n},n}function y(){var n=Se(["Delta V_{indotta} = - \frac{Delta Phi_B}{Delta t}"],["\\Delta V_{indotta} = - \\frac{\\Delta \\Phi_B}{\\Delta t}"]);return y=function(){return n},n}function w(){var n=Se(["Phi_B = \vec{B} cdot \vec{A} = B cdot A cdot cos(alpha)"],["\\Phi_B = \\vec{B} \\cdot \\vec{A} = B \\cdot A \\cdot \\cos(\\alpha)"]);return w=function(){return n},n}function S(){var n=Se(["A"]);return S=function(){return n},n}function I(){var n=Se(["B"]);return I=function(){return n},n}function k(){var n=Se(["Delta V_{indotta} = v cdot B cdot L"],["\\Delta V_{indotta} = v \\cdot B \\cdot L"]);return k=function(){return n},n}function B(){var n=Se(["left | \vec{B} \right | = \frac{mu cdot I}{2 pi r}"],["\\left | \\vec{B} \\right | = \\frac{\\mu \\cdot I}{2 \\pi r}"]);return B=function(){return n},n}function x(){var n=Se(["left | \vec{B} \right | = mu_0 cdot I cdot \frac{A_{vvolgimenti}}{L_{unghezzafilo}}"],["\\left | \\vec{B} \\right | = \\mu_0 \\cdot I \\cdot \\frac{A_{vvolgimenti}}{L_{unghezzafilo}}"]);return x=function(){return n},n}function V(){var n=Se(["\vec{L}"],["\\vec{L}"]);return V=function(){return n},n}function R(){var n=Se(["I"]);return R=function(){return n},n}function N(){var n=Se(["\vec{F}_{magnetica} = I cdot (\vec{L} \times \vec{B})"],["\\vec{F}_{magnetica} = I \\cdot (\\vec{L} \\times \\vec{B})"]);return N=function(){return n},n}function T(){var n=Se(["\vec{v}"],["\\vec{v}"]);return T=function(){return n},n}function U(){var n=Se(["\vec{B}"],["\\vec{B}"]);return U=function(){return n},n}function H(){var n=Se(["\vec{F}_{B} = q cdot (\vec{v} \times \vec{B})"],["\\vec{F}_{B} = q \\cdot (\\vec{v} \\times \\vec{B})"]);return H=function(){return n},n}function O(){var n=Se(["Phi_B = mu_0 cdot I"],["\\Phi_B = \\mu_0 \\cdot I"]);return O=function(){return n},n}function M(){var n=Se(["Wb = T cdot m^2"],["Wb = T \\cdot m^2"]);return M=function(){return n},n}function j(){var n=Se(["Phi_{B} = sum_{i=0}^{n_{lati}} Phi_{Bn}"],["\\Phi_{B} = \\sum_{i=0}^{n_{lati}} \\Phi_{Bn}"]);return j=function(){return n},n}function Q(){var n=Se(["Phi_{B_{i}} = \vec{B} cdot \vec{L}_n = B cdot L_i cdot sin(alpha) = B_parallel cdot L_i"],["\\Phi_{B_{i}} = \\vec{B} \\cdot \\vec{L}_n = B \\cdot L_i \\cdot \\sin(\\alpha) = B_\\parallel \\cdot L_i"]);return Q=function(){return n},n}function W(){var n=Se(["B"]);return W=function(){return n},n}function G(){var n=Se(["\frac{N}{A^2}"],["\\frac{N}{A^2}"]);return G=function(){return n},n}function K(){var n=Se(["mu_0 = 4 pi cdot 10^{-7} \frac{H}{m}"],["\\mu_0 = 4 \\pi \\cdot 10^{-7} \\frac{H}{m}"]);return K=function(){return n},n}function J(){var n=Se(["C_{parallelo} = sum_{i=1}^{n} C_n"],["C_{parallelo} = \\sum_{i=1}^{n} C_n"]);return J=function(){return n},n}function X(){var n=Se(["C_{serie} = \frac{1}{sum_{i=1}^{n} \frac{1}{C_i}}"],["C_{serie} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{C_i}}"]);return X=function(){return n},n}function Y(){var n=Se(["R_{parallelo} = \frac{1}{sum_{i=1}^{n} \frac{1}{R_i}}"],["R_{parallelo} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{R_i}}"]);return Y=function(){return n},n}function Z(){var n=Se(["R_{serie} = sum_{i=1}^{n} R_i"],["R_{serie} = \\sum_{i=1}^{n} R_i"]);return Z=function(){return n},n}function $(){var n=Se(["Fa"]);return $=function(){return n},n}function nn(){var n=Se(["s"]);return nn=function(){return n},n}function en(){var n=Se(["A"]);return en=function(){return n},n}function tn(){var n=Se(["kappa"],["\\kappa"]);return tn=function(){return n},n}function an(){var n=Se(["C_{nuova} = kappa cdot \frac{epsilon_0 cdot A}{s}"],["C_{nuova} = \\kappa \\cdot \\frac{\\epsilon_0 \\cdot A}{s}"]);return an=function(){return n},n}function ln(){var n=Se(["C = \frac{q_{massima}}{Delta V}"],["C = \\frac{q_{massima}}{\\Delta V}"]);return ln=function(){return n},n}function rn(){var n=Se(["\rho = \rho_0 (1 + alpha(T - T_0))"],["\\rho = \\rho_0 (1 + \\alpha(T - T_0))"]);return rn=function(){return n},n}function on(){var n=Se(["\rho"],["\\rho"]);return on=function(){return n},n}function un(){var n=Se(["R = \rho \frac{L_{unghezza}}{A_{rea}}"],["R = \\rho \\frac{L_{unghezza}}{A_{rea}}"]);return un=function(){return n},n}function cn(){var n=Se(["Omega"],["\\Omega"]);return cn=function(){return n},n}function sn(){var n=Se(["R"]);return sn=function(){return n},n}function pn(){var n=Se(["V = R cdot I"],["V = R \\cdot I"]);return pn=function(){return n},n}function dn(){var n=Se(["P = \frac{Delta U_e}{Delta t} = I cdot Delta V = I^2 cdot R = \frac{(Delta V)^2}{R}"],["P = \\frac{\\Delta U_e}{\\Delta t} = I \\cdot \\Delta V = I^2 \\cdot R = \\frac{(\\Delta V)^2}{R}"]);return dn=function(){return n},n}function fn(){var n=Se(["A"]);return fn=function(){return n},n}function vn(){var n=Se(["I = \frac{Delta q}{Delta t}"],["I = \\frac{\\Delta q}{\\Delta t}"]);return vn=function(){return n},n}function mn(){var n=Se(["V"]);return mn=function(){return n},n}function _n(){var n=Se(["V = \frac{U_e}{q}"],["V = \\frac{U_e}{q}"]);return _n=function(){return n},n}function hn(){var n=Se(["U_e"]);return hn=function(){return n},n}function gn(){var n=Se(["Phi_E = 4 pi cdot k cdot q = \frac{q}{epsilon_0}"],["\\Phi_E = 4 \\pi \\cdot k \\cdot q = \\frac{q}{\\epsilon_0}"]);return gn=function(){return n},n}function zn(){var n=Se(["Phi_E = \vec{E} cdot \vec{A} = E_perp cdot A cdot cos(alpha)"],["\\Phi_E = \\vec{E} \\cdot \\vec{A} = E_\\perp \\cdot A \\cdot \\cos(\\alpha)"]);return zn=function(){return n},n}function bn(){var n=Se(["Phi_E = \vec{E} cdot \vec{A}"],["\\Phi_E = \\vec{E} \\cdot \\vec{A}"]);return bn=function(){return n},n}function Dn(){var n=Se(["\vec{E} = \frac{\vec{F}_{elettrica}}{q} = \frac{-k cdot q}{s^2}"],["\\vec{E} = \\frac{\\vec{F}_{elettrica}}{q} = \\frac{-k \\cdot q}{s^2}"]);return Dn=function(){return n},n}function Ln(){var n=Se(["left | \vec{F}_{elettrica} \right | = \frac{q_1 cdot q_2}{4 pi cdot epsilon_0 cdot s^2}"],["\\left | \\vec{F}_{elettrica} \\right | = \\frac{q_1 \\cdot q_2}{4 \\pi \\cdot \\epsilon_0 \\cdot s^2}"]);return Ln=function(){return n},n}function qn(){var n=Se(["k = \frac{1}{4 pi cdot epsilon_0}"],["k = \\frac{1}{4 \\pi \\cdot \\epsilon_0}"]);return qn=function(){return n},n}function En(){var n=Se(["epsilon_0"],["\\epsilon_0"]);return En=function(){return n},n}function Fn(){var n=Se(["k"]);return Fn=function(){return n},n}function Cn(){var n=Se(["k = 8.99 cdot 10^9 \frac{N cdot m^2}{C^2}"],["k = 8.99 \\cdot 10^9 \\frac{N \\cdot m^2}{C^2}"]);return Cn=function(){return n},n}function An(){var n=Se(["k"]);return An=function(){return n},n}function Pn(){var n=Se(["left | \vec{F}_{elettrica} \right | = \frac{-k cdot q_1 cdot q_2}{s^2}"],["\\left | \\vec{F}_{elettrica} \\right | = \\frac{-k \\cdot q_1 \\cdot q_2}{s^2}"]);return Pn=function(){return n},n}function yn(){var n=Se(["C_{elettrone} = 1.602 cdot 10^{-19}"],["C_{elettrone} = 1.602 \\cdot 10^{-19}"]);return yn=function(){return n},n}function wn(){var n=Se(["P = \frac{Delta E}{Delta t}"],["P = \\frac{\\Delta E}{\\Delta t}"]);return wn=function(){return n},n}function Sn(){var n=Se(["E = E_k + E_p"]);return Sn=function(){return n},n}function In(){var n=Se(["E_{p_e} = \frac{1}{2} k x^2"],["E_{p_e} = \\frac{1}{2} k x^2"]);return In=function(){return n},n}function kn(){var n=Se(["E_{p_g} = m cdot g cdot h"],["E_{p_g} = m \\cdot g \\cdot h"]);return kn=function(){return n},n}function Bn(){var n=Se(["Delta E_c = W"],["\\Delta E_c = W"]);return Bn=function(){return n},n}function xn(){var n=Se(["E_c = \frac{1}{2} m v^2"],["E_c = \\frac{1}{2} m v^2"]);return xn=function(){return n},n}function Vn(){var n=Se(["W = \vec{F} cdot \vec{s} = F cdot Delta s cdot cos(alpha )"],["W = \\vec{F} \\cdot \\vec{s} = F \\cdot \\Delta s \\cdot cos(\\alpha )"]);return Vn=function(){return n},n}function Rn(){var n=Se(["F = m cdot a"],["F = m \\cdot a"]);return Rn=function(){return n},n}function Nn(){var n=Se(["a = \frac{v^2}{r} = r cdot omega^2 = v cdot omega"],["a = \\frac{v^2}{r} = r \\cdot \\omega^2 = v \\cdot \\omega"]);return Nn=function(){return n},n}function Tn(){var n=Se(["v = \frac{Delta s}{t} = \frac{2 pi cdot r}{T} = omega r"],["v = \\frac{\\Delta s}{t} = \\frac{2 \\pi \\cdot r}{T} = \\omega r"]);return Tn=function(){return n},n}function Un(){var n=Se(["phi"],["\\phi"]);return Un=function(){return n},n}function Hn(){var n=Se(["omega = \frac{2 pi}{T}"],["\\omega = \\frac{2 \\pi}{T}"]);return Hn=function(){return n},n}function On(){var n=Se(["\frac{pi}{2}"],["\\frac{\\pi}{2}"]);return On=function(){return n},n}function Mn(){var n=Se(["a(t) = A sin (omega cdot t + phi + pi)"],["a(t) = A \\sin (\\omega \\cdot t + \\phi + \\pi)"]);return Mn=function(){return n},n}function jn(){var n=Se(["pi"],["\\pi"]);return jn=function(){return n},n}function Qn(){var n=Se(["v(t) = A sin (omega cdot t + phi + \frac{pi}{2})"],["v(t) = A \\sin (\\omega \\cdot t + \\phi + \\frac{\\pi}{2})"]);return Qn=function(){return n},n}function Wn(){var n=Se(["\frac{pi}{2}"],["\\frac{\\pi}{2}"]);return Wn=function(){return n},n}function Gn(){var n=Se(["s(t) = A sin (omega cdot t + phi)"],["s(t) = A \\sin (\\omega \\cdot t + \\phi)"]);return Gn=function(){return n},n}function Kn(){var n=Se(["omega = \frac{2 pi}{T}"],["\\omega = \\frac{2 \\pi}{T}"]);return Kn=function(){return n},n}function Jn(){var n=Se(["a(t) = k"]);return Jn=function(){return n},n}function Xn(){var n=Se(["v(t) = a Delta t + v(0)"],["v(t) = a \\Delta t + v(0)"]);return Xn=function(){return n},n}function Yn(){var n=Se(["s(t) = \frac{1}{2} a cdot (Delta t)^2 + v(0) cdot (Delta t) + s(0)"],["s(t) = \\frac{1}{2} a \\cdot (\\Delta t)^2 + v(0) \\cdot (\\Delta t) + s(0)"]);return Yn=function(){return n},n}function Zn(){var n=Se(["a(t) = 0"]);return Zn=function(){return n},n}function $n(){var n=Se(["v(t) = k"]);return $n=function(){return n},n}function ne(){var n=Se(["s(t) = v cdot Delta t + s(0)"],["s(t) = v \\cdot \\Delta t + s(0)"]);return ne=function(){return n},n}function ee(){var n=Se(["Sigma \vec{F} = 0 Longleftrightarrow Delta \vec{p} = 0"],["\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta \\vec{p} = 0"]);return ee=function(){return n},n}function te(){var n=Se(["\vec{p} = m \vec{v}"],["\\vec{p} = m \\vec{v}"]);return te=function(){return n},n}function ae(){var n=Se(["\vec{a} = lim_{Delta v \to 0} \frac{Delta \vec{v}}{Delta t} = \frac{d \vec{v}}{d t} = \frac{d^2 \vec{s}}{d t^2}"],["\\vec{a} = \\lim_{\\Delta v \\to 0} \\frac{\\Delta \\vec{v}}{\\Delta t} = \\frac{d \\vec{v}}{d t} = \\frac{d^2 \\vec{s}}{d t^2}"]);return ae=function(){return n},n}function le(){var n=Se(["\vec{a} = \frac{Delta \vec{v}}{Delta t}"],["\\vec{a} = \\frac{\\Delta \\vec{v}}{\\Delta t}"]);return le=function(){return n},n}function ie(){var n=Se(["\vec{v} = lim_{Delta t \to 0} \frac{Delta \vec{s}}{Delta t} = \frac{d \vec{s}}{dt}"],["\\vec{v} = \\lim_{\\Delta t \\to 0} \\frac{\\Delta \\vec{s}}{\\Delta t} = \\frac{d \\vec{s}}{dt}"]);return ie=function(){return n},n}function re(){var n=Se(["\vec{v} = \frac{Delta \vec{s}}{Delta t}"],["\\vec{v} = \\frac{\\Delta \\vec{s}}{\\Delta t}"]);return re=function(){return n},n}function oe(){var n=Se(["Delta \vec{s} = \vec{s}(fine) - \vec{s}(inizio)"],["\\Delta \\vec{s} = \\vec{s}(fine) - \\vec{s}(inizio)"]);return oe=function(){return n},n}function ue(){var n=Se(["F = -k x"]);return ue=function(){return n},n}function ce(){var n=Se(["left | \vec{F} \right | leq mu_{d} left | \vec{F}_{normale} \right |"],["\\left | \\vec{F} \\right | \\leq \\mu_{d} \\left | \\vec{F}_{normale} \\right |"]);return ce=function(){return n},n}function se(){var n=Se(["left | \vec{F} \right | leq mu_{s} left | \vec{F}_{normale} \right |"],["\\left | \\vec{F} \\right | \\leq \\mu_{s} \\left | \\vec{F}_{normale} \\right |"]);return se=function(){return n},n}function pe(){var n=Se(["g_{marte} = 3.71 \frac{m}{s^2}"],["g_{marte} = 3.71 \\frac{m}{s^2}"]);return pe=function(){return n},n}function de(){var n=Se(["g_{luna} = 1.62 \frac{m}{s^2}"],["g_{luna} = 1.62 \\frac{m}{s^2}"]);return de=function(){return n},n}function fe(){var n=Se(["left | \vec{F} \right | = g m"],["\\left | \\vec{F} \\right | = g m"]);return fe=function(){return n},n}function ve(){var n=Se(["g = 9.81 \frac{m}{s^2}"],["g = 9.81 \\frac{m}{s^2}"]);return ve=function(){return n},n}function me(){var n=Se(["left | \vec{F} \right | = g m"],["\\left | \\vec{F} \\right | = g m"]);return me=function(){return n},n}function _e(){var n=Se(["G = 6.67 cdot 10^{-11} \frac{N m^2}{{kg}^2}"],["G = 6.67 \\cdot 10^{-11} \\frac{N m^2}{{kg}^2}"]);return _e=function(){return n},n}function he(){var n=Se(["left | \vec{F} \right | = G \frac{m_1 m_2}{s^2}"],["\\left | \\vec{F} \\right | = G \\frac{m_1 m_2}{s^2}"]);return he=function(){return n},n}function ge(){var n=Se(["\vec{F}_{21} = -\vec{F}_{12}"],["\\vec{F}_{21} = -\\vec{F}_{12}"]);return ge=function(){return n},n}function ze(){var n=Se(["Sigma \vec{F} = m \vec{a}"],["\\Sigma \\vec{F} = m \\vec{a}"]);return ze=function(){return n},n}function be(){var n=Se(["Sigma \vec{F} = 0 Longleftrightarrow Delta v = 0"],["\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta v = 0"]);return be=function(){return n},n}function De(){var n=Se(["left | \vec{c} \right | = left | \vec{a} \right | cdot left | \vec{b} \right | cdot sin(alpha)"],["\\left | \\vec{c} \\right | = \\left | \\vec{a} \\right | \\cdot \\left | \\vec{b} \\right | \\cdot \\sin(\\alpha)"]);return De=function(){return n},n}function Le(){var n=Se(["\vec{c} = \vec{a} \times \vec{b}"],["\\vec{c} = \\vec{a} \\times \\vec{b}"]);return Le=function(){return n},n}function qe(){var n=Se(["\vec{b}"],["\\vec{b}"]);return qe=function(){return n},n}function Ee(){var n=Se(["\vec{a}"],["\\vec{a}"]);return Ee=function(){return n},n}function Fe(){var n=Se(["\vec{v} cdot \vec{w} = left | \vec{v} \right | left | \vec{w} \right | cos alpha"],["\\vec{v} \\cdot \\vec{w} = \\left | \\vec{v} \\right | \\left | \\vec{w} \\right | \\cos \\alpha"]);return Fe=function(){return n},n}function Ce(){var n=Se(["\vec{v} - \vec{w} = (\vec{v}_x - \vec{w}_x) + (\vec{v}_y - \vec{w}_y)"],["\\vec{v} - \\vec{w} = (\\vec{v}_x - \\vec{w}_x) + (\\vec{v}_y - \\vec{w}_y)"]);return Ce=function(){return n},n}function Ae(){var n=Se(["\vec{v} + \vec{w} = (\vec{v}_x + \vec{w}_x) + (\vec{v}_y + \vec{w}_y)"],["\\vec{v} + \\vec{w} = (\\vec{v}_x + \\vec{w}_x) + (\\vec{v}_y + \\vec{w}_y)"]);return Ae=function(){return n},n}function Pe(){var n=Se(["left | \vec{v}_y \right | = left | \vec{v} \right | cos alpha"],["\\left | \\vec{v}_y \\right | = \\left | \\vec{v} \\right | \\cos \\alpha"]);return Pe=function(){return n},n}function ye(){var n=Se(["left | \vec{v}_x \right | = left | \vec{v} \right | sin alpha"],["\\left | \\vec{v}_x \\right | = \\left | \\vec{v} \\right | \\sin \\alpha"]);return ye=function(){return n},n}function we(){var n=Se(["\vec{v} = \vec{v}_x + \vec{v}_y"],["\\vec{v} = \\vec{v}_x + \\vec{v}_y"]);return we=function(){return n},n}function Se(n,e){return e||(e=n.slice(0)),n.raw=e,n}t.d(e,"default",(function(){return He}));var Ie=t("hosL"),ke=t("OMhl"),Be=t("HKwK"),xe=t("lL4N"),Ve=t("h7i1"),Re=t("UEJU"),Ne=t("jXlC"),Te=t("wQ73"),Ue=String.raw,He=function(e){function t(){return e.apply(this,arguments)||this}var Se,Ie;return Ie=e,(Se=t).prototype=Object.create(Ie.prototype),Se.prototype.constructor=Se,Se.__proto__=Ie,t.prototype.render=function(){return n(Te.a.Provider,{value:!1},n("div",null,n("h1",null,"Fisica"),n(xe.a,{title:"Vettori"},n(Be.a,{title:"Componenti cartesiane"},n("p",null,"Usa le regole base della trigonometria:"),n("p",null,n(ke.a,null,Ue(we()))),n("p",null,n(ke.a,null,Ue(ye()))),n("p",null,n(ke.a,null,Ue(Pe())))),n(Be.a,{title:"Somma"},n("p",null,"Scomponi in componenti, poi sommali:"),n("p",null,n(ke.a,null,Ue(Ae()))),n("p",null,"Produce il vettore risultante dall'applicazione della regola del parallelogramma.")),n(Be.a,{title:"Differenza"},n("p",null,"Alla fine è sempre una somma:"),n("p",null,n(ke.a,null,Ue(Ce()))),n("p",null,"Produce il vettore che parte da ",n(ke.a,null,"w")," e arriva a ",n(ke.a,null,"v"),".")),n(Be.a,{title:"Prodotto scalare"},n("p",null,"Si chiama scalare perchè il risultato è uno scalare, non un vettore."),n("p",null,n(ke.a,null,Ue(Fe()))),n("p",null,"Produce il modulo della proiezione di ",n(ke.a,null,Ue(Ee()))," su ",n(ke.a,null,Ue(qe())),".")),n(Be.a,{title:"Prodotto vettoriale"},n("p",null,"Si chiama vettoriale perchè il risultato è un altro vettore."),n("ul",null,n("li",null,n(ke.a,null,Ue(Le()))),n("li",null,n(ke.a,null,Ue(De()))),n("li",null,n("a",{href:"https://it.wikipedia.org/wiki/Regola_della_mano_destra"},"Regola della mano destra"))),n("p",null,"Non è commutativo!"))),n(xe.a,{title:"Leggi di Newton"},n(Be.a,{title:"1ᵃ: Inerzia"},n("p",null,"Se un corpo puntiforme ha forza risultante nulla, allora la sua velocità non cambia."),n("p",null,n(ke.a,null,Ue(be())))),n(Be.a,{title:"2ᵃ: Proporzionalità"},n("p",null,"La forza risultante di un corpo è direttamente proporzionale alla sua accelerazione, e la costante di proporzionalità è la ",n("i",null,"massa"),"."),n("p",null,n(ke.a,null,Ue(ze())))),n(Be.a,{title:"3ᵃ: Azione e reazione"},n("p",null,"Due corpi esercitano forze uguali e opposte uno sull'altro."),n("p",null,n(ke.a,null,Ue(ge()))))),n(xe.a,{title:"Forza di gravità"},n(Be.a,{title:"Tra due corpi"},n("p",null,"Due corpi puntiformi si attirano uno verso l'altro con forza:"),n("p",null,n(ke.a,null,Ue(he()))),n("p",null,n(ke.a,null,"G")," è la ",n("i",null,"costante di gravitazione universale")," e vale:"),n("p",null,n(ke.a,null,Ue(_e())))),n(Be.a,{title:"Verso la Terra"},n("p",null,"Se nel sistema di riferimento consideriamo la Terra ferma, allora un corpo è attratto verso la Terra con forza ",n("i",null,"peso")," uguale a:"),n("p",null,n(ke.a,null,Ue(me()))),n("p",null,n(ke.a,null,"g")," è la ",n("i",null,"costante di gravità")," della Terra, e vale:"),n("p",null,n(ke.a,null,Ue(ve())))),n(Be.a,{title:"Su pianeti diversi"},n("p",null,"Per pianeti diversi dalla Terra vale la stessa regola:"),n("p",null,n(ke.a,null,Ue(fe()))),n("p",null,"L'unica differenza è che cambia la ",n("i",null,"costante di gravità"),":"),n("p",null,n(ke.a,null,Ue(de()))),n("p",null,n(ke.a,null,Ue(pe()))))),n(xe.a,{title:"Forze di contatto"},n(Be.a,{title:"Normale"},n("p",null,"Si oppone alle forze applicate alla superficie di contatto."),n("p",null,"Un libro appoggiato su un tavolo ha la ",n("b",null,"forza di gravità")," che lo attira verso il terreno e la ",n("b",null,"forza normale")," che lo trattiene dal cadere.")),n(Be.a,{title:"Attrito statico"},n("p",null,"Impedisce a un corpo di muoversi se non viene spinto da una forza che supera una certa soglia:"),n("p",null,n(ke.a,null,Ue(se())))),n(Be.a,{title:"Attrito dinamico"},n("p",null,"Rallenta i corpi che si stanno muovendo finchè essi non si fermano:"),n("p",null,n(ke.a,null,Ue(ce())))),n(Be.a,{title:"Tensione"},n("p",null,"E' forza trasmessa tra due estremi di una fune."),n("p",null,"Può essere redirezionata per mezzo di carrucole.")),n(Be.a,{title:"Elastica"},n("p",null,"Una molla cerca sempre di tornare alla sua posizione indeformata con forza:"),n("p",null,n(ke.a,null,Ue(ue()))),n("p",null,"(E' negativa perchè la forza è opposta a quella applicata per deformarla.)"))),n(xe.a,{title:"Cinematica"},n(Be.a,{title:"Spostamento"},n("p",null,"È un vettore che indica la posizione di un corpo rispetto a un'origine."),n("p",null,n(ke.a,null,Ue(oe())))),n(Be.a,{title:"Velocità"},n("p",null,"È un vettore che misura la variazione di posizione nel tempo."),n("p",null,n(ke.a,null,Ue(re()))),n("p",null,"Se si considera un intervallo di tempo infinitesimale si dice ",n("i",null,"velocità istantanea"),":"),n("p",null,n(ke.a,null,Ue(ie())))),n(Be.a,{title:"Accelerazione"},n("p",null,"È un vettore che misura la variazione di velocità nel tempo."),n("p",null,n(ke.a,null,Ue(le()))),n("p",null,"Se si considera un intervallo di tempo infinitesimale si dice ",n("i",null,"accelerazione istantanea"),":"),n("p",null,n(ke.a,null,Ue(ae())))),n(Be.a,{title:n("span",null,"Quantità di moto ",n("small",null,"(momento lineare)"))},n("p",null,"La quantità di moto è una proprietà vettoriale dei corpi:"),n("p",null,n(ke.a,null,Ue(te()))),n("p",null,"Se la forza risultante è nulla, la quantità di moto non cambia."),n("p",null,n(ke.a,null,Ue(ee()))))),n(xe.a,{title:"Moto rettilineo uniforme"},n(Be.a,{title:"Spostamento"},n("p",null,"La ",n("i",null,"legge oraria")," è:"),n("p",null,n(ke.a,null,Ue(ne())))),n(Be.a,{title:"Velocità"},n("p",null,"È costante:"),n("p",null,n(ke.a,null,Ue($n())))),n(Be.a,{title:"Accelerazione"},n("p",null,"La velocità non varia:"),n("p",null,n(ke.a,null,Ue(Zn())))),n(Be.a,{title:"Forze"},n("p",null,"Si applica la prima legge di Newton:"),n("p",null,n(ke.a,null,"f(t) = 0")))),n(xe.a,{title:"Moto rettilineo uniformemente accelerato"},n(Be.a,{title:"Spostamento"},n("p",null,"La ",n("i",null,"legge oraria")," è:"),n("p",null,n(ke.a,null,Ue(Yn())))),n(Be.a,{title:"Velocità"},n("p",null,"È una retta:"),n("p",null,n(ke.a,null,Ue(Xn())))),n(Be.a,{title:"Accelerazione"},n("p",null,"È costante:"),n("p",null,n(ke.a,null,Ue(Jn())))),n(Be.a,{title:"Forze"},n("p",null,"Si applica la prima legge di Newton:"),n("p",null,n(ke.a,null,"f(t) = m a")))),n(xe.a,{title:"Moto armonico semplice"},n(Be.a,{title:"Ampiezza"},n("p",null,"E' la distanza dal centro massima che raggiunge il corpo."),n("p",null,"(L'ampiezza di una sinusoide.)")),n(Be.a,{title:"Velocità angolare"},n("p",null,"Indica quanto in fretta cambia la posizione del corpo."),n("p",null,"Dipende dal periodo:"),n("p",null,n(ke.a,null,Ue(Kn())))),n(Be.a,{title:"Spostamento"},n("p",null,"E' una sinusoide:"),n("p",null,n(ke.a,null,Ue(Gn())))),n(Be.a,{title:"Velocità"},n("p",null,"E' la sinusoide dello spostamento, sfasata di ",n(ke.a,null,Ue(Wn())),":"),n("p",null,n(ke.a,null,Ue(Qn())))),n(Be.a,{title:"Accelerazione"},n("p",null,"E' la sinusoide della velocità, sfasata di ",n(ke.a,null,Ue(jn())),":"),n("p",null,n(ke.a,null,Ue(Mn())))),n(Be.a,{title:"Forze"},n("p",null,"Si applica la prima legge di Newton:"),n("p",null,n(ke.a,null,"f(t) = m a")))),n(xe.a,{title:"Moti composti"},n(Be.a,{title:"Moto parabolico"},n("p",null,"Il moto parabolico è dato sommando un moto rettilineo uniforme sull'asse orizzontale e un moto rettilineo uniformemente accelerato sull'asse verticale.")),n(Be.a,{title:"Moto circolare uniforme"},n("p",null,"Il moto parabolico è dato sommando due moti armonici semplici: uno sull'asse X, e l'altro, sfasato di ",n(ke.a,null,Ue(On())),", sull'asse Y."))),n(xe.a,{title:"Moto circolare uniforme"},n(Be.a,null,n("h3",null,"Velocità angolare"),n("p",null,"Quanto cambia la fase nel tempo."),n("p",null,n(ke.a,null,Ue(Hn())))),n(Be.a,{title:"Fase"},n("p",null,"E' l'angolo percorso dal corpo rispetto alla posizione iniziale."),n("p",null,"Si indica con ",n(ke.a,null,Ue(Un())),", e generalmente si usa in radianti.")),n(Be.a,{title:"Velocità"},n("p",null,"Si applicano le formule per la circonferenza:"),n("p",null,n(ke.a,null,Ue(Tn())))),n(Be.a,{title:"Accelerazione"},n("p",null,"Il corpo ha sempre un accelerazione verso il centro che gli impedisce di abbandonare il moto:"),n("p",null,n(ke.a,null,Ue(Nn())))),n(Be.a,{title:"Forza centripeta"},n("p",null,"È verso il centro e si calcola con:"),n("p",null,n(ke.a,null,Ue(Rn()))))),n(xe.a,{title:"Lavoro ed energia"},n(Be.a,{title:"Lavoro"},n("p",null,"E' compiuto da una forza che sposta un corpo."),n("p",null,n(ke.a,null,Ue(Vn()))),n("p",null,"(Se la forza non è parallela allo spostamento, il prodotto scalare ci fa considerare solo la componente parallela.)")),n(Be.a,{title:"Energia cinetica"},n("p",null,"Un corpo ha energia cinetica in ogni momento uguale a:"),n("p",null,n(ke.a,null,Ue(xn()))),n("p",null,"Se una forza effettua lavoro su un corpo, cambia la sua energia cinetica pari al lavoro effettuato:"),n("p",null,n(ke.a,null,Ue(Bn())))),n(Be.a,{title:"Energia potenziale gravitazionale"},n("p",null,"Un corpo ha energia potenziale in ogni momento pari a:"),n("p",null,n(ke.a,null,Ue(kn()))),n("p",null,"(Con ",n(ke.a,null,"h")," uguale a un altezza scelta come punto di riferimento.)")),n(Be.a,{title:"Energia potenziale elastica"},n("p",null,"Una molla ha sempre energia potenziale elastica pari a:"),n("p",null,n(ke.a,null,Ue(In())))),n(Be.a,{title:"Forze conservative"},n("p",null,"Sono conservative le forze per le quali il lavoro compiuto non dipende dal percorso seguito per andare dalla partenza all'arrivo."),n("p",null,"Ad esempio, è conservativa la ",n("i",null,"forza di gravità"),", ma ",n("b",null,"non")," è conservativa la forza di attrito."),n("p",null,"Se in un sistema ci sono solo forze conservative, allora l'energia meccanica totale si conserva:"),n("p",null,n(ke.a,null,Ue(Sn())))),n(Be.a,{title:"Potenza"},n("p",null,"È la velocità di trasferimento di energia:"),n("p",null,n(ke.a,null,Ue(wn()))))),n(xe.a,{title:"Elettrostatica"},n(Be.a,{title:"Carica elettrica"},n("p",null,"È una proprietà dei corpi che può essere ",n(Ve.a,null,"positiva")," o ",n(Re.a,null,"negativa"),"."),n("p",null,"Si conserva: in un sistema chiuso la carica totale è costante."),n("p",null,"Esiste un'unità elementare: ",n(ke.a,null,Ue(yn())),"."),n("p",null,"Cariche ",n(Ve.a,null,"opp"),n(Re.a,null,"oste")," si attraggono; cariche ",n(Ve.a,null,"uguali")," si respingono.")),n(Be.a,{title:"Conduttori e isolanti"},n("p",null,"Più ",n("a",{href:"https://it.wikipedia.org/wiki/Ione"},"ioni")," ha un corpo, meglio la carica si muove attraverso di esso."),n("p",null,"I corpi in cui la carica si muove bene sono ",n("i",null,"conduttori"),", mentre quelli in cui si muove difficilmente sono ",n("i",null,"isolanti"),"."),n("p",null,n("i",null,"Il corpo umano è un buon conduttore.")))),n(xe.a,{title:"Polarizzazione"},n(Be.a,{title:"Polarizzazione"},n("p",null,"E' possibile polarizzare un corpo per accumulare la carica di un segno in una certa zona."))),n(xe.a,null,n(Be.a,{title:"Messa a terra"},n("p",null,"Se un corpo conduttore è in contatto con la Terra, le cariche su di esso saranno ",n("i",null,"equilibrate")," e il corpo diventerà elettricamente neutro (con stesso numero di ",n(Ve.a,null,"cariche positive")," e ",n(Re.a,null,"negative")," all'interno)."))),n(xe.a,null,n(Be.a,{title:"Polarizzazione per strofinio"},n("p",null,"Strofinando tra loro due corpi isolanti, essi si ",n("i",null,"polarizzeranno per strofinio"),".")),n(Be.a,{title:"Polarizzazione per contatto"},n("p",null,"Toccando un conduttore con un corpo carico, il conduttore potrà ",n("i",null,"polarizzarsi per contatto"),".")),n(Be.a,{title:"Polarizzazione per induzione"},n("p",null,'Se un corpo conduttore ha cariche "esterne" di un ',n(Ve.a,null,"certo segno")," vicino, esso avrà tutte le cariche del ",n(Re.a,null,"segno opposto")," in equilibrio vicino alle cariche esterne, e tutte le cariche dello ",n(Ve.a,null,"stesso segno")," più lontano possibile da esse."),n("p",null,"Mettendo a terra il conduttore, nuove cariche del ",n(Re.a,null,"segno opposto")," saranno attratte all'interno del corpo per equilibrare le cariche che si sono allontanate."),n("p",null,"Staccando il conduttore da terra e rimuovendo le cariche esterne, esso si ritroverà ",n(Re.a,null,"caricato del segno opposto")," rispetto alle cariche esterne."))),n(xe.a,{title:"Forza elettrica"},n(Be.a,{title:"Legge di Coulomb"},n("p",null,"Due corpi carichi si attraggono tra loro con forza:"),n("p",null,n(ke.a,null,Ue(Pn()))),n("p",null,n(ke.a,null,Ue(An()))," è la ",n("i",null,"costante di Coulomb"),", e vale ",n(ke.a,null,Ue(Cn())),".")),n(Be.a,{title:"Permeabilità dello spazio vuoto"},n("p",null,"La costante ",n(ke.a,null,Ue(Fn()))," è in realtà dipendente da un altra costante, ",n(ke.a,null,Ue(En())),", la ",n("i",null,"permeabilità del vuoto"),"."),n("p",null,n(ke.a,null,Ue(qn()))),n("p",null,n(ke.a,null,Ue(Ln())))),n(Be.a,{title:"Campo elettrico"},n("p",null,"Misura che forza viene applicata in ogni punto su una carica unitaria:"),n("p",null,n(ke.a,null,Ue(Dn())))),n(Be.a,{title:"Flusso elettrico"},n("p",null,'È la differenza tra "quanto" campo elettrico ',n(Ve.a,null,"entra")," e quanto campo elettrico ",n(Re.a,null,"esce")," da una certa area."),n("p",null,"In qualsiasi superficie chiusa, il flusso elettrico è uguale alla componente perpendicolare del campo elettrico moltiplicato per l'area."),n("p",null,n(ke.a,null,Ue(bn()))),n("p",null,"Se il campo elettrico è uniforme, se ne può calcolare facilmente il valore:"),n("p",null,n(ke.a,null,Ue(zn()))),n("p",null,n(Ne.a,null,"Circa. E' una specie di integrale..."))),n(Be.a,{title:"Legge di Gauss per i campi elettrostatici"},n("p",null,"Il flusso elettrico è direttamente proporzionale alla carica presente all'interno della superficie."),n("p",null,n(ke.a,null,Ue(gn()))),n("p",null,"Ovvero, i campi elettrostatici sono generati dalle cariche elettriche."))),n(xe.a,{title:"Energia elettrica"},n(Be.a,{title:"Energia potenziale elettrica"},n("p",null,"Un corpo carico vicino ad altre cariche possiede un'",n("i",null,"energia potenziale elettrica")," ",n(ke.a,null,Ue(hn())),"."))),n(xe.a,{title:"Circuiti elettrici"},n(Be.a,{title:n("span",null,"Potenziale elettrico ",n("small",null,"(tensione)"))},n("p",null,"È il valore dell'energia potenziale elettrica per una carica unitaria."),n("p",null,n(ke.a,null,Ue(_n()))),n("p",null,"La sua unità di misura è il Volt (",n(ke.a,null,Ue(mn())),")."),n("p",null,"In una batteria è detto ",n("i",null,"forza elettromotrice"),", e corrisponde al lavoro compiuto da una batteria ideale per spostare una carica unitaria tra i due poli.")),n(Be.a,{title:n("span",null,"Corrente elettrica ",n("small",null,"(intensità)"))},n("p",null,"Quanta carica passa attraverso un'area (perpendicolare al flusso) nel tempo."),n("p",null,n(ke.a,null,Ue(vn()))),n("p",null,"Fintanto che c'è differenza di potenziale, ci sarà anche intensità non nulla."),n("p",null,"La sua unità di misura è l'Ampere (",n(ke.a,null,Ue(fn())),").")),n(Be.a,{title:n("span",null,"Corrente continua ",n("small",null,"(",n("abbr",{title:"Direct Current"},"DC"),")"))},n("p",null,"Quando in un circuito la direzione della corrente è costante.")),n(Be.a,{title:n("span",null,"Corrente alternata ",n("small",null,"(",n("abbr",{title:"Alternate Current"},"AC"),")"))},n("p",null,"Quando in un circuito la direzione della corrente si alterna periodicamente.")),n(Be.a,{title:"Potenza elettrica"},n("p",null,"Possiamo calcolare la potenza di un circuito:"),n("p",null,n(ke.a,null,Ue(dn()))))),n(xe.a,{title:"Elementi di un circuito"},n(Be.a,{title:"Resistore"},n("p",null,"Riduce l'intensità di corrente, e converte parte del potenziale in calore."),n("p",null,"Il potenziale utilizzato è pari a:"),n("p",null,n(ke.a,null,Ue(pn()))),n("p",null,"Dove ",n(ke.a,null,Ue(sn()))," è una costante detta ",n("i",null,"resistenza")," con unità di misura Ohm (",n(ke.a,null,Ue(cn())),")."),n("p",null,"La resistenza di un conduttore vale:"),n("p",null,n(ke.a,null,Ue(un()))),n("p",null,n(ke.a,null,Ue(on()))," è la ",n("i",null,"resistività")," del materiale, e varia in base alla temperatura:"),n("p",null,n(ke.a,null,Ue(rn())))),n(Be.a,{title:"Condensatore"},n("p",null,"Immagazzina potenziale elettrico, permettendo di riutilizzarla in seguito."),n("p",null,"Per farlo, cattura cariche ",n(Ve.a,null,"positive")," e ",n(Re.a,null,"negative")," sulle sue due armature; perchè questo avvenga, deve essere compiuto lavoro."),n("p",null,"Ha una ",n("b",null,"capacità")," caratteristica, che in un condensatore a facce piane parallele è:"),n("p",null,n(ke.a,null,Ue(ln()))),n("p",null,"Condensatori di capacità maggiore immagazzinano più potenziale con meno carica."),n("p",null,"La capacità aumenta se viene messo qualcosa tra le armature:"),n("p",null,n(ke.a,null,Ue(an()))),n("p",null,"Dove ",n(ke.a,null,Ue(tn()))," è la ",n("i",null,"costante dielettrica relativa")," del materiale inserito, ",n(ke.a,null,Ue(en()))," l'area di una armatura e ",n(ke.a,null,Ue(nn()))," la distanza tra le due armature."),n("p",null,"Se il campo elettrico creatosi tra le due armature supera la ",n("i",null,"rigidità dielettrica")," del condensatore, la carica immagazzinata viene persa e ha luogo un ",n("i",null,"breakdown"),"."),n("p",null,"La sua unità di misura è il Farad (",n(ke.a,null,Ue($())),")")),n(Be.a,{title:"Amperometro"},n("p",null,"Misura la corrente elettrica se messo in serie."),n("p",null,"(Funzionamento: ha una resistenza interna bassisima in modo da non influire significativamente sulla corrente.)")),n(Be.a,{title:"Voltmetro"},n("p",null,"Misura la differenza di potenziale se messo in parallelo."),n("p",null,"(Funzionamento: ha una resistenza altissima in modo da non influire significativamente sulla tensione.)"))),n(xe.a,{title:"Principi di Kirchhoff"},n(Be.a,{title:"Legge dei nodi"},n("p",null,"Per nodo si intende un qualsiasi punto del circuito."),n("p",null,"Da un nodo entra ed esce la stessa corrente.")),n(Be.a,{title:"Legge delle maglie"},n("p",null,"Per maglia si intende un qualsiasi percorso chiuso all'interno del circuito."),n("p",null,"In una maglia chiusa, la somma delle differenze di potenziale è 0."))),n(xe.a,{title:"Serie e Parallelo"},n(Be.a,{title:"Circuito in serie"},n("p",null,"Più parti di circuito sono ",n("i",null,"in serie")," se sono consecutive e senza biforcazioni."),n("p",null,"Parti di circuito in serie sono attraversate dalla stessa corrente.")),n(Be.a,{title:"Circuito in parallelo"},n("p",null,"Più parti di circuito sono ",n("i",null,"in parallelo")," tra loro se hanno lo stesso punto di partenza e lo stesso punto di arrivo."),n("p",null,"Parti di circuito in parallelo hanno la stessa differenza di potenziale."))),n(xe.a,{title:"Resistenze equivalenti"},n(Be.a,{title:"Circuiti in serie"},n("p",null,"Nei circuiti in serie, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza della somma di tutte le quelle sostituite:"),n("p",null,n(ke.a,null,Ue(Z())))),n(Be.a,{title:"Circuiti in parallelo"},n("p",null,"Nei circuiti in parallelo, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza di:"),n("p",null,n(ke.a,null,Ue(Y()))))),n(xe.a,{title:"Condensatori equivalenti"},n(Be.a,{title:"Circuiti in serie"},n("p",null,"Nei circuiti in serie, tutti i condensatori possono essere sostituiti con uno equivalente dalla capacità di:"),n("p",null,n(ke.a,null,Ue(X())))),n(Be.a,{title:"Circuiti in parallelo"},n("p",null,"Nei circuiti in parallelo, tutte i condensatori possono essere sostituite con uno equivalente dalla capacità della somma di tutti quelli sostituiti:"),n("p",null,n(ke.a,null,Ue(J()))))),n(xe.a,{title:"Magnetismo"},n(Be.a,{title:"Permeabilità magnetica dello spazio vuoto"},n("p",null,"E' una costante fisica fondamentale che rappresenta quanto un materiale si magnetizza facilmente."),n("p",null,n(ke.a,null,Ue(K()))," (",n(ke.a,null,Ue(G())),")")),n(Be.a,{title:"Campo magnetico"},n("p",null,"Come un campo elettrico, ma per i magneti."),n("p",null,"Il suo simbolo è ",n(ke.a,null,Ue(W())),", e la sua unità di misura è il Tesla (",n(ke.a,null,"T"),").")),n(Be.a,{title:"Flusso magnetico"},n("p",null,'È "quanto" campo magnetico ',n("b",null,"attraversa")," un percorso chiuso."),n("p",null,'Per qualsiasi percorso chiuso, il flusso magnetico è uguale alla somma di tutti i "sottoflussi" magnetici calcolati sui suoi lati.'),n("p",null,n(ke.a,null,Ue(Q()))),n("p",null,n(ke.a,null,Ue(j()))),n("p",null,"La sua unità di misura è il Weber (",n(ke.a,null,Ue(M())),").")),n(Be.a,{title:"Legge di Gauss per i campi magnetici"},n("p",null,"Il flusso magnetico attraverso qualsiasi superficie chiusa è sempre nullo."),n("p",null,"Ovvero, non esistono monopoli magnetici.")),n(Be.a,{title:"Legge di Ampère"},n("p",null,"L'intensità di corrente che attraversa un percorso chiuso è direttamente proporzionale al flusso magnetico dello stesso percorso."),n("p",null,n(ke.a,null,Ue(O()))))),n(xe.a,{title:"Forze magnetiche"},n(Be.a,{title:n("span",null,"Forza magnetica su carica puntiforme ",n("small",null,"(Forza di Lorentz)"))},n("p",null,"I campi magnetici applicano una forza sulle cariche vicine:"),n("p",null,n(ke.a,null,Ue(H()))),n("p",null,"Dove ",n(ke.a,null,Ue(U()))," è l'intensità del campo magnetico e ",n(ke.a,null,Ue(T()))," la velocità della carica considerata."),n("p",null,"Si ha una forza massima se la velocità è perpendicolare al campo magnetico."),n("p",null,"In un campo magnetico uniforme, una velocità perpendicolare al campo porta alla creazione di un moto circolare uniforme.")),n(Be.a,{title:"Forza magnetica in un filo"},n("p",null,"I campi magnetici influenzano ovviamente anche le cariche presenti in un conduttore:"),n("p",null,n(ke.a,null,Ue(N()))," ",n("a",{href:"https://it.openprof.com/wb/forza_di_lorentz_su_un_filo_percorso_da_corrente?ch=360"},"[1]")),n("p",null,"Dove ",n(ke.a,null,Ue(R()))," è la corrente elettrica, ",n(ke.a,null,Ue(V()))," è un vettore che punta nella direzione di scorrimento della corrente e ha come modulo la lunghezza del conduttore."))),n(xe.a,{title:"Campi magnetici"},n(Be.a,{title:"Campo magnetico in una spira"},n("p",null,"Una spira in cui passa corrente produce un campo magnetico perpendicolare al piano creato dalla spira.")),n(Be.a,{title:"Campo magnetico di un solenoide"},n("p",null,"Un solenoide sono tante spire avvolte in modo da formare una specie di cilindro."),n("p",null,"All'interno del solenoide si crea un campo (quasi) uniforme:"),n("p",null,n(ke.a,null,Ue(x())))),n(Be.a,{title:"Legge di Oersted"},n("p",null,n("i",null,"Caso particolare della ",n("a",{href:"https://it.wikipedia.org/wiki/Legge_di_Amp%C3%A8re"},"Legge di Ampère"),".")),n("p",null,"Il modulo del campo magnetico ",n(ke.a,null,"B")," prodotto da un filo in cui passa una corrente continua ",n(ke.a,null,"I")," alla distanza ",n(ke.a,null,"s")," è:"),n("p",null,n(ke.a,null,Ue(B()))),n("p",null,"Il campo magnetico così creato gira attorno al filo in senso antiorario."),n("p",null,"Due fili attraversati dalla ",n(Ve.a,null,"stessa corrente")," si attraggono, due fili attraversati da ",n(Ve.a,null,"corr"),n(Re.a,null,"enti")," ",n(Ve.a,null,"opp"),n(Re.a,null,"oste")," si respingono."))),n(xe.a,{title:"Induzione elettromagnetica"},n(Be.a,{title:"Forza elettromotrice indotta"},n("p",null,"Un conduttore perpendicolare ad un campo magnetico può ottenere una differenza di potenziale se messo in movimento in un direzione perpendicolare alla direzione del conduttore e del campo."),n("p",null,"La differenza di potenziale si crea a causa della forza magnetica, che fa spostare tutti gli elettroni verso un capo del conduttore."),n("p",null,"Essa vale:"),n("p",null,n(ke.a,null,Ue(k()))),n("p",null,"Dove ",n(ke.a,null,"v")," è la velocità del conduttore, ",n(ke.a,null,"B")," è l'intensità del campo magnetico ed ",n(ke.a,null,"L")," è la lunghezza del conduttore.")),n(Be.a,{title:"Flusso magnetico in una spira"},n("p",null,"In un campo magnetico ",n(ke.a,null,Ue(I()))," uniforme e perpendicolare al piano di una spira di area ",n(ke.a,null,Ue(S())),", il flusso magnetico si può determinare con la ",n("i",null,"Legge di Faraday-Neumann-Lenz"),":"),n("p",null,n(ke.a,null,Ue(w()))))),n(xe.a,null,n(Be.a,{title:"Legge di Faraday-Neumann-Lenz"},n("p",null,"Dice che la forza elettromotrice media indotta in un percorso dipende dalla variazione nel tempo del flusso magnetico nello stesso percorso."),n("p",null,n(ke.a,null,Ue(y()))),n("p",null,"Il meno è dovuto alla ",n("a",{href:"https://it.wikipedia.org/wiki/Legge_di_Lenz"},"Legge di Lenz"),", che specifica qualitativamente il verso della forza elettromotrice indotta.")),n(Be.a,{title:"Faraday in un solenoide"},n("p",null,"In un solenoide, la forza elettromotrice indotta è uguale a:"),n("p",null,n(ke.a,null,Ue(P()))),n("p",null,"Dove ",n(ke.a,null,Ue(A()))," è il numero delle spire del solenoide.")),n(Be.a,{title:"Legge di Ampère-Maxwell"},n("p",null,"Correnti o campi elettrici variabili creano un campo magnetico."))),n(xe.a,{title:"Elettromagnetismo"},n(Be.a,{title:"Onde elettromagnetiche"},n("p",null,"Nel vuoto, il campo elettrico ",n(ke.a,null,Ue(C()))," e il campo magnetico ",n(ke.a,null,Ue(F()))," sono perpendicolari tra loro e la direzione di propagazione, e sono entrambe funzioni del tempo."),n("p",null,"Si dice quindi che sono ",n("i",null,"onde elettromagnetiche"),"."),n("p",null,"Esse sono legate dalla relazione:"),n("p",null,n(ke.a,null,Ue(E()))),n("p",null,"Dove ",n(ke.a,null,Ue(q()))," è la velocità delle onde (luce) nel vuoto, e a sua volta è uguale a:"),n("p",null,n(ke.a,null,Ue(L())))),n(Be.a,{title:"Formula delle onde"},n("p",null,n(ke.a,null,Ue(D()))),n("p",null,"Dove ",n(ke.a,null,Ue(b()))," è l'ampiezza massima che può avere l'onda, ",n(ke.a,null,Ue(z()))," è il vettore d'onda, ",n(ke.a,null,Ue(g()))," la frequenza angolare e ",n(ke.a,null,Ue(h()))," la fase."))),n(xe.a,{title:"Spettroscopia"},n(Be.a,{title:"Emissione"},n("p",null,"I solidi, se portati ad alta temperatura, emettono luce con uno ",n("a",{href:"https://it.wikipedia.org/wiki/Spettro_continuo"},"spettro continuo"),"."),n("p",null,"I gas, invece, ad alta temperatura emettono luce solo con particolari lunghezze d'onda."),n("p",null,"In un gas di idrogeno, le lunghezze d'onda emesse sono ricavabili con:"),n("p",null,n(ke.a,null,Ue(_()))),n("p",null,"Con ",n(ke.a,null,Ue(m())),", detta costante di Rydberg, e ",n(ke.a,null,Ue(v()))," un numero intero.")),n(Be.a,{title:"Grandezza quantizzata"},n("p",null,"Una grandezza si dice quantizzata (o discreta) se può assumere solo determinati valori."),n("p",null,"Una grandezza si dice continua se può assumere qualsiasi valore e quindi se non è quantizzata."),n("p",null,"Energia, momento angolare e raggio sono quantizzati."),n("p",null,"Nota costante quantica è ",n(ke.a,null,Ue(f())),", la costante di Planck, ovvero il valore minimo possibile per la carica (talvolta espressa come ",n(ke.a,null,Ue(d())),"."))),n(xe.a,null,n(Be.a,{title:"Modello di Bohr"},n("p",null,"L'energia degli elettroni è quantizzata."),n("p",null,"Inoltre, per essi è valido che:"),n("p",null,n(ke.a,null,Ue(p()))),n("p",null,"Ancora, il raggio delle orbite è uguale a:"),n("p",null,n(ke.a,null,Ue(s()))),n("p",null,"Con ",n(ke.a,null,Ue(c())),"."),n("p",null,"Infine, in ogni stato, l'energia è pari a:"),n("p",null,n(ke.a,null,Ue(u()))),n("p",null,"Due elettroni non possono occupare lo stesso stato."),n("p",null,"Questo modello funziona solo per atomi con numero atomico basso. Atomi con molti elettroni hanno comportamenti diversi, descritti dal modello di"))),n(xe.a,null,n(Be.a,{title:"Nei solidi"},n("p",null,"Nei solidi, le lunghezze d'onda sono talmente tanto vicine da poter essere considerate una banda."),n("p",null,"Possono però comunque avere dei gap dovuti agli intervalli di energia non ammessi."))),n(xe.a,{title:"Semiconduttori"},n(Be.a,{title:"Semiconduttori"},n("p",null,n(Ne.a,null,"Refactor this")),n("p",null,"Se la banda di emissione con energia più alta di un corpo è assente o è separata da un gap dell'ordine di grandezza maggiore di ",n(ke.a,null,Ue(o())),", allora il corpo è un isolante."),n("p",null,"Se invece la banda di emissione si sovrappone a un altra, allora il corpo è un conduttore."),n("p",null,"Se il gap è invece dell'ordine di grandezza di ",n(ke.a,null,Ue(r())),", allora il corpo è un semiconduttore.")),n(Be.a,{title:"Lacune"},n("p",null,"Legami in cui ",n(Ve.a,null,"mancano elettroni"),"."),n("p",null,n(Re.a,null,"Elettroni")," di altri legami possono spostarsi per colmare le ",n(Ve.a,null,"lacune"),", creandone altre, e spostandole in direzione opposta a quella della corrente.")),n(Be.a,{title:"Accettori e donori"},n("p",null,"Se si inserisce in un cristallo semiconduttore si inserisce un atomo con numero atomico diverso, si otterrà:"),n("ul",null,n("li",null,"Con numero atomico maggiore, un semiconduttore di ",n(Re.a,null,"tipo N")," con ",n(Re.a,null,"elettroni in eccesso")," liberi di scorrere."),n("li",null,"Con numero atomico minore, un semiconduttore di ",n(Ve.a,null,"tipo P")," con ",n(Ve.a,null,"lacune in eccesso")," libere di catturare elettroni da altri legami.")),n("p",null,"Maggiore impurezza porta a maggiore conduttività.")),n(Be.a,{title:"Temperatura"},n("p",null,"Aumentando la temperatura di un semiconduttore si aumenta la conduttività, perchè eccita le particelle e favorisce il movimento di ",n(Re.a,null,"elettroni")," e ",n(Ve.a,null,"lacune"),"."))),n(xe.a,{title:n("span",null,"Ottica ",n("small",null,"(non l'abbiamo fatta)"))},n(Be.a,{title:"Assorbimento e riflessione"},n("p",null,"I corpi possono assorbire o riflettere le onde elettromagnetiche che li colpiscono.")),n(Be.a,{title:"Corpo nero"},n("p",null,"Un corpo nero è un corpo che assorbe tutte le onde elettromagnetiche che riceve senza rifletterne nessuna."),n("p",null,"Le onde assorbite vengono poi riemesse sotto forma di un onda di ",n(ke.a,null,Ue(i()))," variabile in base alla temperatura."),n("p",null,n(ke.a,null,Ue(l()))," è costante.")),n(Be.a,{title:"Teoria di Planck per il corpo nero"},n("p",null,"L'energia assorbita e emessa dai corpi neri è quantizzata.")),n(Be.a,{title:"Fotone"},n("p",null,"Un onda magnetica con un quanto di energia è detta ",n("i",null,"fotone"),":"),n("p",null,n(ke.a,null,Ue(a())))),n(Be.a,{title:"Effetto fotoelettrico"},n("p",null,"A volte, i fotoni che colpiscono un metallo possono estrarvi degli elettroni e creare una differenza di potenziale."),n("p",null,"Perchè avvenga, la frequenza deve essere maggiore di una certa soglia."),n("p",null,"Il numero di elettroni estratti dipende dall'intensità dell'onda, mentre l'energia cinetica degli elettroni dipende dalla frequenza."),n("p",null,"Non c'è nessun ritardo tra l'assorbimento del fotone e l'estrazione di elettroni.")))))},t}(Ie.Component)}.call(this,t("hosL").h)},eCjK:function(n){n.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},h7i1:function(n,e,t){"use strict";(function(n){t.d(e,"a",(function(){return i}));var a=t("56OW"),l=t.n(a),i=function(e){function t(){return e.apply(this,arguments)||this}var a,i;return i=e,(a=t).prototype=Object.create(i.prototype),a.prototype.constructor=a,a.__proto__=i,t.prototype.render=function(){return n("span",{class:l.a.plus},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},jXlC:function(n,e,t){"use strict";(function(n){t.d(e,"a",(function(){return i}));var a=t("3k98"),l=t.n(a),i=function(e){function t(){return e.apply(this,arguments)||this}var a,i;return i=e,(a=t).prototype=Object.create(i.prototype),a.prototype.constructor=a,a.__proto__=i,t.prototype.render=function(){return n("span",{class:l.a.todo},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},lL4N:function(n,e,t){"use strict";(function(n){t.d(e,"a",(function(){return i}));var a=t("eCjK"),l=t.n(a),i=function(e){function t(){return e.apply(this,arguments)||this}var a,i;return i=e,(a=t).prototype=Object.create(i.prototype),a.prototype.constructor=a,a.__proto__=i,t.prototype.render=function(){var e,t=null;return void 0!==this.props.title&&(t=n("h2",null,this.props.title)),e=Array.isArray(this.props.children)?this.props.children.map((function(e){return n("div",{class:l.a.splitchild},e)})):n("div",{class:l.a.splitchild},this.props.children),n("div",{class:l.a.split},t,n("div",{class:l.a.splitparent},e))},t}(t("hosL").Component)}).call(this,t("hosL").h)},nhUl:function(n){n.exports={minus:"minus__2EaF0"}},p7QU:function(n){n.exports={latex:"latex__3zlIu"}},r4EX:function(n){n.exports={panel:"panel__7bYPC"}},wQ73:function(n,e,t){"use strict";var a=t("hosL");e.a=Object(a.createContext)(!0)}}]); -//# sourceMappingURL=route-fisica.chunk.b6e43.js.map \ No newline at end of file +//# sourceMappingURL=route-fisica.chunk.9892b.js.map \ No newline at end of file diff --git a/docs/route-fisica.chunk.b6e43.js.map b/docs/route-fisica.chunk.9892b.js.map similarity index 99% rename from docs/route-fisica.chunk.b6e43.js.map rename to docs/route-fisica.chunk.9892b.js.map index 5fcbbac..318e422 100644 --- a/docs/route-fisica.chunk.b6e43.js.map +++ b/docs/route-fisica.chunk.9892b.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./components/old/todo.css","webpack:///./components/old/plus.css","webpack:///./components/old/panel.js","webpack:///./components/Latex.js","webpack:///../src/index.js","webpack:///./components/old/minus.js","webpack:///./routes/fisica.js","webpack:///./components/old/split.css","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./components/old/panel.less","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","Panel","getStyle","style","panel","render","title","undefined","this","props","class","id","children","Component","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","inline","alt","latex","getHookState","index","options","_hook","currentComponent","hooks","__hooks","_list","_pendingEffects","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_component","_value","nextValue","action","setState","useEffect","callback","args","state","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","Minus","minus","r","String","raw","Fisica","Provider","href","Plus","plus","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-fisica.chunk.b6e43.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","import style from \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","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{props.children}\n\t\t\t\n\t);\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array} */\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} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} 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 {(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 \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import { Component } from 'preact';\nimport Latex from '../components/Latex';\nimport Panel from '../components/old/panel';\nimport Split from '../components/old/split';\nimport Plus from '../components/old/plus';\nimport Minus from '../components/old/minus';\nimport Todo from '../components/old/todo';\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nconst r = String.raw;\n\nexport default class Fisica extends Component {\n\trender() {\n return (\n \n
\n

Fisica

\n \n \n

\n Usa le regole base della trigonometria:\n

\n

\n {r`\\vec{v} = \\vec{v}_x + \\vec{v}_y`}\n

\n

\n {r`\\left | \\vec{v}_x \\right | = \\left | \\vec{v} \\right | \\sin \\alpha`}\n

\n

\n {r`\\left | \\vec{v}_y \\right | = \\left | \\vec{v} \\right | \\cos \\alpha`}\n

\n
\n \n

\n Scomponi in componenti, poi sommali:\n

\n

\n {r`\\vec{v} + \\vec{w} = (\\vec{v}_x + \\vec{w}_x) + (\\vec{v}_y + \\vec{w}_y)`}\n

\n

\n Produce il vettore risultante dall'applicazione della regola del parallelogramma.\n

\n
\n \n

\n Alla fine è sempre una somma:\n

\n

\n {r`\\vec{v} - \\vec{w} = (\\vec{v}_x - \\vec{w}_x) + (\\vec{v}_y - \\vec{w}_y)`}\n

\n

\n Produce il vettore che parte da w e arriva a v.\n

\n
\n \n

\n Si chiama scalare perchè il risultato è uno scalare, non un vettore.\n

\n

\n {r`\\vec{v} \\cdot \\vec{w} = \\left | \\vec{v} \\right | \\left | \\vec{w} \\right | \\cos \\alpha`}\n

\n

\n Produce il modulo della proiezione di {r`\\vec{a}`} su {r`\\vec{b}`}.\n

\n
\n \n

\n Si chiama vettoriale perchè il risultato è un altro vettore.\n

\n
    \n
  • {r`\\vec{c} = \\vec{a} \\times \\vec{b}`}
  • \n
  • {r`\\left | \\vec{c} \\right | = \\left | \\vec{a} \\right | \\cdot \\left | \\vec{b} \\right | \\cdot \\sin(\\alpha)`}
  • \n
  • Regola della mano destra
  • \n
\n

\n Non è commutativo!\n

\n
\n
\n \n \n

\n Se un corpo puntiforme ha forza risultante nulla, allora la sua velocità non cambia.\n

\n

\n {r`\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta v = 0`}\n

\n
\n \n

\n La forza risultante di un corpo è direttamente proporzionale alla sua accelerazione, e la costante di proporzionalità è la massa.\n

\n

\n {r`\\Sigma \\vec{F} = m \\vec{a}`}\n

\n
\n \n

\n Due corpi esercitano forze uguali e opposte uno sull'altro.\n

\n

\n {r`\\vec{F}_{21} = -\\vec{F}_{12}`}\n

\n
\n
\n \n \n

\n Due corpi puntiformi si attirano uno verso l'altro con forza:\n

\n

\n {r`\\left | \\vec{F} \\right | = G \\frac{m_1 m_2}{s^2}`}\n

\n

\n G è la costante di gravitazione universale e vale:\n

\n

\n {r`G = 6.67 \\cdot 10^{-11} \\frac{N m^2}{{kg}^2}`}\n

\n
\n \n

\n Se nel sistema di riferimento consideriamo la Terra ferma, allora un corpo è attratto verso la Terra con forza peso uguale a:\n

\n

\n {r`\\left | \\vec{F} \\right | = g m`}\n

\n

\n g è la costante di gravità della Terra, e vale:\n

\n

\n {r`g = 9.81 \\frac{m}{s^2}`}\n

\n
\n \n

\n Per pianeti diversi dalla Terra vale la stessa regola:\n

\n

\n {r`\\left | \\vec{F} \\right | = g m`}\n

\n

\n L'unica differenza è che cambia la costante di gravità:\n

\n

\n {r`g_{luna} = 1.62 \\frac{m}{s^2}`}\n

\n

\n {r`g_{marte} = 3.71 \\frac{m}{s^2}`}\n

\n
\n
\n \n \n

\n Si oppone alle forze applicate alla superficie di contatto.\n

\n

\n Un libro appoggiato su un tavolo ha la forza di gravità che lo attira verso il terreno e la forza normale che lo trattiene dal cadere.\n

\n
\n \n

\n Impedisce a un corpo di muoversi se non viene spinto da una forza che supera una certa soglia:\n

\n

\n {r`\\left | \\vec{F} \\right | \\leq \\mu_{s} \\left | \\vec{F}_{normale} \\right |`}\n

\n
\n \n

\n Rallenta i corpi che si stanno muovendo finchè essi non si fermano:\n

\n

\n {r`\\left | \\vec{F} \\right | \\leq \\mu_{d} \\left | \\vec{F}_{normale} \\right |`}\n

\n
\n \n

\n E' forza trasmessa tra due estremi di una fune.\n

\n

\n Può essere redirezionata per mezzo di carrucole.\n

\n
\n \n

\n Una molla cerca sempre di tornare alla sua posizione indeformata con forza:\n

\n

\n {r`F = -k x`}\n

\n

\n (E' negativa perchè la forza è opposta a quella applicata per deformarla.)\n

\n
\n
\n \n \n

\n È un vettore che indica la posizione di un corpo rispetto a un'origine.\n

\n

\n {r`\\Delta \\vec{s} = \\vec{s}(fine) - \\vec{s}(inizio)`}\n

\n
\n \n

\n È un vettore che misura la variazione di posizione nel tempo.\n

\n

\n {r`\\vec{v} = \\frac{\\Delta \\vec{s}}{\\Delta t}`}\n

\n

\n Se si considera un intervallo di tempo infinitesimale si dice velocità istantanea:\n

\n

\n {r`\\vec{v} = \\lim_{\\Delta t \\to 0} \\frac{\\Delta \\vec{s}}{\\Delta t} = \\frac{d \\vec{s}}{dt}`}\n

\n
\n \n

\n È un vettore che misura la variazione di velocità nel tempo.\n

\n

\n {r`\\vec{a} = \\frac{\\Delta \\vec{v}}{\\Delta t}`}\n

\n

\n Se si considera un intervallo di tempo infinitesimale si dice accelerazione istantanea:\n

\n

\n {r`\\vec{a} = \\lim_{\\Delta v \\to 0} \\frac{\\Delta \\vec{v}}{\\Delta t} = \\frac{d \\vec{v}}{d t} = \\frac{d^2 \\vec{s}}{d t^2}`}\n

\n
\n Quantità di moto (momento lineare)}>\n

\n La quantità di moto è una proprietà vettoriale dei corpi:\n

\n

\n {r`\\vec{p} = m \\vec{v}`}\n

\n

\n Se la forza risultante è nulla, la quantità di moto non cambia.\n

\n

\n {r`\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta \\vec{p} = 0`}\n

\n
\n
\n \n \n

\n La legge oraria è:\n

\n

\n {r`s(t) = v \\cdot \\Delta t + s(0)`}\n

\n
\n \n

\n È costante:\n

\n

\n {r`v(t) = k`}\n

\n
\n \n

\n La velocità non varia:\n

\n

\n {r`a(t) = 0`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = 0\n

\n
\n
\n \n \n

\n La legge oraria è:\n

\n

\n {r`s(t) = \\frac{1}{2} a \\cdot (\\Delta t)^2 + v(0) \\cdot (\\Delta t) + s(0)`}\n

\n
\n \n

\n È una retta:\n

\n

\n {r`v(t) = a \\Delta t + v(0)`}\n

\n
\n \n

\n È costante:\n

\n

\n {r`a(t) = k`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = m a\n

\n
\n
\n \n \n

\n E' la distanza dal centro massima che raggiunge il corpo.\n

\n

\n (L'ampiezza di una sinusoide.)\n

\n
\n \n

\n Indica quanto in fretta cambia la posizione del corpo.\n

\n

\n Dipende dal periodo:\n

\n

\n {r`\\omega = \\frac{2 \\pi}{T}`}\n

\n
\n \n

\n E' una sinusoide:\n

\n

\n {r`s(t) = A \\sin (\\omega \\cdot t + \\phi)`}\n

\n
\n \n

\n E' la sinusoide dello spostamento, sfasata di {r`\\frac{\\pi}{2}`}:\n

\n

\n {r`v(t) = A \\sin (\\omega \\cdot t + \\phi + \\frac{\\pi}{2})`}\n

\n
\n \n

\n E' la sinusoide della velocità, sfasata di {r`\\pi`}:\n

\n

\n {r`a(t) = A \\sin (\\omega \\cdot t + \\phi + \\pi)`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = m a\n

\n
\n
\n \n \n

\n Il moto parabolico è dato sommando un moto rettilineo uniforme sull'asse orizzontale e un moto rettilineo uniformemente accelerato sull'asse verticale.\n

\n
\n \n

\n Il moto parabolico è dato sommando due moti armonici semplici: uno sull'asse X, e l'altro, sfasato di {r`\\frac{\\pi}{2}`}, sull'asse Y.\n

\n
\n
\n \n \n

\n Velocità angolare\n

\n

\n Quanto cambia la fase nel tempo.\n

\n

\n {r`\\omega = \\frac{2 \\pi}{T}`}\n

\n
\n \n

\n E' l'angolo percorso dal corpo rispetto alla posizione iniziale.\n

\n

\n Si indica con {r`\\phi`}, e generalmente si usa in radianti.\n

\n
\n \n

\n Si applicano le formule per la circonferenza:\n

\n

\n {r`v = \\frac{\\Delta s}{t} = \\frac{2 \\pi \\cdot r}{T} = \\omega r`}\n

\n
\n \n

\n Il corpo ha sempre un accelerazione verso il centro che gli impedisce di abbandonare il moto:\n

\n

\n {r`a = \\frac{v^2}{r} = r \\cdot \\omega^2 = v \\cdot \\omega`}\n

\n
\n \n

\n È verso il centro e si calcola con:\n

\n

\n {r`F = m \\cdot a`}\n

\n
\n
\n \n \n

\n E' compiuto da una forza che sposta un corpo.\n

\n

\n {r`W = \\vec{F} \\cdot \\vec{s} = F \\cdot \\Delta s \\cdot cos(\\alpha )`}\n

\n

\n (Se la forza non è parallela allo spostamento, il prodotto scalare ci fa considerare solo la componente parallela.)\n

\n
\n \n

\n Un corpo ha energia cinetica in ogni momento uguale a:\n

\n

\n {r`E_c = \\frac{1}{2} m v^2`}\n

\n

\n Se una forza effettua lavoro su un corpo, cambia la sua energia cinetica pari al lavoro effettuato:\n

\n

\n {r`\\Delta E_c = W`}\n

\n
\n \n

\n Un corpo ha energia potenziale in ogni momento pari a:\n

\n

\n {r`E_{p_g} = m \\cdot g \\cdot h`}\n

\n

\n (Con h uguale a un altezza scelta come punto di riferimento.)\n

\n
\n \n

\n Una molla ha sempre energia potenziale elastica pari a:\n

\n

\n {r`E_{p_e} = \\frac{1}{2} k x^2`}\n

\n
\n \n

\n Sono conservative le forze per le quali il lavoro compiuto non dipende dal percorso seguito per andare dalla partenza all'arrivo.\n

\n

\n Ad esempio, è conservativa la forza di gravità, ma non è conservativa la forza di attrito.\n

\n

\n Se in un sistema ci sono solo forze conservative, allora l'energia meccanica totale si conserva:\n

\n

\n {r`E = E_k + E_p`}\n

\n
\n \n

\n È la velocità di trasferimento di energia:\n

\n

\n {r`P = \\frac{\\Delta E}{\\Delta t}`}\n

\n
\n
\n \n \n

\n È una proprietà dei corpi che può essere positiva o negativa.\n

\n

\n Si conserva: in un sistema chiuso la carica totale è costante.\n

\n

\n Esiste un'unità elementare: {r`C_{elettrone} = 1.602 \\cdot 10^{-19}`}.\n

\n

\n Cariche opposte si attraggono; cariche uguali si respingono.\n

\n
\n \n

\n Più ioni ha un corpo, meglio la carica si muove attraverso di esso.\n

\n

\n I corpi in cui la carica si muove bene sono conduttori, mentre quelli in cui si muove difficilmente sono isolanti.\n

\n

\n Il corpo umano è un buon conduttore.\n

\n
\n
\n \n \n

\n E' possibile polarizzare un corpo per accumulare la carica di un segno in una certa zona.\n

\n
\n
\n \n \n

\n Se un corpo conduttore è in contatto con la Terra, le cariche su di esso saranno equilibrate e il corpo diventerà elettricamente neutro (con stesso numero di cariche positive e negative all'interno).\n

\n
\n
\n \n \n

\n Strofinando tra loro due corpi isolanti, essi si polarizzeranno per strofinio.\n

\n
\n \n

\n Toccando un conduttore con un corpo carico, il conduttore potrà polarizzarsi per contatto.\n

\n
\n \n

\n Se un corpo conduttore ha cariche \"esterne\" di un certo segno vicino, esso avrà tutte le cariche del segno opposto in equilibrio vicino alle cariche esterne, e tutte le cariche dello stesso segno più lontano possibile da esse.\n

\n

\n Mettendo a terra il conduttore, nuove cariche del segno opposto saranno attratte all'interno del corpo per equilibrare le cariche che si sono allontanate.\n

\n

\n Staccando il conduttore da terra e rimuovendo le cariche esterne, esso si ritroverà caricato del segno opposto rispetto alle cariche esterne.\n

\n
\n
\n \n \n

\n Due corpi carichi si attraggono tra loro con forza:\n

\n

\n {r`\\left | \\vec{F}_{elettrica} \\right | = \\frac{-k \\cdot q_1 \\cdot q_2}{s^2}`}\n

\n

\n {r`k`} è la costante di Coulomb, e vale {r`k = 8.99 \\cdot 10^9 \\frac{N \\cdot m^2}{C^2}`}.\n

\n
\n \n

\n La costante {r`k`} è in realtà dipendente da un altra costante, {r`\\epsilon_0`}, la permeabilità del vuoto.\n

\n

\n {r`k = \\frac{1}{4 \\pi \\cdot \\epsilon_0}`}\n

\n

\n {r`\\left | \\vec{F}_{elettrica} \\right | = \\frac{q_1 \\cdot q_2}{4 \\pi \\cdot \\epsilon_0 \\cdot s^2}`}\n

\n
\n \n

\n Misura che forza viene applicata in ogni punto su una carica unitaria:\n

\n

\n {r`\\vec{E} = \\frac{\\vec{F}_{elettrica}}{q} = \\frac{-k \\cdot q}{s^2}`}\n

\n
\n \n

\n È la differenza tra \"quanto\" campo elettrico entra e quanto campo elettrico esce da una certa area.\n

\n

\n In qualsiasi superficie chiusa, il flusso elettrico è uguale alla componente perpendicolare del campo elettrico moltiplicato per l'area.\n

\n

\n {r`\\Phi_E = \\vec{E} \\cdot \\vec{A}`}\n

\n

\n Se il campo elettrico è uniforme, se ne può calcolare facilmente il valore:\n

\n

\n {r`\\Phi_E = \\vec{E} \\cdot \\vec{A} = E_\\perp \\cdot A \\cdot \\cos(\\alpha)`}\n

\n

\n Circa. E' una specie di integrale...\n

\n
\n \n

\n Il flusso elettrico è direttamente proporzionale alla carica presente all'interno della superficie.\n

\n

\n {r`\\Phi_E = 4 \\pi \\cdot k \\cdot q = \\frac{q}{\\epsilon_0}`}\n

\n

\n Ovvero, i campi elettrostatici sono generati dalle cariche elettriche.\n

\n
\n
\n \n \n

\n Un corpo carico vicino ad altre cariche possiede un'energia potenziale elettrica {r`U_e`}.\n

\n
\n
\n \n Potenziale elettrico (tensione)}>\n

\n È il valore dell'energia potenziale elettrica per una carica unitaria.\n

\n

\n {r`V = \\frac{U_e}{q}`}\n

\n

\n La sua unità di misura è il Volt ({r`V`}).\n

\n

\n In una batteria è detto forza elettromotrice, e corrisponde al lavoro compiuto da una batteria ideale per spostare una carica unitaria tra i due poli.\n

\n
\n Corrente elettrica (intensità)}>\n

\n Quanta carica passa attraverso un'area (perpendicolare al flusso) nel tempo.\n

\n

\n {r`I = \\frac{\\Delta q}{\\Delta t}`}\n

\n

\n Fintanto che c'è differenza di potenziale, ci sarà anche intensità non nulla.\n

\n

\n La sua unità di misura è l'Ampere ({r`A`}).\n

\n
\n Corrente continua (DC)}>\n

\n Quando in un circuito la direzione della corrente è costante.\n

\n
\n Corrente alternata (AC)}>\n

\n Quando in un circuito la direzione della corrente si alterna periodicamente.\n

\n
\n \n

\n Possiamo calcolare la potenza di un circuito:\n

\n

\n {r`P = \\frac{\\Delta U_e}{\\Delta t} = I \\cdot \\Delta V = I^2 \\cdot R = \\frac{(\\Delta V)^2}{R}`}\n

\n
\n
\n \n \n

\n Riduce l'intensità di corrente, e converte parte del potenziale in calore.\n

\n

\n Il potenziale utilizzato è pari a:\n

\n

\n {r`V = R \\cdot I`}\n

\n

\n Dove {r`R`} è una costante detta resistenza con unità di misura Ohm ({r`\\Omega`}).\n

\n

\n La resistenza di un conduttore vale:\n

\n

\n {r`R = \\rho \\frac{L_{unghezza}}{A_{rea}}`}\n

\n

\n {r`\\rho`} è la resistività del materiale, e varia in base alla temperatura:\n

\n

\n {r`\\rho = \\rho_0 (1 + \\alpha(T - T_0))`}\n

\n
\n \n

\n Immagazzina potenziale elettrico, permettendo di riutilizzarla in seguito.\n

\n

\n Per farlo, cattura cariche positive e negative sulle sue due armature; perchè questo avvenga, deve essere compiuto lavoro.\n

\n

\n Ha una capacità caratteristica, che in un condensatore a facce piane parallele è:\n

\n

\n {r`C = \\frac{q_{massima}}{\\Delta V}`}\n

\n

\n Condensatori di capacità maggiore immagazzinano più potenziale con meno carica.\n

\n

\n La capacità aumenta se viene messo qualcosa tra le armature:\n

\n

\n {r`C_{nuova} = \\kappa \\cdot \\frac{\\epsilon_0 \\cdot A}{s}`}\n

\n

\n Dove {r`\\kappa`} è la costante dielettrica relativa del materiale inserito, {r`A`} l'area di una armatura e {r`s`} la distanza tra le due armature.\n

\n

\n Se il campo elettrico creatosi tra le due armature supera la rigidità dielettrica del condensatore, la carica immagazzinata viene persa e ha luogo un breakdown.\n

\n

\n La sua unità di misura è il Farad ({r`Fa`})\n

\n
\n \n

\n Misura la corrente elettrica se messo in serie.\n

\n

\n (Funzionamento: ha una resistenza interna bassisima in modo da non influire significativamente sulla corrente.)\n

\n
\n \n

\n Misura la differenza di potenziale se messo in parallelo.\n

\n

\n (Funzionamento: ha una resistenza altissima in modo da non influire significativamente sulla tensione.)\n

\n
\n
\n \n \n

\n Per nodo si intende un qualsiasi punto del circuito.\n

\n

\n Da un nodo entra ed esce la stessa corrente.\n

\n
\n \n

\n Per maglia si intende un qualsiasi percorso chiuso all'interno del circuito.\n

\n

\n In una maglia chiusa, la somma delle differenze di potenziale è 0.\n

\n
\n
\n \n \n

\n Più parti di circuito sono in serie se sono consecutive e senza biforcazioni.\n

\n

\n Parti di circuito in serie sono attraversate dalla stessa corrente.\n

\n
\n \n

\n Più parti di circuito sono in parallelo tra loro se hanno lo stesso punto di partenza e lo stesso punto di arrivo.\n

\n

\n Parti di circuito in parallelo hanno la stessa differenza di potenziale.\n

\n
\n
\n \n \n

\n Nei circuiti in serie, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza della somma di tutte le quelle sostituite:\n

\n

\n {r`R_{serie} = \\sum_{i=1}^{n} R_i`}\n

\n
\n \n

\n Nei circuiti in parallelo, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza di:\n

\n

\n {r`R_{parallelo} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{R_i}}`}\n

\n
\n
\n \n \n

\n Nei circuiti in serie, tutti i condensatori possono essere sostituiti con uno equivalente dalla capacità di:\n

\n

\n {r`C_{serie} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{C_i}}`}\n

\n
\n \n

\n Nei circuiti in parallelo, tutte i condensatori possono essere sostituite con uno equivalente dalla capacità della somma di tutti quelli sostituiti:\n

\n

\n {r`C_{parallelo} = \\sum_{i=1}^{n} C_n`}\n

\n
\n
\n \n \n

\n E' una costante fisica fondamentale che rappresenta quanto un materiale si magnetizza facilmente.\n

\n

\n {r`\\mu_0 = 4 \\pi \\cdot 10^{-7} \\frac{H}{m}`} ({r`\\frac{N}{A^2}`})\n

\n
\n \n

\n Come un campo elettrico, ma per i magneti.\n

\n

\n Il suo simbolo è {r`B`}, e la sua unità di misura è il Tesla (T).\n

\n
\n \n

\n È \"quanto\" campo magnetico attraversa un percorso chiuso.\n

\n

\n Per qualsiasi percorso chiuso, il flusso magnetico è uguale alla somma di tutti i \"sottoflussi\" magnetici calcolati sui suoi lati.\n

\n

\n {r`\\Phi_{B_{i}} = \\vec{B} \\cdot \\vec{L}_n = B \\cdot L_i \\cdot \\sin(\\alpha) = B_\\parallel \\cdot L_i`}\n

\n

\n {r`\\Phi_{B} = \\sum_{i=0}^{n_{lati}} \\Phi_{Bn}`}\n

\n

\n La sua unità di misura è il Weber ({r`Wb = T \\cdot m^2`}).\n

\n
\n \n

\n Il flusso magnetico attraverso qualsiasi superficie chiusa è sempre nullo.\n

\n

\n Ovvero, non esistono monopoli magnetici.\n

\n
\n \n

\n L'intensità di corrente che attraversa un percorso chiuso è direttamente proporzionale al flusso magnetico dello stesso percorso.\n

\n

\n {r`\\Phi_B = \\mu_0 \\cdot I`}\n

\n
\n
\n \n Forza magnetica su carica puntiforme (Forza di Lorentz)}>\n

\n I campi magnetici applicano una forza sulle cariche vicine:\n

\n

\n {r`\\vec{F}_{B} = q \\cdot (\\vec{v} \\times \\vec{B})`}\n

\n

\n Dove {r`\\vec{B}`} è l'intensità del campo magnetico e {r`\\vec{v}`} la velocità della carica considerata.\n

\n

\n Si ha una forza massima se la velocità è perpendicolare al campo magnetico.\n

\n

\n In un campo magnetico uniforme, una velocità perpendicolare al campo porta alla creazione di un moto circolare uniforme.\n

\n
\n \n

\n I campi magnetici influenzano ovviamente anche le cariche presenti in un conduttore:\n

\n

\n {r`\\vec{F}_{magnetica} = I \\cdot (\\vec{L} \\times \\vec{B})`} [1]\n

\n

\n Dove {r`I`} è la corrente elettrica, {r`\\vec{L}`} è un vettore che punta nella direzione di scorrimento della corrente e ha come modulo la lunghezza del conduttore.\n

\n
\n
\n \n \n

\n Una spira in cui passa corrente produce un campo magnetico perpendicolare al piano creato dalla spira.\n

\n
\n \n

\n Un solenoide sono tante spire avvolte in modo da formare una specie di cilindro.\n

\n

\n All'interno del solenoide si crea un campo (quasi) uniforme:\n

\n

\n {r`\\left | \\vec{B} \\right | = \\mu_0 \\cdot I \\cdot \\frac{A_{vvolgimenti}}{L_{unghezzafilo}}`}\n

\n
\n \n

\n Caso particolare della Legge di Ampère.\n

\n

\n Il modulo del campo magnetico B prodotto da un filo in cui passa una corrente continua I alla distanza s è:\n

\n

\n {r`\\left | \\vec{B} \\right | = \\frac{\\mu \\cdot I}{2 \\pi r}`}\n

\n

\n Il campo magnetico così creato gira attorno al filo in senso antiorario.\n

\n

\n Due fili attraversati dalla stessa corrente si attraggono, due fili attraversati da correnti opposte si respingono.\n

\n
\n
\n \n \n

\n Un conduttore perpendicolare ad un campo magnetico può ottenere una differenza di potenziale se messo in movimento in un direzione perpendicolare alla direzione del conduttore e del campo.\n

\n

\n La differenza di potenziale si crea a causa della forza magnetica, che fa spostare tutti gli elettroni verso un capo del conduttore.\n

\n

\n Essa vale:\n

\n

\n {r`\\Delta V_{indotta} = v \\cdot B \\cdot L`}\n

\n

\n Dove v è la velocità del conduttore, B è l'intensità del campo magnetico ed L è la lunghezza del conduttore.\n

\n
\n \n

\n In un campo magnetico {r`B`} uniforme e perpendicolare al piano di una spira di area {r`A`}, il flusso magnetico si può determinare con la Legge di Faraday-Neumann-Lenz:\n

\n

\n {r`\\Phi_B = \\vec{B} \\cdot \\vec{A} = B \\cdot A \\cdot \\cos(\\alpha)`}\n

\n
\n
\n \n \n

\n Dice che la forza elettromotrice media indotta in un percorso dipende dalla variazione nel tempo del flusso magnetico nello stesso percorso.\n

\n

\n {r`\\Delta V_{indotta} = - \\frac{\\Delta \\Phi_B}{\\Delta t}`}\n

\n

\n Il meno è dovuto alla Legge di Lenz, che specifica qualitativamente il verso della forza elettromotrice indotta.\n

\n
\n \n

\n In un solenoide, la forza elettromotrice indotta è uguale a:\n

\n

\n {r`\\Delta V_{indotta} = - \\frac{N \\cdot \\Delta \\Phi_{B_{spira}}}{\\Delta t} = - \\frac{N \\cdot B \\cdot A \\cdot cos(\\alpha)}{\\Delta t}`}\n

\n

\n Dove {r`N`} è il numero delle spire del solenoide.\n

\n
\n \n

\n Correnti o campi elettrici variabili creano un campo magnetico.\n

\n
\n
\n \n \n

\n Nel vuoto, il campo elettrico {r`E`} e il campo magnetico {r`B`} sono perpendicolari tra loro e la direzione di propagazione, e sono entrambe funzioni del tempo.\n

\n

\n Si dice quindi che sono onde elettromagnetiche.\n

\n

\n Esse sono legate dalla relazione:\n

\n

\n {r`E = c \\cdot B`}\n

\n

\n Dove {r`c`} è la velocità delle onde (luce) nel vuoto, e a sua volta è uguale a:\n

\n

\n {r`c = \\frac{1}{\\sqrt{\\epsilon_0 \\cdot \\mu_0}} = 3.00 \\cdot 10^8 \\frac{m}{s}`}\n

\n
\n \n

\n {r`A(t) = A_{max} \\cdot \\sin \\left ( \\frac{2 \\pi}{\\lambda} - \\omega t + \\phi \\right )`}\n

\n

\n Dove {r`A_{max}`} è l'ampiezza massima che può avere l'onda, {r`\\frac{2 \\pi}{\\lambda} = \\left | \\vec{k} \\right |`} è il vettore d'onda, {r`\\omega`} la frequenza angolare e {r`\\phi`} la fase.\n

\n
\n
\n \n \n

\n I solidi, se portati ad alta temperatura, emettono luce con uno spettro continuo.\n

\n

\n I gas, invece, ad alta temperatura emettono luce solo con particolari lunghezze d'onda.\n

\n

\n In un gas di idrogeno, le lunghezze d'onda emesse sono ricavabili con:\n

\n

\n {r`\\frac{1}{\\lambda} = R \\left ( \\frac{1}{4} - \\frac{1}{n^2} \\right )`}\n

\n

\n Con {r`R = 1.097 \\cdot 10^7 \\frac{1}{m}`}, detta costante di Rydberg, e {r`n`} un numero intero.\n

\n
\n \n

\n Una grandezza si dice quantizzata (o discreta) se può assumere solo determinati valori.\n

\n

\n Una grandezza si dice continua se può assumere qualsiasi valore e quindi se non è quantizzata.\n

\n

\n Energia, momento angolare e raggio sono quantizzati.\n

\n

\n Nota costante quantica è {r`h`}, la costante di Planck, ovvero il valore minimo possibile per la carica (talvolta espressa come {r`\\hbar = \\left ( \\frac{h}{2 \\pi} \\right )`}.\n

\n
\n
\n \n \n

\n L'energia degli elettroni è quantizzata.\n

\n

\n Inoltre, per essi è valido che:\n

\n

\n {r`m \\cdot v_n \\cdot 2 \\pi \\cdot r = n \\cdot h`}\n

\n

\n Ancora, il raggio delle orbite è uguale a:\n

\n

\n {r`r_n = n^2 \\cdot a_0 = n^2 \\cdot \\frac{\\hbar}{m_{elettrone} \\cdot k \\cdot e^2} `}\n

\n

\n Con {r`a_0 = \\left ( \\frac{h}{2 \\pi} \\right )^2 \\cdot \\frac{1}{m_{elettrone} \\cdot k \\cdot e^2} = 5.29 \\cdot 10^{-11} m`}.\n

\n

\n Infine, in ogni stato, l'energia è pari a:\n

\n

\n {r`E_n = \\frac{1}{n^2} \\cdot E_1 = - \\frac{1}{n^2} \\cdot \\frac{a_0^2}{2 \\cdot m \\cdot \\hbar^4} = - \\frac{1}{n^2} \\cdot \\frac{m_{elettrone} \\cdot k^2 \\cdot e^4}{2 \\cdot \\hbar^2}`}\n

\n

\n Due elettroni non possono occupare lo stesso stato.\n

\n

\n Questo modello funziona solo per atomi con numero atomico basso. Atomi con molti elettroni hanno comportamenti diversi, descritti dal modello di\n

\n
\n
\n \n \n

\n Nei solidi, le lunghezze d'onda sono talmente tanto vicine da poter essere considerate una banda.\n

\n

\n Possono però comunque avere dei gap dovuti agli intervalli di energia non ammessi.\n

\n
\n
\n \n \n

\n Refactor this\n

\n

\n Se la banda di emissione con energia più alta di un corpo è assente o è separata da un gap dell'ordine di grandezza maggiore di {r`10^1 eV`}, allora il corpo è un isolante.\n

\n

\n Se invece la banda di emissione si sovrappone a un altra, allora il corpo è un conduttore.\n

\n

\n Se il gap è invece dell'ordine di grandezza di {r`1 eV`}, allora il corpo è un semiconduttore.\n

\n
\n \n

\n Legami in cui mancano elettroni.\n

\n

\n Elettroni di altri legami possono spostarsi per colmare le lacune, creandone altre, e spostandole in direzione opposta a quella della corrente.\n

\n
\n \n

\n Se si inserisce in un cristallo semiconduttore si inserisce un atomo con numero atomico diverso, si otterrà:\n

\n
    \n
  • Con numero atomico maggiore, un semiconduttore di tipo N con elettroni in eccesso liberi di scorrere.
  • \n
  • Con numero atomico minore, un semiconduttore di tipo P con lacune in eccesso libere di catturare elettroni da altri legami.
  • \n
\n

\n Maggiore impurezza porta a maggiore conduttività.\n

\n
\n \n

\n Aumentando la temperatura di un semiconduttore si aumenta la conduttività, perchè eccita le particelle e favorisce il movimento di elettroni e lacune.\n

\n
\n
\n Ottica (non l'abbiamo fatta)}>\n \n

\n I corpi possono assorbire o riflettere le onde elettromagnetiche che li colpiscono.\n

\n
\n \n

\n Un corpo nero è un corpo che assorbe tutte le onde elettromagnetiche che riceve senza rifletterne nessuna.\n

\n

\n Le onde assorbite vengono poi riemesse sotto forma di un onda di {r`\\lambda`} variabile in base alla temperatura.\n

\n

\n {r`\\lambda_{max} \\cdot T`} è costante.\n

\n
\n \n

\n L'energia assorbita e emessa dai corpi neri è quantizzata.\n

\n
\n \n

\n Un onda magnetica con un quanto di energia è detta fotone:\n

\n

\n {r`E_{fotone} = h \\cdot f`}\n

\n
\n \n

\n A volte, i fotoni che colpiscono un metallo possono estrarvi degli elettroni e creare una differenza di potenziale.\n

\n

\n Perchè avvenga, la frequenza deve essere maggiore di una certa soglia.\n

\n

\n Il numero di elettroni estratti dipende dall'intensità dell'onda, mentre l'energia cinetica degli elettroni dipende dalla frequenza.\n

\n

\n Non c'è nessun ritardo tra l'assorbimento del fotone e l'estrazione di elettroni.\n

\n
\n
\n
\n
\n )\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./components/old/todo.css","webpack:///./components/old/plus.css","webpack:///./components/old/panel.js","webpack:///./components/Latex.js","webpack:///../src/index.js","webpack:///./components/old/minus.js","webpack:///./routes/fisica.js","webpack:///./components/old/split.css","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./components/old/panel.less","webpack:///./contexts/LatexDefaultInline.js"],"names":["module","exports","Panel","getStyle","style","panel","render","title","undefined","this","props","class","id","children","Component","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","src","inline","alt","latex","getHookState","index","options","_hook","currentComponent","hooks","__hooks","_list","_pendingEffects","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","currentIndex","_component","_value","nextValue","action","setState","useEffect","callback","args","state","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","Minus","minus","r","String","raw","Fisica","Provider","href","Plus","plus","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent","createContext"],"mappings":"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","file":"route-fisica.chunk.9892b.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","import style from \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","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{props.children}\n\t\t\t\n\t);\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {Array} */\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} initialState\n */\nexport function useState(initialState) {\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} 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 {(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 \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import { Component } from 'preact';\nimport Latex from '../components/Latex';\nimport Panel from '../components/old/panel';\nimport Split from '../components/old/split';\nimport Plus from '../components/old/plus';\nimport Minus from '../components/old/minus';\nimport Todo from '../components/old/todo';\nimport LatexDefaultInline from \"../contexts/LatexDefaultInline\";\n\nconst r = String.raw;\n\nexport default class Fisica extends Component {\n\trender() {\n return (\n \n
\n

Fisica

\n \n \n

\n Usa le regole base della trigonometria:\n

\n

\n {r`\\vec{v} = \\vec{v}_x + \\vec{v}_y`}\n

\n

\n {r`\\left | \\vec{v}_x \\right | = \\left | \\vec{v} \\right | \\sin \\alpha`}\n

\n

\n {r`\\left | \\vec{v}_y \\right | = \\left | \\vec{v} \\right | \\cos \\alpha`}\n

\n
\n \n

\n Scomponi in componenti, poi sommali:\n

\n

\n {r`\\vec{v} + \\vec{w} = (\\vec{v}_x + \\vec{w}_x) + (\\vec{v}_y + \\vec{w}_y)`}\n

\n

\n Produce il vettore risultante dall'applicazione della regola del parallelogramma.\n

\n
\n \n

\n Alla fine è sempre una somma:\n

\n

\n {r`\\vec{v} - \\vec{w} = (\\vec{v}_x - \\vec{w}_x) + (\\vec{v}_y - \\vec{w}_y)`}\n

\n

\n Produce il vettore che parte da w e arriva a v.\n

\n
\n \n

\n Si chiama scalare perchè il risultato è uno scalare, non un vettore.\n

\n

\n {r`\\vec{v} \\cdot \\vec{w} = \\left | \\vec{v} \\right | \\left | \\vec{w} \\right | \\cos \\alpha`}\n

\n

\n Produce il modulo della proiezione di {r`\\vec{a}`} su {r`\\vec{b}`}.\n

\n
\n \n

\n Si chiama vettoriale perchè il risultato è un altro vettore.\n

\n
    \n
  • {r`\\vec{c} = \\vec{a} \\times \\vec{b}`}
  • \n
  • {r`\\left | \\vec{c} \\right | = \\left | \\vec{a} \\right | \\cdot \\left | \\vec{b} \\right | \\cdot \\sin(\\alpha)`}
  • \n
  • Regola della mano destra
  • \n
\n

\n Non è commutativo!\n

\n
\n
\n \n \n

\n Se un corpo puntiforme ha forza risultante nulla, allora la sua velocità non cambia.\n

\n

\n {r`\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta v = 0`}\n

\n
\n \n

\n La forza risultante di un corpo è direttamente proporzionale alla sua accelerazione, e la costante di proporzionalità è la massa.\n

\n

\n {r`\\Sigma \\vec{F} = m \\vec{a}`}\n

\n
\n \n

\n Due corpi esercitano forze uguali e opposte uno sull'altro.\n

\n

\n {r`\\vec{F}_{21} = -\\vec{F}_{12}`}\n

\n
\n
\n \n \n

\n Due corpi puntiformi si attirano uno verso l'altro con forza:\n

\n

\n {r`\\left | \\vec{F} \\right | = G \\frac{m_1 m_2}{s^2}`}\n

\n

\n G è la costante di gravitazione universale e vale:\n

\n

\n {r`G = 6.67 \\cdot 10^{-11} \\frac{N m^2}{{kg}^2}`}\n

\n
\n \n

\n Se nel sistema di riferimento consideriamo la Terra ferma, allora un corpo è attratto verso la Terra con forza peso uguale a:\n

\n

\n {r`\\left | \\vec{F} \\right | = g m`}\n

\n

\n g è la costante di gravità della Terra, e vale:\n

\n

\n {r`g = 9.81 \\frac{m}{s^2}`}\n

\n
\n \n

\n Per pianeti diversi dalla Terra vale la stessa regola:\n

\n

\n {r`\\left | \\vec{F} \\right | = g m`}\n

\n

\n L'unica differenza è che cambia la costante di gravità:\n

\n

\n {r`g_{luna} = 1.62 \\frac{m}{s^2}`}\n

\n

\n {r`g_{marte} = 3.71 \\frac{m}{s^2}`}\n

\n
\n
\n \n \n

\n Si oppone alle forze applicate alla superficie di contatto.\n

\n

\n Un libro appoggiato su un tavolo ha la forza di gravità che lo attira verso il terreno e la forza normale che lo trattiene dal cadere.\n

\n
\n \n

\n Impedisce a un corpo di muoversi se non viene spinto da una forza che supera una certa soglia:\n

\n

\n {r`\\left | \\vec{F} \\right | \\leq \\mu_{s} \\left | \\vec{F}_{normale} \\right |`}\n

\n
\n \n

\n Rallenta i corpi che si stanno muovendo finchè essi non si fermano:\n

\n

\n {r`\\left | \\vec{F} \\right | \\leq \\mu_{d} \\left | \\vec{F}_{normale} \\right |`}\n

\n
\n \n

\n E' forza trasmessa tra due estremi di una fune.\n

\n

\n Può essere redirezionata per mezzo di carrucole.\n

\n
\n \n

\n Una molla cerca sempre di tornare alla sua posizione indeformata con forza:\n

\n

\n {r`F = -k x`}\n

\n

\n (E' negativa perchè la forza è opposta a quella applicata per deformarla.)\n

\n
\n
\n \n \n

\n È un vettore che indica la posizione di un corpo rispetto a un'origine.\n

\n

\n {r`\\Delta \\vec{s} = \\vec{s}(fine) - \\vec{s}(inizio)`}\n

\n
\n \n

\n È un vettore che misura la variazione di posizione nel tempo.\n

\n

\n {r`\\vec{v} = \\frac{\\Delta \\vec{s}}{\\Delta t}`}\n

\n

\n Se si considera un intervallo di tempo infinitesimale si dice velocità istantanea:\n

\n

\n {r`\\vec{v} = \\lim_{\\Delta t \\to 0} \\frac{\\Delta \\vec{s}}{\\Delta t} = \\frac{d \\vec{s}}{dt}`}\n

\n
\n \n

\n È un vettore che misura la variazione di velocità nel tempo.\n

\n

\n {r`\\vec{a} = \\frac{\\Delta \\vec{v}}{\\Delta t}`}\n

\n

\n Se si considera un intervallo di tempo infinitesimale si dice accelerazione istantanea:\n

\n

\n {r`\\vec{a} = \\lim_{\\Delta v \\to 0} \\frac{\\Delta \\vec{v}}{\\Delta t} = \\frac{d \\vec{v}}{d t} = \\frac{d^2 \\vec{s}}{d t^2}`}\n

\n
\n Quantità di moto (momento lineare)}>\n

\n La quantità di moto è una proprietà vettoriale dei corpi:\n

\n

\n {r`\\vec{p} = m \\vec{v}`}\n

\n

\n Se la forza risultante è nulla, la quantità di moto non cambia.\n

\n

\n {r`\\Sigma \\vec{F} = 0 \\Longleftrightarrow \\Delta \\vec{p} = 0`}\n

\n
\n
\n \n \n

\n La legge oraria è:\n

\n

\n {r`s(t) = v \\cdot \\Delta t + s(0)`}\n

\n
\n \n

\n È costante:\n

\n

\n {r`v(t) = k`}\n

\n
\n \n

\n La velocità non varia:\n

\n

\n {r`a(t) = 0`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = 0\n

\n
\n
\n \n \n

\n La legge oraria è:\n

\n

\n {r`s(t) = \\frac{1}{2} a \\cdot (\\Delta t)^2 + v(0) \\cdot (\\Delta t) + s(0)`}\n

\n
\n \n

\n È una retta:\n

\n

\n {r`v(t) = a \\Delta t + v(0)`}\n

\n
\n \n

\n È costante:\n

\n

\n {r`a(t) = k`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = m a\n

\n
\n
\n \n \n

\n E' la distanza dal centro massima che raggiunge il corpo.\n

\n

\n (L'ampiezza di una sinusoide.)\n

\n
\n \n

\n Indica quanto in fretta cambia la posizione del corpo.\n

\n

\n Dipende dal periodo:\n

\n

\n {r`\\omega = \\frac{2 \\pi}{T}`}\n

\n
\n \n

\n E' una sinusoide:\n

\n

\n {r`s(t) = A \\sin (\\omega \\cdot t + \\phi)`}\n

\n
\n \n

\n E' la sinusoide dello spostamento, sfasata di {r`\\frac{\\pi}{2}`}:\n

\n

\n {r`v(t) = A \\sin (\\omega \\cdot t + \\phi + \\frac{\\pi}{2})`}\n

\n
\n \n

\n E' la sinusoide della velocità, sfasata di {r`\\pi`}:\n

\n

\n {r`a(t) = A \\sin (\\omega \\cdot t + \\phi + \\pi)`}\n

\n
\n \n

\n Si applica la prima legge di Newton:\n

\n

\n f(t) = m a\n

\n
\n
\n \n \n

\n Il moto parabolico è dato sommando un moto rettilineo uniforme sull'asse orizzontale e un moto rettilineo uniformemente accelerato sull'asse verticale.\n

\n
\n \n

\n Il moto parabolico è dato sommando due moti armonici semplici: uno sull'asse X, e l'altro, sfasato di {r`\\frac{\\pi}{2}`}, sull'asse Y.\n

\n
\n
\n \n \n

\n Velocità angolare\n

\n

\n Quanto cambia la fase nel tempo.\n

\n

\n {r`\\omega = \\frac{2 \\pi}{T}`}\n

\n
\n \n

\n E' l'angolo percorso dal corpo rispetto alla posizione iniziale.\n

\n

\n Si indica con {r`\\phi`}, e generalmente si usa in radianti.\n

\n
\n \n

\n Si applicano le formule per la circonferenza:\n

\n

\n {r`v = \\frac{\\Delta s}{t} = \\frac{2 \\pi \\cdot r}{T} = \\omega r`}\n

\n
\n \n

\n Il corpo ha sempre un accelerazione verso il centro che gli impedisce di abbandonare il moto:\n

\n

\n {r`a = \\frac{v^2}{r} = r \\cdot \\omega^2 = v \\cdot \\omega`}\n

\n
\n \n

\n È verso il centro e si calcola con:\n

\n

\n {r`F = m \\cdot a`}\n

\n
\n
\n \n \n

\n E' compiuto da una forza che sposta un corpo.\n

\n

\n {r`W = \\vec{F} \\cdot \\vec{s} = F \\cdot \\Delta s \\cdot cos(\\alpha )`}\n

\n

\n (Se la forza non è parallela allo spostamento, il prodotto scalare ci fa considerare solo la componente parallela.)\n

\n
\n \n

\n Un corpo ha energia cinetica in ogni momento uguale a:\n

\n

\n {r`E_c = \\frac{1}{2} m v^2`}\n

\n

\n Se una forza effettua lavoro su un corpo, cambia la sua energia cinetica pari al lavoro effettuato:\n

\n

\n {r`\\Delta E_c = W`}\n

\n
\n \n

\n Un corpo ha energia potenziale in ogni momento pari a:\n

\n

\n {r`E_{p_g} = m \\cdot g \\cdot h`}\n

\n

\n (Con h uguale a un altezza scelta come punto di riferimento.)\n

\n
\n \n

\n Una molla ha sempre energia potenziale elastica pari a:\n

\n

\n {r`E_{p_e} = \\frac{1}{2} k x^2`}\n

\n
\n \n

\n Sono conservative le forze per le quali il lavoro compiuto non dipende dal percorso seguito per andare dalla partenza all'arrivo.\n

\n

\n Ad esempio, è conservativa la forza di gravità, ma non è conservativa la forza di attrito.\n

\n

\n Se in un sistema ci sono solo forze conservative, allora l'energia meccanica totale si conserva:\n

\n

\n {r`E = E_k + E_p`}\n

\n
\n \n

\n È la velocità di trasferimento di energia:\n

\n

\n {r`P = \\frac{\\Delta E}{\\Delta t}`}\n

\n
\n
\n \n \n

\n È una proprietà dei corpi che può essere positiva o negativa.\n

\n

\n Si conserva: in un sistema chiuso la carica totale è costante.\n

\n

\n Esiste un'unità elementare: {r`C_{elettrone} = 1.602 \\cdot 10^{-19}`}.\n

\n

\n Cariche opposte si attraggono; cariche uguali si respingono.\n

\n
\n \n

\n Più ioni ha un corpo, meglio la carica si muove attraverso di esso.\n

\n

\n I corpi in cui la carica si muove bene sono conduttori, mentre quelli in cui si muove difficilmente sono isolanti.\n

\n

\n Il corpo umano è un buon conduttore.\n

\n
\n
\n \n \n

\n E' possibile polarizzare un corpo per accumulare la carica di un segno in una certa zona.\n

\n
\n
\n \n \n

\n Se un corpo conduttore è in contatto con la Terra, le cariche su di esso saranno equilibrate e il corpo diventerà elettricamente neutro (con stesso numero di cariche positive e negative all'interno).\n

\n
\n
\n \n \n

\n Strofinando tra loro due corpi isolanti, essi si polarizzeranno per strofinio.\n

\n
\n \n

\n Toccando un conduttore con un corpo carico, il conduttore potrà polarizzarsi per contatto.\n

\n
\n \n

\n Se un corpo conduttore ha cariche \"esterne\" di un certo segno vicino, esso avrà tutte le cariche del segno opposto in equilibrio vicino alle cariche esterne, e tutte le cariche dello stesso segno più lontano possibile da esse.\n

\n

\n Mettendo a terra il conduttore, nuove cariche del segno opposto saranno attratte all'interno del corpo per equilibrare le cariche che si sono allontanate.\n

\n

\n Staccando il conduttore da terra e rimuovendo le cariche esterne, esso si ritroverà caricato del segno opposto rispetto alle cariche esterne.\n

\n
\n
\n \n \n

\n Due corpi carichi si attraggono tra loro con forza:\n

\n

\n {r`\\left | \\vec{F}_{elettrica} \\right | = \\frac{-k \\cdot q_1 \\cdot q_2}{s^2}`}\n

\n

\n {r`k`} è la costante di Coulomb, e vale {r`k = 8.99 \\cdot 10^9 \\frac{N \\cdot m^2}{C^2}`}.\n

\n
\n \n

\n La costante {r`k`} è in realtà dipendente da un altra costante, {r`\\epsilon_0`}, la permeabilità del vuoto.\n

\n

\n {r`k = \\frac{1}{4 \\pi \\cdot \\epsilon_0}`}\n

\n

\n {r`\\left | \\vec{F}_{elettrica} \\right | = \\frac{q_1 \\cdot q_2}{4 \\pi \\cdot \\epsilon_0 \\cdot s^2}`}\n

\n
\n \n

\n Misura che forza viene applicata in ogni punto su una carica unitaria:\n

\n

\n {r`\\vec{E} = \\frac{\\vec{F}_{elettrica}}{q} = \\frac{-k \\cdot q}{s^2}`}\n

\n
\n \n

\n È la differenza tra \"quanto\" campo elettrico entra e quanto campo elettrico esce da una certa area.\n

\n

\n In qualsiasi superficie chiusa, il flusso elettrico è uguale alla componente perpendicolare del campo elettrico moltiplicato per l'area.\n

\n

\n {r`\\Phi_E = \\vec{E} \\cdot \\vec{A}`}\n

\n

\n Se il campo elettrico è uniforme, se ne può calcolare facilmente il valore:\n

\n

\n {r`\\Phi_E = \\vec{E} \\cdot \\vec{A} = E_\\perp \\cdot A \\cdot \\cos(\\alpha)`}\n

\n

\n Circa. E' una specie di integrale...\n

\n
\n \n

\n Il flusso elettrico è direttamente proporzionale alla carica presente all'interno della superficie.\n

\n

\n {r`\\Phi_E = 4 \\pi \\cdot k \\cdot q = \\frac{q}{\\epsilon_0}`}\n

\n

\n Ovvero, i campi elettrostatici sono generati dalle cariche elettriche.\n

\n
\n
\n \n \n

\n Un corpo carico vicino ad altre cariche possiede un'energia potenziale elettrica {r`U_e`}.\n

\n
\n
\n \n Potenziale elettrico (tensione)}>\n

\n È il valore dell'energia potenziale elettrica per una carica unitaria.\n

\n

\n {r`V = \\frac{U_e}{q}`}\n

\n

\n La sua unità di misura è il Volt ({r`V`}).\n

\n

\n In una batteria è detto forza elettromotrice, e corrisponde al lavoro compiuto da una batteria ideale per spostare una carica unitaria tra i due poli.\n

\n
\n Corrente elettrica (intensità)}>\n

\n Quanta carica passa attraverso un'area (perpendicolare al flusso) nel tempo.\n

\n

\n {r`I = \\frac{\\Delta q}{\\Delta t}`}\n

\n

\n Fintanto che c'è differenza di potenziale, ci sarà anche intensità non nulla.\n

\n

\n La sua unità di misura è l'Ampere ({r`A`}).\n

\n
\n Corrente continua (DC)}>\n

\n Quando in un circuito la direzione della corrente è costante.\n

\n
\n Corrente alternata (AC)}>\n

\n Quando in un circuito la direzione della corrente si alterna periodicamente.\n

\n
\n \n

\n Possiamo calcolare la potenza di un circuito:\n

\n

\n {r`P = \\frac{\\Delta U_e}{\\Delta t} = I \\cdot \\Delta V = I^2 \\cdot R = \\frac{(\\Delta V)^2}{R}`}\n

\n
\n
\n \n \n

\n Riduce l'intensità di corrente, e converte parte del potenziale in calore.\n

\n

\n Il potenziale utilizzato è pari a:\n

\n

\n {r`V = R \\cdot I`}\n

\n

\n Dove {r`R`} è una costante detta resistenza con unità di misura Ohm ({r`\\Omega`}).\n

\n

\n La resistenza di un conduttore vale:\n

\n

\n {r`R = \\rho \\frac{L_{unghezza}}{A_{rea}}`}\n

\n

\n {r`\\rho`} è la resistività del materiale, e varia in base alla temperatura:\n

\n

\n {r`\\rho = \\rho_0 (1 + \\alpha(T - T_0))`}\n

\n
\n \n

\n Immagazzina potenziale elettrico, permettendo di riutilizzarla in seguito.\n

\n

\n Per farlo, cattura cariche positive e negative sulle sue due armature; perchè questo avvenga, deve essere compiuto lavoro.\n

\n

\n Ha una capacità caratteristica, che in un condensatore a facce piane parallele è:\n

\n

\n {r`C = \\frac{q_{massima}}{\\Delta V}`}\n

\n

\n Condensatori di capacità maggiore immagazzinano più potenziale con meno carica.\n

\n

\n La capacità aumenta se viene messo qualcosa tra le armature:\n

\n

\n {r`C_{nuova} = \\kappa \\cdot \\frac{\\epsilon_0 \\cdot A}{s}`}\n

\n

\n Dove {r`\\kappa`} è la costante dielettrica relativa del materiale inserito, {r`A`} l'area di una armatura e {r`s`} la distanza tra le due armature.\n

\n

\n Se il campo elettrico creatosi tra le due armature supera la rigidità dielettrica del condensatore, la carica immagazzinata viene persa e ha luogo un breakdown.\n

\n

\n La sua unità di misura è il Farad ({r`Fa`})\n

\n
\n \n

\n Misura la corrente elettrica se messo in serie.\n

\n

\n (Funzionamento: ha una resistenza interna bassisima in modo da non influire significativamente sulla corrente.)\n

\n
\n \n

\n Misura la differenza di potenziale se messo in parallelo.\n

\n

\n (Funzionamento: ha una resistenza altissima in modo da non influire significativamente sulla tensione.)\n

\n
\n
\n \n \n

\n Per nodo si intende un qualsiasi punto del circuito.\n

\n

\n Da un nodo entra ed esce la stessa corrente.\n

\n
\n \n

\n Per maglia si intende un qualsiasi percorso chiuso all'interno del circuito.\n

\n

\n In una maglia chiusa, la somma delle differenze di potenziale è 0.\n

\n
\n
\n \n \n

\n Più parti di circuito sono in serie se sono consecutive e senza biforcazioni.\n

\n

\n Parti di circuito in serie sono attraversate dalla stessa corrente.\n

\n
\n \n

\n Più parti di circuito sono in parallelo tra loro se hanno lo stesso punto di partenza e lo stesso punto di arrivo.\n

\n

\n Parti di circuito in parallelo hanno la stessa differenza di potenziale.\n

\n
\n
\n \n \n

\n Nei circuiti in serie, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza della somma di tutte le quelle sostituite:\n

\n

\n {r`R_{serie} = \\sum_{i=1}^{n} R_i`}\n

\n
\n \n

\n Nei circuiti in parallelo, tutte le resistenze possono essere sostituite con una equivalente dalla resistenza di:\n

\n

\n {r`R_{parallelo} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{R_i}}`}\n

\n
\n
\n \n \n

\n Nei circuiti in serie, tutti i condensatori possono essere sostituiti con uno equivalente dalla capacità di:\n

\n

\n {r`C_{serie} = \\frac{1}{\\sum_{i=1}^{n} \\frac{1}{C_i}}`}\n

\n
\n \n

\n Nei circuiti in parallelo, tutte i condensatori possono essere sostituite con uno equivalente dalla capacità della somma di tutti quelli sostituiti:\n

\n

\n {r`C_{parallelo} = \\sum_{i=1}^{n} C_n`}\n

\n
\n
\n \n \n

\n E' una costante fisica fondamentale che rappresenta quanto un materiale si magnetizza facilmente.\n

\n

\n {r`\\mu_0 = 4 \\pi \\cdot 10^{-7} \\frac{H}{m}`} ({r`\\frac{N}{A^2}`})\n

\n
\n \n

\n Come un campo elettrico, ma per i magneti.\n

\n

\n Il suo simbolo è {r`B`}, e la sua unità di misura è il Tesla (T).\n

\n
\n \n

\n È \"quanto\" campo magnetico attraversa un percorso chiuso.\n

\n

\n Per qualsiasi percorso chiuso, il flusso magnetico è uguale alla somma di tutti i \"sottoflussi\" magnetici calcolati sui suoi lati.\n

\n

\n {r`\\Phi_{B_{i}} = \\vec{B} \\cdot \\vec{L}_n = B \\cdot L_i \\cdot \\sin(\\alpha) = B_\\parallel \\cdot L_i`}\n

\n

\n {r`\\Phi_{B} = \\sum_{i=0}^{n_{lati}} \\Phi_{Bn}`}\n

\n

\n La sua unità di misura è il Weber ({r`Wb = T \\cdot m^2`}).\n

\n
\n \n

\n Il flusso magnetico attraverso qualsiasi superficie chiusa è sempre nullo.\n

\n

\n Ovvero, non esistono monopoli magnetici.\n

\n
\n \n

\n L'intensità di corrente che attraversa un percorso chiuso è direttamente proporzionale al flusso magnetico dello stesso percorso.\n

\n

\n {r`\\Phi_B = \\mu_0 \\cdot I`}\n

\n
\n
\n \n Forza magnetica su carica puntiforme (Forza di Lorentz)}>\n

\n I campi magnetici applicano una forza sulle cariche vicine:\n

\n

\n {r`\\vec{F}_{B} = q \\cdot (\\vec{v} \\times \\vec{B})`}\n

\n

\n Dove {r`\\vec{B}`} è l'intensità del campo magnetico e {r`\\vec{v}`} la velocità della carica considerata.\n

\n

\n Si ha una forza massima se la velocità è perpendicolare al campo magnetico.\n

\n

\n In un campo magnetico uniforme, una velocità perpendicolare al campo porta alla creazione di un moto circolare uniforme.\n

\n
\n \n

\n I campi magnetici influenzano ovviamente anche le cariche presenti in un conduttore:\n

\n

\n {r`\\vec{F}_{magnetica} = I \\cdot (\\vec{L} \\times \\vec{B})`} [1]\n

\n

\n Dove {r`I`} è la corrente elettrica, {r`\\vec{L}`} è un vettore che punta nella direzione di scorrimento della corrente e ha come modulo la lunghezza del conduttore.\n

\n
\n
\n \n \n

\n Una spira in cui passa corrente produce un campo magnetico perpendicolare al piano creato dalla spira.\n

\n
\n \n

\n Un solenoide sono tante spire avvolte in modo da formare una specie di cilindro.\n

\n

\n All'interno del solenoide si crea un campo (quasi) uniforme:\n

\n

\n {r`\\left | \\vec{B} \\right | = \\mu_0 \\cdot I \\cdot \\frac{A_{vvolgimenti}}{L_{unghezzafilo}}`}\n

\n
\n \n

\n Caso particolare della Legge di Ampère.\n

\n

\n Il modulo del campo magnetico B prodotto da un filo in cui passa una corrente continua I alla distanza s è:\n

\n

\n {r`\\left | \\vec{B} \\right | = \\frac{\\mu \\cdot I}{2 \\pi r}`}\n

\n

\n Il campo magnetico così creato gira attorno al filo in senso antiorario.\n

\n

\n Due fili attraversati dalla stessa corrente si attraggono, due fili attraversati da correnti opposte si respingono.\n

\n
\n
\n \n \n

\n Un conduttore perpendicolare ad un campo magnetico può ottenere una differenza di potenziale se messo in movimento in un direzione perpendicolare alla direzione del conduttore e del campo.\n

\n

\n La differenza di potenziale si crea a causa della forza magnetica, che fa spostare tutti gli elettroni verso un capo del conduttore.\n

\n

\n Essa vale:\n

\n

\n {r`\\Delta V_{indotta} = v \\cdot B \\cdot L`}\n

\n

\n Dove v è la velocità del conduttore, B è l'intensità del campo magnetico ed L è la lunghezza del conduttore.\n

\n
\n \n

\n In un campo magnetico {r`B`} uniforme e perpendicolare al piano di una spira di area {r`A`}, il flusso magnetico si può determinare con la Legge di Faraday-Neumann-Lenz:\n

\n

\n {r`\\Phi_B = \\vec{B} \\cdot \\vec{A} = B \\cdot A \\cdot \\cos(\\alpha)`}\n

\n
\n
\n \n \n

\n Dice che la forza elettromotrice media indotta in un percorso dipende dalla variazione nel tempo del flusso magnetico nello stesso percorso.\n

\n

\n {r`\\Delta V_{indotta} = - \\frac{\\Delta \\Phi_B}{\\Delta t}`}\n

\n

\n Il meno è dovuto alla Legge di Lenz, che specifica qualitativamente il verso della forza elettromotrice indotta.\n

\n
\n \n

\n In un solenoide, la forza elettromotrice indotta è uguale a:\n

\n

\n {r`\\Delta V_{indotta} = - \\frac{N \\cdot \\Delta \\Phi_{B_{spira}}}{\\Delta t} = - \\frac{N \\cdot B \\cdot A \\cdot cos(\\alpha)}{\\Delta t}`}\n

\n

\n Dove {r`N`} è il numero delle spire del solenoide.\n

\n
\n \n

\n Correnti o campi elettrici variabili creano un campo magnetico.\n

\n
\n
\n \n \n

\n Nel vuoto, il campo elettrico {r`E`} e il campo magnetico {r`B`} sono perpendicolari tra loro e la direzione di propagazione, e sono entrambe funzioni del tempo.\n

\n

\n Si dice quindi che sono onde elettromagnetiche.\n

\n

\n Esse sono legate dalla relazione:\n

\n

\n {r`E = c \\cdot B`}\n

\n

\n Dove {r`c`} è la velocità delle onde (luce) nel vuoto, e a sua volta è uguale a:\n

\n

\n {r`c = \\frac{1}{\\sqrt{\\epsilon_0 \\cdot \\mu_0}} = 3.00 \\cdot 10^8 \\frac{m}{s}`}\n

\n
\n \n

\n {r`A(t) = A_{max} \\cdot \\sin \\left ( \\frac{2 \\pi}{\\lambda} - \\omega t + \\phi \\right )`}\n

\n

\n Dove {r`A_{max}`} è l'ampiezza massima che può avere l'onda, {r`\\frac{2 \\pi}{\\lambda} = \\left | \\vec{k} \\right |`} è il vettore d'onda, {r`\\omega`} la frequenza angolare e {r`\\phi`} la fase.\n

\n
\n
\n \n \n

\n I solidi, se portati ad alta temperatura, emettono luce con uno spettro continuo.\n

\n

\n I gas, invece, ad alta temperatura emettono luce solo con particolari lunghezze d'onda.\n

\n

\n In un gas di idrogeno, le lunghezze d'onda emesse sono ricavabili con:\n

\n

\n {r`\\frac{1}{\\lambda} = R \\left ( \\frac{1}{4} - \\frac{1}{n^2} \\right )`}\n

\n

\n Con {r`R = 1.097 \\cdot 10^7 \\frac{1}{m}`}, detta costante di Rydberg, e {r`n`} un numero intero.\n

\n
\n \n

\n Una grandezza si dice quantizzata (o discreta) se può assumere solo determinati valori.\n

\n

\n Una grandezza si dice continua se può assumere qualsiasi valore e quindi se non è quantizzata.\n

\n

\n Energia, momento angolare e raggio sono quantizzati.\n

\n

\n Nota costante quantica è {r`h`}, la costante di Planck, ovvero il valore minimo possibile per la carica (talvolta espressa come {r`\\hbar = \\left ( \\frac{h}{2 \\pi} \\right )`}.\n

\n
\n
\n \n \n

\n L'energia degli elettroni è quantizzata.\n

\n

\n Inoltre, per essi è valido che:\n

\n

\n {r`m \\cdot v_n \\cdot 2 \\pi \\cdot r = n \\cdot h`}\n

\n

\n Ancora, il raggio delle orbite è uguale a:\n

\n

\n {r`r_n = n^2 \\cdot a_0 = n^2 \\cdot \\frac{\\hbar}{m_{elettrone} \\cdot k \\cdot e^2} `}\n

\n

\n Con {r`a_0 = \\left ( \\frac{h}{2 \\pi} \\right )^2 \\cdot \\frac{1}{m_{elettrone} \\cdot k \\cdot e^2} = 5.29 \\cdot 10^{-11} m`}.\n

\n

\n Infine, in ogni stato, l'energia è pari a:\n

\n

\n {r`E_n = \\frac{1}{n^2} \\cdot E_1 = - \\frac{1}{n^2} \\cdot \\frac{a_0^2}{2 \\cdot m \\cdot \\hbar^4} = - \\frac{1}{n^2} \\cdot \\frac{m_{elettrone} \\cdot k^2 \\cdot e^4}{2 \\cdot \\hbar^2}`}\n

\n

\n Due elettroni non possono occupare lo stesso stato.\n

\n

\n Questo modello funziona solo per atomi con numero atomico basso. Atomi con molti elettroni hanno comportamenti diversi, descritti dal modello di\n

\n
\n
\n \n \n

\n Nei solidi, le lunghezze d'onda sono talmente tanto vicine da poter essere considerate una banda.\n

\n

\n Possono però comunque avere dei gap dovuti agli intervalli di energia non ammessi.\n

\n
\n
\n \n \n

\n Refactor this\n

\n

\n Se la banda di emissione con energia più alta di un corpo è assente o è separata da un gap dell'ordine di grandezza maggiore di {r`10^1 eV`}, allora il corpo è un isolante.\n

\n

\n Se invece la banda di emissione si sovrappone a un altra, allora il corpo è un conduttore.\n

\n

\n Se il gap è invece dell'ordine di grandezza di {r`1 eV`}, allora il corpo è un semiconduttore.\n

\n
\n \n

\n Legami in cui mancano elettroni.\n

\n

\n Elettroni di altri legami possono spostarsi per colmare le lacune, creandone altre, e spostandole in direzione opposta a quella della corrente.\n

\n
\n \n

\n Se si inserisce in un cristallo semiconduttore si inserisce un atomo con numero atomico diverso, si otterrà:\n

\n
    \n
  • Con numero atomico maggiore, un semiconduttore di tipo N con elettroni in eccesso liberi di scorrere.
  • \n
  • Con numero atomico minore, un semiconduttore di tipo P con lacune in eccesso libere di catturare elettroni da altri legami.
  • \n
\n

\n Maggiore impurezza porta a maggiore conduttività.\n

\n
\n \n

\n Aumentando la temperatura di un semiconduttore si aumenta la conduttività, perchè eccita le particelle e favorisce il movimento di elettroni e lacune.\n

\n
\n
\n Ottica (non l'abbiamo fatta)}>\n \n

\n I corpi possono assorbire o riflettere le onde elettromagnetiche che li colpiscono.\n

\n
\n \n

\n Un corpo nero è un corpo che assorbe tutte le onde elettromagnetiche che riceve senza rifletterne nessuna.\n

\n

\n Le onde assorbite vengono poi riemesse sotto forma di un onda di {r`\\lambda`} variabile in base alla temperatura.\n

\n

\n {r`\\lambda_{max} \\cdot T`} è costante.\n

\n
\n \n

\n L'energia assorbita e emessa dai corpi neri è quantizzata.\n

\n
\n \n

\n Un onda magnetica con un quanto di energia è detta fotone:\n

\n

\n {r`E_{fotone} = h \\cdot f`}\n

\n
\n \n

\n A volte, i fotoni che colpiscono un metallo possono estrarvi degli elettroni e creare una differenza di potenziale.\n

\n

\n Perchè avvenga, la frequenza deve essere maggiore di una certa soglia.\n

\n

\n Il numero di elettroni estratti dipende dall'intensità dell'onda, mentre l'energia cinetica degli elettroni dipende dalla frequenza.\n

\n

\n Non c'è nessun ritardo tra l'assorbimento del fotone e l'estrazione di elettroni.\n

\n
\n
\n
\n
\n )\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-home.chunk.a4a02.esm.js b/docs/route-home.chunk.008cd.esm.js similarity index 99% rename from docs/route-home.chunk.a4a02.esm.js rename to docs/route-home.chunk.008cd.esm.js index 28a44e8..0290076 100644 --- a/docs/route-home.chunk.a4a02.esm.js +++ b/docs/route-home.chunk.008cd.esm.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"3k98":function(i){i.exports={todo:"todo__1UVRh"}},EIZr:function(i,e,t){"use strict";t.r(e),function(i){t.d(e,"default",(function(){return o}));var a=t("hosL"),r=t("HKwK"),n=t("lL4N"),l=t("jXlC");class o extends a.Component{render(){return i("div",null,i("h1",null,"Indice"),i(n.a,{title:"Argomenti in corso"},i(r.a,{title:i("a",{href:"/apprendimentosistemiartificiali"},"Apprendimento ed evoluzione in sistemi artificiali")},i("p",null,"Appunti scritti mentre studiavo per l'esame di Apprendimento ed evoluzione in sistemi artificiali del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),"."),i("p",null,i(l.a,null,"TODO: Il semestre è ancora in corso!"))),i(r.a,{title:i("a",{href:"/basididati"},"Basi di dati")},i("p",null,"Appunti scritti mentre studiavo per l'esame di Basi di dati del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),"."),i("p",null,i(l.a,null,"TODO: Il semestre è ancora in corso!"))),i(r.a,{title:i("a",{href:"/calcolonumerico"},"Calcolo Numerico")},i("p",null,"Appunti scritti mentre studiavo per l'esame di Calcolo Numerico del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),"."),i("p",null,i(l.a,null,"TODO: Il semestre è ancora in corso!"))),i(r.a,{title:i("a",{href:"/ottimizzazionelineare"},"Ottimizzazione lineare intera")},i("p",null,"Appunti scritti mentre studiavo per l'esame di Ottimizzazione lineare intera del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),"."),i("p",null,i(l.a,null,"TODO: Il semestre è ancora in corso!")))),i(n.a,{title:"Archiviati"},i(r.a,{title:i("a",{href:"/statistica"},"Statistica ed elementi di probabilità")},i("p",null,"Appunti scritti mentre studiavo per l'esame di ",i("a",{href:"http://personale.unimore.it/rubrica/contenutiad/llarocca/2019/58028/N0/N0/9999"},"Statistica ed elementi di probabilità")," del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore")," del Prof. ",i("a",{href:"http://personale.unimore.it/rubrica/dettaglio/llarocca"},"Luca La Rocca"),".")),i(r.a,{title:i("a",{href:"https://github.com/Steffo99/cleaver"},"Cleaver")},i("p",null,"Progetto in Java sviluppato per l'esame di ",i("a",{href:"http://personale.unimore.it/rubrica/contenutiad/gcabri/2019/58026/N0/N0/9999"},"Programmazione ad Oggetti")," del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),", tenuto dai Prof. ",i("a",{href:"http://personale.unimore.it/rubrica/dettaglio/gcabri"},"Giacomo Cabri")," e ",i("a",{href:"http://personale.unimore.it/Rubrica/Dettaglio/n.capodieci"},"Nicola Capodieci"),".")),i(r.a,{title:i("a",{href:"/fisica"},"Fisica")},i("p",null,"Appunti delle ",i("a",{href:"http://personale.unimore.it/rubrica/contenutiad/brunetti/2019/58025/N0/N0/9999"},"lezioni di Fisica")," del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),", tenute dalla ",i("a",{href:"https://personale.unimore.it/rubrica/dettaglio/brunetti"},"Prof.ssa Rossella Brunetti")," nel primo semestre dell'Anno Accademico 2019/2020.")),i(r.a,{title:i("a",{href:"https://github.com/Steffo99/appunti-universitari/tree/master/2019_SistemiOperativi/Arzigogoli"},"Sistemi Operativi")},i("p",null,"Soluzioni agli ",i("a",{href:"https://weblab.ing.unimore.it/people/andreolini/didattica/sistemi-operativi/index.html#arzigogoli"},"Arzigogoli")," proposti dal ",i("a",{href:"https://personale.unimore.it/rubrica/dettaglio/andreolini"},"Prof. Mauro Andreolini")," durante le ",i("a",{href:"https://personale.unimore.it/rubrica/contenutiad/andreolini/2019/58027/N0/N0/9999"},"lezioni di Sistemi Operativi")," del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore")," tenutesi nel primo semestre dell'Anno Accademico 2019/2020.")),i(r.a,{title:i("a",{href:"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgoritmiEStruttureDati"},"Algoritmi e Strutture Dati")},i("p",null,"Appunti delle ",i("a",{href:"https://personale.unimore.it/rubrica/contenutiad/mmontangero/2018/58133/N0/N0/9999"},"lezioni di Algoritmi e Strutture Dati")," del ",i("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",i("a",{href:"https://www.unimore.it/"},"Unimore"),", tenute dalla ",i("a",{href:"https://personale.unimore.it/rubrica/dettaglio/mmontangero"},"Prof.ssa Manuela Montangero")," nel secondo semestre dell'Anno Accademico 2018/2019.")),i(r.a,{title:i("a",{href:"/vldigeometria"},"Videolezioni di Geometria")},i("p",null,"Ottime videolezioni di Geometria con licenza ",i("a",{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"CC BY-NC-SA 4.0")," che ho trovato sul ",i("a",{href:"https://dolly.fim.unimore.it/2018/course/view.php?id=14#section-0"},"portale Dolly 2018")," dell'",i("a",{href:"https://www.unimore.it/"},"Unimore"),".")),i(r.a,{title:i("a",{href:"/mingwinstall"},"Come installare MinGW")},i("p",null,"Un breve tutorial con immagini su come installare e configurare ",i("a",{href:"https://it.wikipedia.org/wiki/MinGW"},"MinGW")," per compilare programmi C e C++ su Windows."))),i(n.a,{title:"Collegamenti utili"},i(r.a,{title:i("a",{href:"https://t.me/unimoreinfo"},"@unimoreinfo")},i("p",null,"Il gruppo ",i("a",{href:"https://telegram.org/"},"Telegram")," del corso di Informatica dell'Unimore!")),i(r.a,{title:i("a",{href:"https://calendar.google.com/calendar?cid=MmYza2o2M3VuZWQ1cmZqaGpmOGY0MWFrNmdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ"},"Calendario Lezioni")},i("p",null,"Calendario Google ",i("small",null,"quasi")," sempre aggiornato delle lezioni e degli esami del secondo anno dell'",i("a",{href:"https://www.unimore.it/"},"Unimore")," durante l'Anno Accademico 2019/2020.")),i(r.a,{title:i("a",{href:"http://erre2.fermitech.info/dashboard"},"Erre2")},i("p",null,"Portale contenente appunti e riassunti mantenuto da ",i("a",{href:"https://github.com/LBindustries"},"Lorenzo Balugani"),".")),i(r.a,{title:i("a",{href:"https://github.com/vezzalinistefano/Appunti-Algoritmi"},"vezzalinistefano/Appunti-Algoritmi")},i("p",null,"Appunti di Algoritmi e Strutture Dati mantenuti da ",i("a",{href:"https://github.com/vezzalinistefano/"},"Vezzalini Stefano"),"."))))}}}.call(this,t("hosL").h)},HKwK:function(i,e,t){"use strict";(function(i){t.d(e,"a",(function(){return l}));var a=t("r4EX"),r=t.n(a),n=t("hosL");class l extends n.Component{getStyle(){return r.a.panel}render(){let e=null;return void 0!==this.props.title&&(e=i("h3",null,this.props.title)),i("div",{class:this.getStyle(),id:this.props.id},e,this.props.children)}}}).call(this,t("hosL").h)},eCjK:function(i){i.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},jXlC:function(i,e,t){"use strict";(function(i){t.d(e,"a",(function(){return l}));var a=t("3k98"),r=t.n(a),n=t("hosL");class l extends n.Component{render(){return i("span",{class:r.a.todo},this.props.children)}}}).call(this,t("hosL").h)},lL4N:function(i,e,t){"use strict";(function(i){t.d(e,"a",(function(){return l}));var a=t("eCjK"),r=t.n(a),n=t("hosL");class l extends n.Component{render(){let e,t=null;return void 0!==this.props.title&&(t=i("h2",null,this.props.title)),e=Array.isArray(this.props.children)?this.props.children.map(e=>i("div",{class:r.a.splitchild},e)):i("div",{class:r.a.splitchild},this.props.children),i("div",{class:r.a.split},t,i("div",{class:r.a.splitparent},e))}}}).call(this,t("hosL").h)},r4EX:function(i){i.exports={panel:"panel__7bYPC"}}}]); -//# sourceMappingURL=route-home.chunk.a4a02.esm.js.map \ No newline at end of file +//# sourceMappingURL=route-home.chunk.008cd.esm.js.map \ No newline at end of file diff --git a/docs/route-home.chunk.a4a02.esm.js.map b/docs/route-home.chunk.008cd.esm.js.map similarity index 60% rename from docs/route-home.chunk.a4a02.esm.js.map rename to docs/route-home.chunk.008cd.esm.js.map index e5f1d3e..66b956f 100644 --- a/docs/route-home.chunk.a4a02.esm.js.map +++ b/docs/route-home.chunk.008cd.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"route-home.chunk.a4a02.esm.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"route-home.chunk.008cd.esm.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/route-home.chunk.0540f.js b/docs/route-home.chunk.6edcf.js similarity index 99% rename from docs/route-home.chunk.0540f.js rename to docs/route-home.chunk.6edcf.js index 154ca1c..2e0158b 100644 --- a/docs/route-home.chunk.0540f.js +++ b/docs/route-home.chunk.6edcf.js @@ -1,2 +1,2 @@ (window.webpackJsonp=window.webpackJsonp||[]).push([[7],{"3k98":function(t){t.exports={todo:"todo__1UVRh"}},EIZr:function(t,i,e){"use strict";e.r(i),function(t){e.d(i,"default",(function(){return l}));var r=e("hosL"),a=e("HKwK"),o=e("lL4N"),n=e("jXlC"),l=function(i){function e(){return i.apply(this,arguments)||this}var r,l;return l=i,(r=e).prototype=Object.create(l.prototype),r.prototype.constructor=r,r.__proto__=l,e.prototype.render=function(){return t("div",null,t("h1",null,"Indice"),t(o.a,{title:"Argomenti in corso"},t(a.a,{title:t("a",{href:"/apprendimentosistemiartificiali"},"Apprendimento ed evoluzione in sistemi artificiali")},t("p",null,"Appunti scritti mentre studiavo per l'esame di Apprendimento ed evoluzione in sistemi artificiali del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),"."),t("p",null,t(n.a,null,"TODO: Il semestre è ancora in corso!"))),t(a.a,{title:t("a",{href:"/basididati"},"Basi di dati")},t("p",null,"Appunti scritti mentre studiavo per l'esame di Basi di dati del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),"."),t("p",null,t(n.a,null,"TODO: Il semestre è ancora in corso!"))),t(a.a,{title:t("a",{href:"/calcolonumerico"},"Calcolo Numerico")},t("p",null,"Appunti scritti mentre studiavo per l'esame di Calcolo Numerico del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),"."),t("p",null,t(n.a,null,"TODO: Il semestre è ancora in corso!"))),t(a.a,{title:t("a",{href:"/ottimizzazionelineare"},"Ottimizzazione lineare intera")},t("p",null,"Appunti scritti mentre studiavo per l'esame di Ottimizzazione lineare intera del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),"."),t("p",null,t(n.a,null,"TODO: Il semestre è ancora in corso!")))),t(o.a,{title:"Archiviati"},t(a.a,{title:t("a",{href:"/statistica"},"Statistica ed elementi di probabilità")},t("p",null,"Appunti scritti mentre studiavo per l'esame di ",t("a",{href:"http://personale.unimore.it/rubrica/contenutiad/llarocca/2019/58028/N0/N0/9999"},"Statistica ed elementi di probabilità")," del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore")," del Prof. ",t("a",{href:"http://personale.unimore.it/rubrica/dettaglio/llarocca"},"Luca La Rocca"),".")),t(a.a,{title:t("a",{href:"https://github.com/Steffo99/cleaver"},"Cleaver")},t("p",null,"Progetto in Java sviluppato per l'esame di ",t("a",{href:"http://personale.unimore.it/rubrica/contenutiad/gcabri/2019/58026/N0/N0/9999"},"Programmazione ad Oggetti")," del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),", tenuto dai Prof. ",t("a",{href:"http://personale.unimore.it/rubrica/dettaglio/gcabri"},"Giacomo Cabri")," e ",t("a",{href:"http://personale.unimore.it/Rubrica/Dettaglio/n.capodieci"},"Nicola Capodieci"),".")),t(a.a,{title:t("a",{href:"/fisica"},"Fisica")},t("p",null,"Appunti delle ",t("a",{href:"http://personale.unimore.it/rubrica/contenutiad/brunetti/2019/58025/N0/N0/9999"},"lezioni di Fisica")," del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),", tenute dalla ",t("a",{href:"https://personale.unimore.it/rubrica/dettaglio/brunetti"},"Prof.ssa Rossella Brunetti")," nel primo semestre dell'Anno Accademico 2019/2020.")),t(a.a,{title:t("a",{href:"https://github.com/Steffo99/appunti-universitari/tree/master/2019_SistemiOperativi/Arzigogoli"},"Sistemi Operativi")},t("p",null,"Soluzioni agli ",t("a",{href:"https://weblab.ing.unimore.it/people/andreolini/didattica/sistemi-operativi/index.html#arzigogoli"},"Arzigogoli")," proposti dal ",t("a",{href:"https://personale.unimore.it/rubrica/dettaglio/andreolini"},"Prof. Mauro Andreolini")," durante le ",t("a",{href:"https://personale.unimore.it/rubrica/contenutiad/andreolini/2019/58027/N0/N0/9999"},"lezioni di Sistemi Operativi")," del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore")," tenutesi nel primo semestre dell'Anno Accademico 2019/2020.")),t(a.a,{title:t("a",{href:"https://github.com/Steffo99/appunti-universitari/tree/master/2018_AlgoritmiEStruttureDati"},"Algoritmi e Strutture Dati")},t("p",null,"Appunti delle ",t("a",{href:"https://personale.unimore.it/rubrica/contenutiad/mmontangero/2018/58133/N0/N0/9999"},"lezioni di Algoritmi e Strutture Dati")," del ",t("a",{href:"https://www.unimore.it/didattica/mlaurea.html?ID=54"},"corso triennale di Informatica")," all'",t("a",{href:"https://www.unimore.it/"},"Unimore"),", tenute dalla ",t("a",{href:"https://personale.unimore.it/rubrica/dettaglio/mmontangero"},"Prof.ssa Manuela Montangero")," nel secondo semestre dell'Anno Accademico 2018/2019.")),t(a.a,{title:t("a",{href:"/vldigeometria"},"Videolezioni di Geometria")},t("p",null,"Ottime videolezioni di Geometria con licenza ",t("a",{href:"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"CC BY-NC-SA 4.0")," che ho trovato sul ",t("a",{href:"https://dolly.fim.unimore.it/2018/course/view.php?id=14#section-0"},"portale Dolly 2018")," dell'",t("a",{href:"https://www.unimore.it/"},"Unimore"),".")),t(a.a,{title:t("a",{href:"/mingwinstall"},"Come installare MinGW")},t("p",null,"Un breve tutorial con immagini su come installare e configurare ",t("a",{href:"https://it.wikipedia.org/wiki/MinGW"},"MinGW")," per compilare programmi C e C++ su Windows."))),t(o.a,{title:"Collegamenti utili"},t(a.a,{title:t("a",{href:"https://t.me/unimoreinfo"},"@unimoreinfo")},t("p",null,"Il gruppo ",t("a",{href:"https://telegram.org/"},"Telegram")," del corso di Informatica dell'Unimore!")),t(a.a,{title:t("a",{href:"https://calendar.google.com/calendar?cid=MmYza2o2M3VuZWQ1cmZqaGpmOGY0MWFrNmdAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ"},"Calendario Lezioni")},t("p",null,"Calendario Google ",t("small",null,"quasi")," sempre aggiornato delle lezioni e degli esami del secondo anno dell'",t("a",{href:"https://www.unimore.it/"},"Unimore")," durante l'Anno Accademico 2019/2020.")),t(a.a,{title:t("a",{href:"http://erre2.fermitech.info/dashboard"},"Erre2")},t("p",null,"Portale contenente appunti e riassunti mantenuto da ",t("a",{href:"https://github.com/LBindustries"},"Lorenzo Balugani"),".")),t(a.a,{title:t("a",{href:"https://github.com/vezzalinistefano/Appunti-Algoritmi"},"vezzalinistefano/Appunti-Algoritmi")},t("p",null,"Appunti di Algoritmi e Strutture Dati mantenuti da ",t("a",{href:"https://github.com/vezzalinistefano/"},"Vezzalini Stefano"),"."))))},e}(r.Component)}.call(this,e("hosL").h)},HKwK:function(t,i,e){"use strict";(function(t){e.d(i,"a",(function(){return o}));var r=e("r4EX"),a=e.n(r),o=function(i){function e(){return i.apply(this,arguments)||this}var r,o;o=i,(r=e).prototype=Object.create(o.prototype),r.prototype.constructor=r,r.__proto__=o;var n=e.prototype;return n.getStyle=function(){return a.a.panel},n.render=function(){var i=null;return void 0!==this.props.title&&(i=t("h3",null,this.props.title)),t("div",{class:this.getStyle(),id:this.props.id},i,this.props.children)},e}(e("hosL").Component)}).call(this,e("hosL").h)},eCjK:function(t){t.exports={split:"split__3dL9r",splitparent:"splitparent__2H-vS",splitchild:"splitchild__1B-Jt"}},jXlC:function(t,i,e){"use strict";(function(t){e.d(i,"a",(function(){return o}));var r=e("3k98"),a=e.n(r),o=function(i){function e(){return i.apply(this,arguments)||this}var r,o;return o=i,(r=e).prototype=Object.create(o.prototype),r.prototype.constructor=r,r.__proto__=o,e.prototype.render=function(){return t("span",{class:a.a.todo},this.props.children)},e}(e("hosL").Component)}).call(this,e("hosL").h)},lL4N:function(t,i,e){"use strict";(function(t){e.d(i,"a",(function(){return o}));var r=e("eCjK"),a=e.n(r),o=function(i){function e(){return i.apply(this,arguments)||this}var r,o;return o=i,(r=e).prototype=Object.create(o.prototype),r.prototype.constructor=r,r.__proto__=o,e.prototype.render=function(){var i,e=null;return void 0!==this.props.title&&(e=t("h2",null,this.props.title)),i=Array.isArray(this.props.children)?this.props.children.map((function(i){return t("div",{class:a.a.splitchild},i)})):t("div",{class:a.a.splitchild},this.props.children),t("div",{class:a.a.split},e,t("div",{class:a.a.splitparent},i))},e}(e("hosL").Component)}).call(this,e("hosL").h)},r4EX:function(t){t.exports={panel:"panel__7bYPC"}}}]); -//# sourceMappingURL=route-home.chunk.0540f.js.map \ No newline at end of file +//# sourceMappingURL=route-home.chunk.6edcf.js.map \ No newline at end of file diff --git a/docs/route-home.chunk.0540f.js.map b/docs/route-home.chunk.6edcf.js.map similarity index 99% rename from docs/route-home.chunk.0540f.js.map rename to docs/route-home.chunk.6edcf.js.map index 20dcfec..06bb4ee 100644 --- a/docs/route-home.chunk.0540f.js.map +++ b/docs/route-home.chunk.6edcf.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./components/old/todo.css","webpack:///./routes/home.js","webpack:///./components/old/panel.js","webpack:///./components/old/split.css","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/old/panel.less"],"names":["module","exports","Home","render","title","href","Component","Panel","getStyle","style","panel","undefined","this","props","class","id","children","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent"],"mappings":"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","file":"route-home.chunk.0540f.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","import { Component } from 'preact';\nimport Panel from '../components/old/panel';\nimport Split from '../components/old/split';\nimport Todo from \"../components/old/todo\";\n\nexport default class Home extends Component {\n render() {\n return (\n
\n

Indice

\n \n Apprendimento ed evoluzione in sistemi artificiali}>\n

\n Appunti scritti mentre studiavo per l'esame di Apprendimento ed evoluzione in sistemi artificiali del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Basi di dati}>\n

\n Appunti scritti mentre studiavo per l'esame di Basi di dati del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Calcolo Numerico}>\n

\n Appunti scritti mentre studiavo per l'esame di Calcolo Numerico del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Ottimizzazione lineare intera}>\n

\n Appunti scritti mentre studiavo per l'esame di Ottimizzazione lineare intera del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n
\n \n Statistica ed elementi di probabilità}>\n

\n Appunti scritti mentre studiavo per l'esame di Statistica ed elementi di probabilità del corso triennale di Informatica all'Unimore del Prof. Luca La Rocca.\n

\n
\n Cleaver}>\n

\n Progetto in Java sviluppato per l'esame di Programmazione ad Oggetti del corso triennale di Informatica all'Unimore, tenuto dai Prof. Giacomo Cabri e Nicola Capodieci.\n

\n
\n Fisica}>\n

\n Appunti delle lezioni di Fisica del corso triennale di Informatica all'Unimore, tenute dalla Prof.ssa Rossella Brunetti nel primo semestre dell'Anno Accademico 2019/2020.\n

\n
\n Sistemi Operativi}>\n

\n Soluzioni agli Arzigogoli proposti dal Prof. Mauro Andreolini durante le lezioni di Sistemi Operativi del corso triennale di Informatica all'Unimore tenutesi nel primo semestre dell'Anno Accademico 2019/2020.\n

\n
\n Algoritmi e Strutture Dati}>\n

\n Appunti delle lezioni di Algoritmi e Strutture Dati del corso triennale di Informatica all'Unimore, tenute dalla Prof.ssa Manuela Montangero nel secondo semestre dell'Anno Accademico 2018/2019.\n

\n
\n Videolezioni di Geometria}>\n

\n Ottime videolezioni di Geometria con licenza CC BY-NC-SA 4.0 che ho trovato sul portale Dolly 2018 dell'Unimore.\n

\n
\n Come installare MinGW}>\n

\n Un breve tutorial con immagini su come installare e configurare MinGW per compilare programmi C e C++ su Windows.\n

\n
\n
\n \n @unimoreinfo}>\n

\n Il gruppo Telegram del corso di Informatica dell'Unimore!\n

\n
\n Calendario Lezioni}>\n

\n Calendario Google quasi sempre aggiornato delle lezioni e degli esami del secondo anno dell'Unimore durante l'Anno Accademico 2019/2020.\n

\n
\n Erre2}>\n

\n Portale contenente appunti e riassunti mantenuto da Lorenzo Balugani.\n

\n
\n vezzalinistefano/Appunti-Algoritmi}>\n

\n Appunti di Algoritmi e Strutture Dati mantenuti da Vezzalini Stefano.\n

\n
\n
\n
\n )\n }\n}\n","import style from \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./components/old/todo.css","webpack:///./routes/home.js","webpack:///./components/old/panel.js","webpack:///./components/old/split.css","webpack:///./components/old/todo.js","webpack:///./components/old/split.js","webpack:///./components/old/panel.less"],"names":["module","exports","Home","render","title","href","Component","Panel","getStyle","style","panel","undefined","this","props","class","id","children","Todo","todo","Split","Array","isArray","map","element","splitchild","split","splitparent"],"mappings":"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","file":"route-home.chunk.6edcf.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","import { Component } from 'preact';\nimport Panel from '../components/old/panel';\nimport Split from '../components/old/split';\nimport Todo from \"../components/old/todo\";\n\nexport default class Home extends Component {\n render() {\n return (\n
\n

Indice

\n \n Apprendimento ed evoluzione in sistemi artificiali}>\n

\n Appunti scritti mentre studiavo per l'esame di Apprendimento ed evoluzione in sistemi artificiali del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Basi di dati}>\n

\n Appunti scritti mentre studiavo per l'esame di Basi di dati del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Calcolo Numerico}>\n

\n Appunti scritti mentre studiavo per l'esame di Calcolo Numerico del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n Ottimizzazione lineare intera}>\n

\n Appunti scritti mentre studiavo per l'esame di Ottimizzazione lineare intera del corso triennale di Informatica all'Unimore.\n

\n

\n TODO: Il semestre è ancora in corso!\n

\n
\n
\n \n Statistica ed elementi di probabilità}>\n

\n Appunti scritti mentre studiavo per l'esame di Statistica ed elementi di probabilità del corso triennale di Informatica all'Unimore del Prof. Luca La Rocca.\n

\n
\n Cleaver}>\n

\n Progetto in Java sviluppato per l'esame di Programmazione ad Oggetti del corso triennale di Informatica all'Unimore, tenuto dai Prof. Giacomo Cabri e Nicola Capodieci.\n

\n
\n Fisica}>\n

\n Appunti delle lezioni di Fisica del corso triennale di Informatica all'Unimore, tenute dalla Prof.ssa Rossella Brunetti nel primo semestre dell'Anno Accademico 2019/2020.\n

\n
\n Sistemi Operativi}>\n

\n Soluzioni agli Arzigogoli proposti dal Prof. Mauro Andreolini durante le lezioni di Sistemi Operativi del corso triennale di Informatica all'Unimore tenutesi nel primo semestre dell'Anno Accademico 2019/2020.\n

\n
\n Algoritmi e Strutture Dati}>\n

\n Appunti delle lezioni di Algoritmi e Strutture Dati del corso triennale di Informatica all'Unimore, tenute dalla Prof.ssa Manuela Montangero nel secondo semestre dell'Anno Accademico 2018/2019.\n

\n
\n Videolezioni di Geometria}>\n

\n Ottime videolezioni di Geometria con licenza CC BY-NC-SA 4.0 che ho trovato sul portale Dolly 2018 dell'Unimore.\n

\n
\n Come installare MinGW}>\n

\n Un breve tutorial con immagini su come installare e configurare MinGW per compilare programmi C e C++ su Windows.\n

\n
\n
\n \n @unimoreinfo}>\n

\n Il gruppo Telegram del corso di Informatica dell'Unimore!\n

\n
\n Calendario Lezioni}>\n

\n Calendario Google quasi sempre aggiornato delle lezioni e degli esami del secondo anno dell'Unimore durante l'Anno Accademico 2019/2020.\n

\n
\n Erre2}>\n

\n Portale contenente appunti e riassunti mantenuto da Lorenzo Balugani.\n

\n
\n vezzalinistefano/Appunti-Algoritmi}>\n

\n Appunti di Algoritmi e Strutture Dati mantenuti da Vezzalini Stefano.\n

\n
\n
\n
\n )\n }\n}\n","import style from \"./panel.less\";\nimport { Component } from 'preact';\n\nexport default class Panel extends Component {\n\tgetStyle() {\n\t\treturn style.panel;\n\t};\n\n\trender() {\n\t\tlet title = null;\n\t\tif(this.props.title !== undefined) {\n\t\t\ttitle = (

{this.props.title}

);\n\t\t}\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{title}\n\t\t\t\t{this.props.children}\n\t\t\t
\n\t\t);\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"split\":\"split__3dL9r\",\"splitparent\":\"splitparent__2H-vS\",\"splitchild\":\"splitchild__1B-Jt\"};","import style from \"./todo.css\";\nimport { Component } from 'preact';\n\nexport default class Todo extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 = (

{this.props.title}

)\n }\n\n let children;\n if(Array.isArray(this.props.children)) {\n children = this.props.children.map(element => {\n return (
{element}
);\n });\n }\n else {\n children =
{this.props.children}
;\n }\n\t\treturn (\n\t
\n {title}\n
{children}
\n
\n );\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"panel__7bYPC\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-home.chunk.b0630.css b/docs/route-home.chunk.81f93.css similarity index 72% rename from docs/route-home.chunk.b0630.css rename to docs/route-home.chunk.81f93.css index e2e41d8..c76a1cf 100644 --- a/docs/route-home.chunk.b0630.css +++ b/docs/route-home.chunk.81f93.css @@ -1 +1 @@ -.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.todo__1UVRh{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0} \ No newline at end of file +.panel__7bYPC{background-color:rgba(160,204,255,.05);padding:8px;border-radius:4px;margin:4px;height:calc(100% - 8px);min-width:256px}.splitparent__2H-vS{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.splitchild__1B-Jt{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-preferred-size:0;flex-basis:0}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0} \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.192fc.esm.js b/docs/route-ottimizzazioneLineare.chunk.192fc.esm.js deleted file mode 100644 index ef381f8..0000000 --- a/docs/route-ottimizzazioneLineare.chunk.192fc.esm.js +++ /dev/null @@ -1,9 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"/fDt":function(l,n,i){"use strict";i.r(n),function(l){i.d(n,"default",(function(){return O}));var e=i("hosL"),a=i("lL4N"),t=i("OMhl"),o=i("HKwK"),u=i("PEwj"),s=(i("jXlC"),i("UEJU")),r=i("h7i1"),d=(i("3Gjt"),i("BSmf")),c=i("xY5u");let m,p,h,f,b,v,_,z,g,x,w,q,L,C,U,k,y,S,E,j,T,D,F=l=>l;const M=String.raw;class O extends e.Component{render(){return l("div",null,l("h1",null,"Ottimizzazione lineare intera"),l(a.a,{title:"Unimore"},l(o.a,{title:"Videolezioni su YouTube"},l("p",null,"Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!"),l("p",null,l("b",null,l("a",{href:"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh"},"Guardate i video qui!")))),l(o.a,{title:"Prossimi appelli"},l("ol",null,l("li",null,l(d.a,{to:"2020-06-08"})),l("li",null,l(d.a,{to:"2020-06-25"})),l("li",null,l(d.a,{to:"2020-07-14"}))))),l(a.a,{title:"Le basi"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione obiettivo è la funzione con valore noto sconosciuto:"),l("p",null,l(t.a,null,M(m||(m=F`z = C_1 \cdot x_1 + C_2 \cdot x_2 + C_n \cdot x_n`))))),l(o.a,{title:"Gradiente"},l("p",null,"Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce."),l("p",null,l(t.a,null,M(p||(p=F`\nabla f = \frac{\delta f}{\delta x_1} e_1 + \frac{\delta f}{\delta x_2} e_2 + \frac{\delta f}{\delta x_n} e_n`)))),l("p",null,l(t.a,null,M(h||(h=F`e_i`)))," è la direzione della coordinata i-esima."),l(u.a,null,"Se ",l(t.a,null,M(f||(f=F`n = 3`))),", allora:",l("ul",null,l("li",null,l(t.a,null,M(b||(b=F`e_1 = (1, 0, 0)`)))),l("li",null,l(t.a,null,M(v||(v=F`e_2 = (0, 1, 0)`)))),l("li",null,l(t.a,null,M(_||(_=F`e_3 = (0, 0, 1)`)))))),l(u.a,null,"Se la funzione obiettivo è ",l(t.a,null,"z = 2w + 3x + 4y"),", il suo gradiente è ",l(t.a,null,M(z||(z=F`\nabla z = (2, 3, 4)`))),"."))),l(a.a,{title:"Forme di un sistema"},l(o.a,{title:"Forma standard"},l("ul",null,l("li",null,l(s.a,null,"Solo equazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma canonica"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma generale"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(r.a,null,"Variabili con qualsiasi valore"))))),l(a.a,{title:"Equivalenza di forma"},l(o.a,{title:"Da standard a generale"},l("p",null,"Convertiamo ogni equazione ",l(t.a,null,M(g||(g=F`=`)))," in due disequazioni ",l(t.a,null,M(x||(x=F`\leq`)))," e ",l(t.a,null,M(w||(w=F`\geq`))),","),l(u.a,null,"Why would you ever do that?!")),l(o.a,{title:"Da canonica a standard"},l("p",null,"Convertiamo le disequazioni in equazioni aggiungendo una variabile slack."),l(u.a,null,l(t.a,null,M(q||(q=F`a \leq 3`)))," diventa ",l(t.a,null,M(L||(L=F`a + s_1 = 3`))),".")),l(o.a,{title:"Da generale a canonica"},l("p",null,"Sostituiamo le variabili potenzialmente negative (unconstrained) ",l(t.a,null,M(C||(C=F`x_j`)))," con due variabili ",l(t.a,null,M(U||(U=F`x_j^+`)))," e ",l(t.a,null,M(k||(k=F`x_j^-`))),"."),l(u.a,null,l(t.a,null,M(y||(y=F`a \in \mathbb{Z}`)))," diventa ",l(t.a,null,M(S||(S=F`a^+ \in \mathbb{N}`)))," e ",l(t.a,null,M(E||(E=F`-a^- \in \mathbb{N}`))),"."))),l(a.a,{title:"La forma standard"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione da minimizzare/massimizzare, tipicamente indicata con una ",l(t.a,null,M(j||(j=F`z`)))," al termine noto.")),l(o.a,{title:"Tableu"},l("p",null,"Un modo per rappresentare sistemi in forma standard, anche noto come ",l("b",null,"matrice equivalente completa")," del sistema."),l(u.a,null,"Il sistema:",l("br",null),l("br",null),l(t.a,null,M(T||(T=F` - \begin{cases} - 2000A + 1000B = z\\ - 1A \leq 3\\ - 1B \leq 3\\ - 2A + 2B \leq 7 - \end{cases} - `))),l("br",null),l("br",null),"Diventa in forma di tableau:",l("br",null),l("br",null),l("table",{class:"right"},l("thead",null,l("tr",null,l("th",null,l("abbr",{title:"Termine noto"},"TN")),l("th",null,l(t.a,null,"x_1")),l("th",null,l(t.a,null,"x_2")),l("th",null,l(t.a,null,"s_1")),l("th",null,l(t.a,null,"s_2")))),l("tbody",null,l("tr",null,l("td",null,l(t.a,null,"z")),l("td",null,l(t.a,null,"2000")),l("td",null,l(t.a,null,"1000")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1"))),l("tr",null,l("td",null,l(t.a,null,"7")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))))))),l(o.a,{title:"Variabili di base"},l("p",null,"Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu."),l("p",null,"La loro controparte sono le ",l("i",null,"variabili fuori base"),"."),l("p",null,"Un sistema lineare è risolto quando tutte le variabili originali (",l(t.a,null,"x_n"),") sono nella base."))),l(a.a,{title:"Simplex"},l(o.a,{title:"Cos'è?"},l("p",null,"Un algoritmo per massimizzare efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan."),l(u.a,null,"E' spiegato semplicemente ",l("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),".")),l(o.a,{title:"I passi"},l("ol",null,l("li",null,"Trasforma il sistema in ",l("b",null,"forma standard"),"."),l("li",null,"Finchè ci sono variabili con coefficienti positivi nella funzione obiettivo:",l("ol",null,l("li",null,l("b",null,"Scegli")," una variabile della funzione obiettivo, chiamandola ",l("i",null,"variabile entrante"),". ",l(u.a,null,"Come? Vedi nel prossimo pannello.")),l("li",null,"Trova la variabile di base (detta ",l("i",null,"variabile uscente"),") con il ",l("b",null,"valore minore")," per il rapporto ",l(t.a,null,M(D||(D=F`\frac{termine\ noto}{coeff.\ variabile\ entrante}`)))),l("li",null,l("b",null,"Riscrivi")," tutte le funzioni del sistema in termini della variabile entrante."))),l("li",null,"Il ",l("b",null,"termine noto")," della funzione obiettivo è il tuo risultato."))),l(o.a,{title:"Sotto forma di tableau"},l("p",null,"Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.")),l(o.a,{title:"Criteri per la variabile entrante"},l("ul",null,l("li",null,"Coefficiente maggiore nella funzione obiettivo."),l("li",null,"Incremento maggiore della funzione obiettivo."),l("li",null,"A caso."),l("li",null,l("i",null,"Regola di Bland"),": scegli variabili entranti e uscenti con indice minore (ovvero, prendi le prime possibili). ",l(u.a,null,"È usato nella teoria perchè impedisce i cicli infiniti!")))),l(o.a,{title:"Esempio"},l(u.a,null,"Ho risolto il problema 3 del file ",l("a",{href:"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716"},l("code",null,"Ex_LP_testo"))," con il Simplex:",l("p",null,l(c.a,{src:"https://i.imgur.com/1r405Mb.jpg"}))))),l(a.a,{title:"Metodo delle due fasi"},l(o.a,{title:"Metodo delle due fasi"},l("p",null,"Un estensione del Simplex per permettere la risoluzione di problemi con termini noti negativi."),l("p",null,"Prevede l'introduzione di un ",l("b",null,"problema ausiliario"),"."))))}}}.call(this,i("hosL").h)},"3k98":function(l){l.exports={todo:"todo__1UVRh"}},"56OW":function(l){l.exports={plus:"plus__2u13i"}},BSmf:function(l,n,i){"use strict";(function(l){i.d(n,"a",(function(){return o}));var e=i("hosL"),a=i("EfTa"),t=i.n(a);class o extends e.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let n="Unknown date",i=t.a.timer,e={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){n=new Date(this.props.to);let l=n-this.state.now;l>0?e={milliseconds:l%1e3,seconds:Math.floor(l/1e3)%60,minutes:Math.floor(l/6e4)%60,hours:Math.floor(l/36e5)%24,days:Math.floor(l/864e5)}:(e={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},i+=" "+t.a.expired)}else i+=" "+t.a.unknown;return l("div",{class:i,title:n},l("div",{class:t.a.days+" "+t.a.count},e.days),l("div",{className:t.a.days+" "+t.a.text},"giorni"),l("div",{class:t.a.hours+" "+t.a.count},e.hours),l("div",{className:t.a.hours+" "+t.a.text},"ore"),l("div",{class:t.a.minutes+" "+t.a.count},e.minutes),l("div",{className:t.a.minutes+" "+t.a.text},"minuti"),l("div",{class:t.a.seconds+" "+t.a.count},e.seconds),l("div",{class:t.a.seconds+" "+t.a.text},"secondi"),l("div",{class:t.a.remaining},"rimasti"))}}}).call(this,i("hosL").h)},EfTa:function(l){l.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"}},OMhl:function(l,n,i){"use strict";(function(l){var e=i("p7QU"),a=i.n(e),t=i("QRet"),o=i("8CDw"),u=i("wQ73");n.a=function(n){let i,e=Object(t.b)(o.a),s=Object(t.b)(u.a);return i=void 0===n.inline?s:n.inline,l("img",{src:`https://latex.codecogs.com/svg.latex?${`${i?"\\inline":""} {\\color{${e}} ${n.children} }`}`,alt:n.children,title:n.children,class:a.a.latex})}}).call(this,i("hosL").h)},UEJU:function(l,n,i){"use strict";(function(l){i.d(n,"a",(function(){return o}));var e=i("nhUl"),a=i.n(e),t=i("hosL");class o extends t.Component{render(){return l("span",{class:a.a.minus},this.props.children)}}}).call(this,i("hosL").h)},h7i1:function(l,n,i){"use strict";(function(l){i.d(n,"a",(function(){return o}));var e=i("56OW"),a=i.n(e),t=i("hosL");class o extends t.Component{render(){return l("span",{class:a.a.plus},this.props.children)}}}).call(this,i("hosL").h)},jXlC:function(l,n,i){"use strict";(function(l){i.d(n,"a",(function(){return o}));var e=i("3k98"),a=i.n(e),t=i("hosL");class o extends t.Component{render(){return l("span",{class:a.a.todo},this.props.children)}}}).call(this,i("hosL").h)},nhUl:function(l){l.exports={minus:"minus__2EaF0"}},p7QU:function(l){l.exports={latex:"latex__3zlIu"}},wQ73:function(l,n,i){"use strict";var e=i("hosL");n.a=Object(e.createContext)(!0)},xY5u:function(l,n,i){"use strict";(function(l){n.a=function(n){return l("a",{href:n.src,title:n.alt,target:"_blank"},l("img",{src:n.src,alt:n.alt}))}}).call(this,i("hosL").h)}}]); -//# sourceMappingURL=route-ottimizzazioneLineare.chunk.192fc.esm.js.map \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.353b8.esm.js b/docs/route-ottimizzazioneLineare.chunk.353b8.esm.js new file mode 100644 index 0000000..144bef2 --- /dev/null +++ b/docs/route-ottimizzazioneLineare.chunk.353b8.esm.js @@ -0,0 +1,9 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"/fDt":function(l,i,n){"use strict";n.r(i),function(l){n.d(i,"default",(function(){return I}));var a=n("hosL"),e=n("lL4N"),t=n("OMhl"),o=n("HKwK"),u=n("PEwj"),s=(n("jXlC"),n("UEJU")),r=n("h7i1"),d=(n("3Gjt"),n("BSmf")),c=n("xY5u"),m=n("8YA6"),p=n("dIxp");let b,h,f,v,z,_,g,x,w,q,L,S,C,U,y,k,E,O,j,F,T,M,N,B=l=>l;const D=String.raw;class I extends a.Component{render(){return l("div",null,l("h1",null,"Ottimizzazione lineare intera"),l(e.a,{title:"Unimore"},l(o.a,{title:"Videolezioni su YouTube"},l("p",null,"Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!"),l("p",null,l("b",null,l("a",{href:"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh"},"Guardate i video qui!")))),l(o.a,{title:"Prossimi appelli"},l("ol",null,l("li",null,l(d.a,{to:"2020-06-08"})),l("li",null,l(d.a,{to:"2020-06-25"})),l("li",null,l(d.a,{to:"2020-07-14"}))))),l(e.a,{title:"Le basi"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione obiettivo è la funzione con valore noto sconosciuto:"),l("p",null,l(t.a,null,D(b||(b=B`z = C_1 \cdot x_1 + C_2 \cdot x_2 + C_n \cdot x_n`))))),l(o.a,{title:"Gradiente"},l("p",null,"Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce."),l("p",null,l(t.a,null,D(h||(h=B`\nabla f = \frac{\delta f}{\delta x_1} e_1 + \frac{\delta f}{\delta x_2} e_2 + \frac{\delta f}{\delta x_n} e_n`)))),l("p",null,l(t.a,null,D(f||(f=B`e_i`)))," è la direzione della coordinata i-esima."),l(u.a,null,"Se ",l(t.a,null,D(v||(v=B`n = 3`))),", allora:",l("ul",null,l("li",null,l(t.a,null,D(z||(z=B`e_1 = (1, 0, 0)`)))),l("li",null,l(t.a,null,D(_||(_=B`e_2 = (0, 1, 0)`)))),l("li",null,l(t.a,null,D(g||(g=B`e_3 = (0, 0, 1)`)))))),l(u.a,null,"Se la funzione obiettivo è ",l(t.a,null,"z = 2w + 3x + 4y"),", il suo gradiente è ",l(t.a,null,D(x||(x=B`\nabla z = (2, 3, 4)`))),"."))),l(e.a,{title:"Forme di un sistema"},l(o.a,{title:"Forma standard"},l("ul",null,l("li",null,l(s.a,null,"Solo equazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma canonica"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(s.a,null,"Tutte le variabili maggiori di zero")))),l(o.a,{title:"Forma generale"},l("ul",null,l("li",null,l(r.a,null,"Equazioni e disequazioni")),l("li",null,l(r.a,null,"Variabili con qualsiasi valore"))))),l(e.a,{title:"Equivalenza di forma"},l(o.a,{title:"Da standard a generale"},l("p",null,"Convertiamo ogni equazione ",l(t.a,null,D(w||(w=B`=`)))," in due disequazioni ",l(t.a,null,D(q||(q=B`\leq`)))," e ",l(t.a,null,D(L||(L=B`\geq`))),","),l(u.a,null,"Why would you ever do that?!")),l(o.a,{title:"Da canonica a standard"},l("p",null,"Convertiamo le disequazioni in equazioni aggiungendo una variabile slack."),l(u.a,null,l(t.a,null,D(S||(S=B`a \leq 3`)))," diventa ",l(t.a,null,D(C||(C=B`a + s_1 = 3`))),".")),l(o.a,{title:"Da generale a canonica"},l("p",null,"Sostituiamo le variabili potenzialmente negative (unconstrained) ",l(t.a,null,D(U||(U=B`x_j`)))," con due variabili ",l(t.a,null,D(y||(y=B`x_j^+`)))," e ",l(t.a,null,D(k||(k=B`x_j^-`))),"."),l(u.a,null,l(t.a,null,D(E||(E=B`a \in \mathbb{Z}`)))," diventa ",l(t.a,null,D(O||(O=B`a^+ \in \mathbb{N}`)))," e ",l(t.a,null,D(j||(j=B`-a^- \in \mathbb{N}`))),"."))),l(e.a,{title:"La forma standard"},l(o.a,{title:"Funzione obiettivo"},l("p",null,"La funzione da minimizzare/massimizzare, tipicamente indicata con una ",l(t.a,null,D(F||(F=B`z`)))," al termine noto.")),l(o.a,{title:"Tableu"},l("p",null,"Un modo per rappresentare sistemi in forma standard, anche noto come ",l("b",null,"matrice equivalente completa")," del sistema."),l(u.a,null,"Il sistema:",l("br",null),l("br",null),l(t.a,null,D(T||(T=B` + \begin{cases} + 2000A + 1000B = z\\ + 1A \leq 3\\ + 1B \leq 3\\ + 2A + 2B \leq 7 + \end{cases} + `))),l("br",null),l("br",null),"Diventa in forma di tableau:",l("br",null),l("br",null),l("table",{class:"right"},l("thead",null,l("tr",null,l("th",null,l("abbr",{title:"Termine noto"},"TN")),l("th",null,l(t.a,null,"x_1")),l("th",null,l(t.a,null,"x_2")),l("th",null,l(t.a,null,"s_1")),l("th",null,l(t.a,null,"s_2")))),l("tbody",null,l("tr",null,l("td",null,l(t.a,null,"z")),l("td",null,l(t.a,null,"2000")),l("td",null,l(t.a,null,"1000")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0"))),l("tr",null,l("td",null,l(t.a,null,"3")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"1"))),l("tr",null,l("td",null,l(t.a,null,"7")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"2")),l("td",null,l(t.a,null,"0")),l("td",null,l(t.a,null,"0"))))))),l(o.a,{title:"Variabili di base"},l("p",null,"Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu."),l("p",null,"La loro controparte sono le ",l("i",null,"variabili fuori base"),"."),l("p",null,"Un sistema lineare è risolto quando tutte le variabili originali (",l(t.a,null,"x_n"),") sono nella base."))),l(e.a,{title:"Simplex"},l(o.a,{title:"Cos'è?"},l("p",null,"Un algoritmo per ",l(s.a,null,"minimizzare"),"/",l(r.a,null,"massimizzare")," efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan."),l(u.a,null,"E' spiegato in modo semplice ",l("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),", e ci sono dei codici sorgenti di esempio ",l("a",{href:"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/"},"qui"),".")),l(o.a,{title:"I passi"},l("ol",null,l("li",null,"Trasforma il sistema in ",l("b",null,"forma standard"),"."),l("li",null,"Trova tante variabili ",l("b",null,"linearmente indipendenti")," quante siano le righe: esse saranno la ",l("i",null,"base iniziale"),"."),l("li",null,"Finchè ci sono variabili con coefficienti ",l(s.a,null,"positivi"),"/",l(r.a,null,"negativi")," nella funzione obiettivo:",l("ol",null,l("li",null,l("b",null,"Scegli")," la prima variabile con coefficiente ",l(s.a,null,"positivo"),"/",l(r.a,null,"negativo")," nella funzione obiettivo: essa è la ",l("i",null,"variabile entrante"),".",l(u.a,null,"Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (",l("i",null,"Regola di Bland"),") ci si assicura che l'algoritmo termini.")),l("li",null,"Trova la variabile di base (detta ",l("i",null,"variabile uscente"),") tramite il rapporto ",l(t.a,null,D(M||(M=B`\frac{termine\ noto}{coeff.\ variabile\ entrante}`))),": scegli la variabile con il ",l("b",null,"rapporto minore"),", assicurandoti che esso sia ",l("b",null,"positivo"),". Se tutti i rapporti sono negativi, allora il problema è ",l("b",null,l(p.a,null)),"."),l("li",null,l("b",null,"Riscrivi")," tutte le funzioni del sistema in termini della variabile entrante."))),l("li",null,"I ",l("b",null,"termini noti dei vincoli")," sono le coordinate del risultato, mentre il ",l("b",null,"termine noto della funzione obiettivo")," è il valore ",l(s.a,null,"minimizzato"),"/",l(r.a,null,"massimizzato"),"."))),l(o.a,{title:"Sotto forma di tableau"},l("p",null,"Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti."))),l(e.a,null,l(o.a,{title:"Soluzioni di base degenerata"},l("p",null,"Una soluzione con almeno una variabile di valore ",l(t.a,null,"0"),", dovuta a uno o più ",l("b",null,"vincoli ridondanti"),"."),l("p",null,"Senza ",l("b",null,"Regola di Bland")," e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.")),l(o.a,{title:"Esempio"},l(u.a,null,"Ho risolto il problema 3 del file ",l("a",{href:"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716"},l("code",null,"Ex_LP_testo"))," con il Simplex:",l("p",null,l(c.a,{src:"https://i.imgur.com/1r405Mb.jpg"}))))),l(e.a,{title:"Metodo delle due fasi"},l(o.a,{title:"Metodo delle due fasi"},l("p",null,"Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile."),l("p",null,"Prevede l'introduzione di un ",l("i",null,"problema ausiliario"),", le cui variabili sono dette ",l("i",null,"artificiali")," e sono solitamente rappresentate come ",l(t.a,null,D(N||(N=B`y_n`))),"."),l(u.a,null,"E' spiegato in modo semplice ",l("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),".")),l(o.a,{title:"Procedimento"},l("ol",null,l("li",null,"Crea un nuovo tableau, ",l("b",null,"aggiungendo variabili artificiali")," in modo da avere una base ammissibile."),l("li",null,"Sostituisci la vecchia funzione obiettivo con una nuova che ",l("b",null,l(s.a,null,"minimizzi")," la somma")," di tutte le variabili artificiali."),l("li",null,l("u",null,"Fase 1"),": ",l("b",null,"Risolvi")," il nuovo problema con il metodo Simplex."),l("li",null,"Se il Simplex termina con ancora ",l("b",null,"variabili artificiali nella base"),", allora il problema è ",l("b",null,l(m.a,null)),"."),l("li",null,"Una volta che le variabili artificiali sono fuori base, ",l("b",null,"elimina")," le loro colonne e la nuova funzione obiettivo.",l("br",null)),l("li",null,"Riporta il tableau in forma base compiendo operazioni per ",l("b",null,"azzerare i coefficienti")," delle variabili di base nella funzione obiettivo."),l("li",null,l("u",null,"Fase 2"),": ",l("b",null,"Risolvi")," il tableau con il metodo Simplex.")))))}}}.call(this,n("hosL").h)},"3k98":function(l){l.exports={todo:"todo__1UVRh"}},"56OW":function(l){l.exports={plus:"plus__2u13i"}},"8YA6":function(l,i,n){"use strict";(function(l){var a=n("zCOL"),e=n.n(a);i.a=function(i){return l("span",{class:e.a.unfeasible},i.children?i.children:"unfeasible")}}).call(this,n("hosL").h)},BSmf:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("hosL"),e=n("EfTa"),t=n.n(e);class o extends a.Component{constructor(){super(),this.state={now:Date.now()},this.timer=null}componentDidMount(){this.timer=setInterval(()=>{this.setState({now:Date.now()})},1e3)}componentWillUnmount(){null!==this.timer&&clearInterval(this.timer)}render(){let i="Unknown date",n=t.a.timer,a={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){i=new Date(this.props.to);let l=i-this.state.now;l>0?a={milliseconds:l%1e3,seconds:Math.floor(l/1e3)%60,minutes:Math.floor(l/6e4)%60,hours:Math.floor(l/36e5)%24,days:Math.floor(l/864e5)}:(a={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},n+=" "+t.a.expired)}else n+=" "+t.a.unknown;return l("div",{class:n,title:i},l("div",{class:t.a.days+" "+t.a.count},a.days),l("div",{className:t.a.days+" "+t.a.text},"giorni"),l("div",{class:t.a.hours+" "+t.a.count},a.hours),l("div",{className:t.a.hours+" "+t.a.text},"ore"),l("div",{class:t.a.minutes+" "+t.a.count},a.minutes),l("div",{className:t.a.minutes+" "+t.a.text},"minuti"),l("div",{class:t.a.seconds+" "+t.a.count},a.seconds),l("div",{class:t.a.seconds+" "+t.a.text},"secondi"),l("div",{class:t.a.remaining},"rimasti"))}}}).call(this,n("hosL").h)},EfTa:function(l){l.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"}},IwNZ:function(l){l.exports={unbounded:"unbounded__3Q7MA"}},OMhl:function(l,i,n){"use strict";(function(l){var a=n("p7QU"),e=n.n(a),t=n("QRet"),o=n("8CDw"),u=n("wQ73");i.a=function(i){let n,a=Object(t.b)(o.a),s=Object(t.b)(u.a);return n=void 0===i.inline?s:i.inline,l("img",{src:`https://latex.codecogs.com/svg.latex?${`${n?"\\inline":""} {\\color{${a}} ${i.children} }`}`,alt:i.children,title:i.children,class:e.a.latex})}}).call(this,n("hosL").h)},UEJU:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("nhUl"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.minus},this.props.children)}}}).call(this,n("hosL").h)},dIxp:function(l,i,n){"use strict";(function(l){var a=n("IwNZ"),e=n.n(a);i.a=function(i){return l("span",{class:e.a.unbounded},i.children?i.children:"unbounded")}}).call(this,n("hosL").h)},h7i1:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("56OW"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.plus},this.props.children)}}}).call(this,n("hosL").h)},jXlC:function(l,i,n){"use strict";(function(l){n.d(i,"a",(function(){return o}));var a=n("3k98"),e=n.n(a),t=n("hosL");class o extends t.Component{render(){return l("span",{class:e.a.todo},this.props.children)}}}).call(this,n("hosL").h)},nhUl:function(l){l.exports={minus:"minus__2EaF0"}},p7QU:function(l){l.exports={latex:"latex__3zlIu"}},wQ73:function(l,i,n){"use strict";var a=n("hosL");i.a=Object(a.createContext)(!0)},xY5u:function(l,i,n){"use strict";(function(l){i.a=function(i){return l("a",{href:i.src,title:i.alt,target:"_blank"},l("img",{src:i.src,alt:i.alt}))}}).call(this,n("hosL").h)},zCOL:function(l){l.exports={unfeasible:"unfeasible__3QoOn"}}}]); +//# sourceMappingURL=route-ottimizzazioneLineare.chunk.353b8.esm.js.map \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.192fc.esm.js.map b/docs/route-ottimizzazioneLineare.chunk.353b8.esm.js.map similarity index 52% rename from docs/route-ottimizzazioneLineare.chunk.192fc.esm.js.map rename to docs/route-ottimizzazioneLineare.chunk.353b8.esm.js.map index fce7573..3423d7d 100644 --- a/docs/route-ottimizzazioneLineare.chunk.192fc.esm.js.map +++ b/docs/route-ottimizzazioneLineare.chunk.353b8.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"route-ottimizzazioneLineare.chunk.192fc.esm.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"route-ottimizzazioneLineare.chunk.353b8.esm.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.762b1.js b/docs/route-ottimizzazioneLineare.chunk.762b1.js new file mode 100644 index 0000000..b94fe37 --- /dev/null +++ b/docs/route-ottimizzazioneLineare.chunk.762b1.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"/fDt":function(n,l,i){"use strict";i.r(l),function(n){function e(){var n=S(["y_n"]);return e=function(){return n},n}function t(){var n=S(["\frac{termine noto}{coeff. variabile entrante}"],["\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}"]);return t=function(){return n},n}function a(){var n=S(["\n \begin{cases}\n 2000A + 1000B = z\\\n 1A leq 3\\\n 1B leq 3\\\n 2A + 2B leq 7\n end{cases}\n "],["\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n "]);return a=function(){return n},n}function o(){var n=S(["z"]);return o=function(){return n},n}function u(){var n=S(["-a^- in mathbb{N}"],["-a^- \\in \\mathbb{N}"]);return u=function(){return n},n}function r(){var n=S(["a^+ in mathbb{N}"],["a^+ \\in \\mathbb{N}"]);return r=function(){return n},n}function s(){var n=S(["a in mathbb{Z}"],["a \\in \\mathbb{Z}"]);return s=function(){return n},n}function c(){var n=S(["x_j^-"]);return c=function(){return n},n}function d(){var n=S(["x_j^+"]);return d=function(){return n},n}function p(){var n=S(["x_j"]);return p=function(){return n},n}function f(){var n=S(["a + s_1 = 3"]);return f=function(){return n},n}function m(){var n=S(["a leq 3"],["a \\leq 3"]);return m=function(){return n},n}function b(){var n=S(["geq"],["\\geq"]);return b=function(){return n},n}function v(){var n=S(["leq"],["\\leq"]);return v=function(){return n},n}function h(){var n=S(["="]);return h=function(){return n},n}function _(){var n=S(["\nabla z = (2, 3, 4)"],["\\nabla z = (2, 3, 4)"]);return _=function(){return n},n}function z(){var n=S(["e_3 = (0, 0, 1)"]);return z=function(){return n},n}function g(){var n=S(["e_2 = (0, 1, 0)"]);return g=function(){return n},n}function x(){var n=S(["e_1 = (1, 0, 0)"]);return x=function(){return n},n}function w(){var n=S(["n = 3"]);return w=function(){return n},n}function y(){var n=S(["e_i"]);return y=function(){return n},n}function q(){var n=S(["\nabla f = \frac{delta f}{delta x_1} e_1 + \frac{delta f}{delta x_2} e_2 + \frac{delta f}{delta x_n} e_n"],["\\nabla f = \\frac{\\delta f}{\\delta x_1} e_1 + \\frac{\\delta f}{\\delta x_2} e_2 + \\frac{\\delta f}{\\delta x_n} e_n"]);return q=function(){return n},n}function L(){var n=S(["z = C_1 cdot x_1 + C_2 cdot x_2 + C_n cdot x_n"],["z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n"]);return L=function(){return n},n}function S(n,l){return l||(l=n.slice(0)),n.raw=l,n}i.d(l,"default",(function(){return I}));var C=i("hosL"),U=i("lL4N"),O=i("OMhl"),j=i("HKwK"),k=i("PEwj"),E=(i("jXlC"),i("UEJU")),B=i("h7i1"),N=(i("3Gjt"),i("BSmf")),F=i("xY5u"),T=i("8YA6"),M=i("dIxp"),D=String.raw,I=function(l){function i(){return l.apply(this,arguments)||this}var S,C;return C=l,(S=i).prototype=Object.create(C.prototype),S.prototype.constructor=S,S.__proto__=C,i.prototype.render=function(){return n("div",null,n("h1",null,"Ottimizzazione lineare intera"),n(U.a,{title:"Unimore"},n(j.a,{title:"Videolezioni su YouTube"},n("p",null,"Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!"),n("p",null,n("b",null,n("a",{href:"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh"},"Guardate i video qui!")))),n(j.a,{title:"Prossimi appelli"},n("ol",null,n("li",null,n(N.a,{to:"2020-06-08"})),n("li",null,n(N.a,{to:"2020-06-25"})),n("li",null,n(N.a,{to:"2020-07-14"}))))),n(U.a,{title:"Le basi"},n(j.a,{title:"Funzione obiettivo"},n("p",null,"La funzione obiettivo è la funzione con valore noto sconosciuto:"),n("p",null,n(O.a,null,D(L())))),n(j.a,{title:"Gradiente"},n("p",null,"Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce."),n("p",null,n(O.a,null,D(q()))),n("p",null,n(O.a,null,D(y()))," è la direzione della coordinata i-esima."),n(k.a,null,"Se ",n(O.a,null,D(w())),", allora:",n("ul",null,n("li",null,n(O.a,null,D(x()))),n("li",null,n(O.a,null,D(g()))),n("li",null,n(O.a,null,D(z()))))),n(k.a,null,"Se la funzione obiettivo è ",n(O.a,null,"z = 2w + 3x + 4y"),", il suo gradiente è ",n(O.a,null,D(_())),"."))),n(U.a,{title:"Forme di un sistema"},n(j.a,{title:"Forma standard"},n("ul",null,n("li",null,n(E.a,null,"Solo equazioni")),n("li",null,n(E.a,null,"Tutte le variabili maggiori di zero")))),n(j.a,{title:"Forma canonica"},n("ul",null,n("li",null,n(B.a,null,"Equazioni e disequazioni")),n("li",null,n(E.a,null,"Tutte le variabili maggiori di zero")))),n(j.a,{title:"Forma generale"},n("ul",null,n("li",null,n(B.a,null,"Equazioni e disequazioni")),n("li",null,n(B.a,null,"Variabili con qualsiasi valore"))))),n(U.a,{title:"Equivalenza di forma"},n(j.a,{title:"Da standard a generale"},n("p",null,"Convertiamo ogni equazione ",n(O.a,null,D(h()))," in due disequazioni ",n(O.a,null,D(v()))," e ",n(O.a,null,D(b())),","),n(k.a,null,"Why would you ever do that?!")),n(j.a,{title:"Da canonica a standard"},n("p",null,"Convertiamo le disequazioni in equazioni aggiungendo una variabile slack."),n(k.a,null,n(O.a,null,D(m()))," diventa ",n(O.a,null,D(f())),".")),n(j.a,{title:"Da generale a canonica"},n("p",null,"Sostituiamo le variabili potenzialmente negative (unconstrained) ",n(O.a,null,D(p()))," con due variabili ",n(O.a,null,D(d()))," e ",n(O.a,null,D(c())),"."),n(k.a,null,n(O.a,null,D(s()))," diventa ",n(O.a,null,D(r()))," e ",n(O.a,null,D(u())),"."))),n(U.a,{title:"La forma standard"},n(j.a,{title:"Funzione obiettivo"},n("p",null,"La funzione da minimizzare/massimizzare, tipicamente indicata con una ",n(O.a,null,D(o()))," al termine noto.")),n(j.a,{title:"Tableu"},n("p",null,"Un modo per rappresentare sistemi in forma standard, anche noto come ",n("b",null,"matrice equivalente completa")," del sistema."),n(k.a,null,"Il sistema:",n("br",null),n("br",null),n(O.a,null,D(a())),n("br",null),n("br",null),"Diventa in forma di tableau:",n("br",null),n("br",null),n("table",{class:"right"},n("thead",null,n("tr",null,n("th",null,n("abbr",{title:"Termine noto"},"TN")),n("th",null,n(O.a,null,"x_1")),n("th",null,n(O.a,null,"x_2")),n("th",null,n(O.a,null,"s_1")),n("th",null,n(O.a,null,"s_2")))),n("tbody",null,n("tr",null,n("td",null,n(O.a,null,"z")),n("td",null,n(O.a,null,"2000")),n("td",null,n(O.a,null,"1000")),n("td",null,n(O.a,null,"0")),n("td",null,n(O.a,null,"0"))),n("tr",null,n("td",null,n(O.a,null,"3")),n("td",null,n(O.a,null,"1")),n("td",null,n(O.a,null,"0")),n("td",null,n(O.a,null,"1")),n("td",null,n(O.a,null,"0"))),n("tr",null,n("td",null,n(O.a,null,"3")),n("td",null,n(O.a,null,"0")),n("td",null,n(O.a,null,"1")),n("td",null,n(O.a,null,"0")),n("td",null,n(O.a,null,"1"))),n("tr",null,n("td",null,n(O.a,null,"7")),n("td",null,n(O.a,null,"2")),n("td",null,n(O.a,null,"2")),n("td",null,n(O.a,null,"0")),n("td",null,n(O.a,null,"0"))))))),n(j.a,{title:"Variabili di base"},n("p",null,"Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu."),n("p",null,"La loro controparte sono le ",n("i",null,"variabili fuori base"),"."),n("p",null,"Un sistema lineare è risolto quando tutte le variabili originali (",n(O.a,null,"x_n"),") sono nella base."))),n(U.a,{title:"Simplex"},n(j.a,{title:"Cos'è?"},n("p",null,"Un algoritmo per ",n(E.a,null,"minimizzare"),"/",n(B.a,null,"massimizzare")," efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan."),n(k.a,null,"E' spiegato in modo semplice ",n("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),", e ci sono dei codici sorgenti di esempio ",n("a",{href:"https://www.cs.cmu.edu/~15451-f17/handouts/simplexcodes/"},"qui"),".")),n(j.a,{title:"I passi"},n("ol",null,n("li",null,"Trasforma il sistema in ",n("b",null,"forma standard"),"."),n("li",null,"Trova tante variabili ",n("b",null,"linearmente indipendenti")," quante siano le righe: esse saranno la ",n("i",null,"base iniziale"),"."),n("li",null,"Finchè ci sono variabili con coefficienti ",n(E.a,null,"positivi"),"/",n(B.a,null,"negativi")," nella funzione obiettivo:",n("ol",null,n("li",null,n("b",null,"Scegli")," la prima variabile con coefficiente ",n(E.a,null,"positivo"),"/",n(B.a,null,"negativo")," nella funzione obiettivo: essa è la ",n("i",null,"variabile entrante"),".",n(k.a,null,"Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (",n("i",null,"Regola di Bland"),") ci si assicura che l'algoritmo termini.")),n("li",null,"Trova la variabile di base (detta ",n("i",null,"variabile uscente"),") tramite il rapporto ",n(O.a,null,D(t())),": scegli la variabile con il ",n("b",null,"rapporto minore"),", assicurandoti che esso sia ",n("b",null,"positivo"),". Se tutti i rapporti sono negativi, allora il problema è ",n("b",null,n(M.a,null)),"."),n("li",null,n("b",null,"Riscrivi")," tutte le funzioni del sistema in termini della variabile entrante."))),n("li",null,"I ",n("b",null,"termini noti dei vincoli")," sono le coordinate del risultato, mentre il ",n("b",null,"termine noto della funzione obiettivo")," è il valore ",n(E.a,null,"minimizzato"),"/",n(B.a,null,"massimizzato"),"."))),n(j.a,{title:"Sotto forma di tableau"},n("p",null,"Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti."))),n(U.a,null,n(j.a,{title:"Soluzioni di base degenerata"},n("p",null,"Una soluzione con almeno una variabile di valore ",n(O.a,null,"0"),", dovuta a uno o più ",n("b",null,"vincoli ridondanti"),"."),n("p",null,"Senza ",n("b",null,"Regola di Bland")," e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.")),n(j.a,{title:"Esempio"},n(k.a,null,"Ho risolto il problema 3 del file ",n("a",{href:"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716"},n("code",null,"Ex_LP_testo"))," con il Simplex:",n("p",null,n(F.a,{src:"https://i.imgur.com/1r405Mb.jpg"}))))),n(U.a,{title:"Metodo delle due fasi"},n(j.a,{title:"Metodo delle due fasi"},n("p",null,"Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile."),n("p",null,"Prevede l'introduzione di un ",n("i",null,"problema ausiliario"),", le cui variabili sono dette ",n("i",null,"artificiali")," e sono solitamente rappresentate come ",n(O.a,null,D(e())),"."),n(k.a,null,"E' spiegato in modo semplice ",n("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),".")),n(j.a,{title:"Procedimento"},n("ol",null,n("li",null,"Crea un nuovo tableau, ",n("b",null,"aggiungendo variabili artificiali")," in modo da avere una base ammissibile."),n("li",null,"Sostituisci la vecchia funzione obiettivo con una nuova che ",n("b",null,n(E.a,null,"minimizzi")," la somma")," di tutte le variabili artificiali."),n("li",null,n("u",null,"Fase 1"),": ",n("b",null,"Risolvi")," il nuovo problema con il metodo Simplex."),n("li",null,"Se il Simplex termina con ancora ",n("b",null,"variabili artificiali nella base"),", allora il problema è ",n("b",null,n(T.a,null)),"."),n("li",null,"Una volta che le variabili artificiali sono fuori base, ",n("b",null,"elimina")," le loro colonne e la nuova funzione obiettivo.",n("br",null)),n("li",null,"Riporta il tableau in forma base compiendo operazioni per ",n("b",null,"azzerare i coefficienti")," delle variabili di base nella funzione obiettivo."),n("li",null,n("u",null,"Fase 2"),": ",n("b",null,"Risolvi")," il tableau con il metodo Simplex.")))))},i}(C.Component)}.call(this,i("hosL").h)},"3k98":function(n){n.exports={todo:"todo__1UVRh"}},"56OW":function(n){n.exports={plus:"plus__2u13i"}},"8YA6":function(n,l,i){"use strict";(function(n){var e=i("zCOL"),t=i.n(e);l.a=function(l){return n("span",{class:t.a.unfeasible},l.children?l.children:"unfeasible")}}).call(this,i("hosL").h)},BSmf:function(n,l,i){"use strict";(function(n){i.d(l,"a",(function(){return o}));var e=i("hosL"),t=i("EfTa"),a=i.n(t),o=function(l){function i(){var n;return(n=l.call(this)||this).state={now:Date.now()},n.timer=null,n}var e,t;t=l,(e=i).prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t;var o=i.prototype;return o.componentDidMount=function(){var n=this;this.timer=setInterval((function(){n.setState({now:Date.now()})}),1e3)},o.componentWillUnmount=function(){null!==this.timer&&clearInterval(this.timer)},o.render=function(){var l="Unknown date",i=a.a.timer,e={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){var t=(l=new Date(this.props.to))-this.state.now;t>0?e={milliseconds:t%1e3,seconds:Math.floor(t/1e3)%60,minutes:Math.floor(t/6e4)%60,hours:Math.floor(t/36e5)%24,days:Math.floor(t/864e5)}:(e={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},i+=" "+a.a.expired)}else i+=" "+a.a.unknown;return n("div",{class:i,title:l},n("div",{class:a.a.days+" "+a.a.count},e.days),n("div",{className:a.a.days+" "+a.a.text},"giorni"),n("div",{class:a.a.hours+" "+a.a.count},e.hours),n("div",{className:a.a.hours+" "+a.a.text},"ore"),n("div",{class:a.a.minutes+" "+a.a.count},e.minutes),n("div",{className:a.a.minutes+" "+a.a.text},"minuti"),n("div",{class:a.a.seconds+" "+a.a.count},e.seconds),n("div",{class:a.a.seconds+" "+a.a.text},"secondi"),n("div",{class:a.a.remaining},"rimasti"))},i}(e.Component)}).call(this,i("hosL").h)},EfTa:function(n){n.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"}},IwNZ:function(n){n.exports={unbounded:"unbounded__3Q7MA"}},OMhl:function(n,l,i){"use strict";(function(n){var e=i("p7QU"),t=i.n(e),a=i("QRet"),o=i("8CDw"),u=i("wQ73");l.a=function(l){var i=Object(a.b)(o.a),e=Object(a.b)(u.a);return n("img",{src:"https://latex.codecogs.com/svg.latex?"+(((void 0===l.inline?e:l.inline)?"\\inline":"")+" {\\color{"+i+"} "+l.children+" }"),alt:l.children,title:l.children,class:t.a.latex})}}).call(this,i("hosL").h)},UEJU:function(n,l,i){"use strict";(function(n){i.d(l,"a",(function(){return a}));var e=i("nhUl"),t=i.n(e),a=function(l){function i(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=i).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,i.prototype.render=function(){return n("span",{class:t.a.minus},this.props.children)},i}(i("hosL").Component)}).call(this,i("hosL").h)},dIxp:function(n,l,i){"use strict";(function(n){var e=i("IwNZ"),t=i.n(e);l.a=function(l){return n("span",{class:t.a.unbounded},l.children?l.children:"unbounded")}}).call(this,i("hosL").h)},h7i1:function(n,l,i){"use strict";(function(n){i.d(l,"a",(function(){return a}));var e=i("56OW"),t=i.n(e),a=function(l){function i(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=i).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,i.prototype.render=function(){return n("span",{class:t.a.plus},this.props.children)},i}(i("hosL").Component)}).call(this,i("hosL").h)},jXlC:function(n,l,i){"use strict";(function(n){i.d(l,"a",(function(){return a}));var e=i("3k98"),t=i.n(e),a=function(l){function i(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=i).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,i.prototype.render=function(){return n("span",{class:t.a.todo},this.props.children)},i}(i("hosL").Component)}).call(this,i("hosL").h)},nhUl:function(n){n.exports={minus:"minus__2EaF0"}},p7QU:function(n){n.exports={latex:"latex__3zlIu"}},wQ73:function(n,l,i){"use strict";var e=i("hosL");l.a=Object(e.createContext)(!0)},xY5u:function(n,l,i){"use strict";(function(n){l.a=function(l){return n("a",{href:l.src,title:l.alt,target:"_blank"},n("img",{src:l.src,alt:l.alt}))}}).call(this,i("hosL").h)},zCOL:function(n){n.exports={unfeasible:"unfeasible__3QoOn"}}}]); +//# sourceMappingURL=route-ottimizzazioneLineare.chunk.762b1.js.map \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.762b1.js.map b/docs/route-ottimizzazioneLineare.chunk.762b1.js.map new file mode 100644 index 0000000..ed7ab35 --- /dev/null +++ b/docs/route-ottimizzazioneLineare.chunk.762b1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./routes/ottimizzazioneLineare.js","webpack:///./components/old/todo.css","webpack:///./components/old/plus.css","webpack:///./components/OttimizzazioneLineare/Unfeasible.js","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/OttimizzazioneLineare/Unbounded.less","webpack:///./components/Latex.js","webpack:///./components/old/minus.js","webpack:///./components/OttimizzazioneLineare/Unbounded.js","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js","webpack:///./components/Image.js","webpack:///./components/OttimizzazioneLineare/Unfeasible.less"],"names":["r","String","raw","OttimizzazioneLineare","render","title","href","to","class","src","Component","module","exports","props","style","unfeasible","children","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","parts","milliseconds","seconds","minutes","hours","days","timeLeft","Math","floor","expired","unknown","count","text","remaining","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","undefined","inline","alt","latex","Minus","minus","unbounded","Plus","plus","Todo","todo","createContext","target"],"mappings":"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","file":"route-ottimizzazioneLineare.chunk.762b1.js","sourcesContent":["import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Minus from \"../components/old/minus\";\nimport Plus from \"../components/old/plus\";\nimport Code from \"../components/old/code\";\nimport Timer from \"../components/old/timer\";\nimport Image from \"../components/Image\";\nimport Unfeasible from \"../components/OttimizzazioneLineare/Unfeasible\";\nimport Unbounded from \"../components/OttimizzazioneLineare/Unbounded\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n
\n

Ottimizzazione lineare intera

\n \n \n

\n Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!\n

\n

\n Guardate i video qui!\n

\n
\n \n
    \n
  1. \n
  2. \n
  3. \n
\n
\n
\n \n \n

\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n

\n

\n {r`z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n`}\n

\n
\n \n

\n Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce.\n

\n

\n {r`\\nabla f = \\frac{\\delta f}{\\delta x_1} e_1 + \\frac{\\delta f}{\\delta x_2} e_2 + \\frac{\\delta f}{\\delta x_n} e_n`}\n

\n

\n {r`e_i`} è la direzione della coordinata i-esima.\n

\n \n Se {r`n = 3`}, allora:\n
    \n
  • {r`e_1 = (1, 0, 0)`}
  • \n
  • {r`e_2 = (0, 1, 0)`}
  • \n
  • {r`e_3 = (0, 0, 1)`}
  • \n
\n
\n \n Se la funzione obiettivo è z = 2w + 3x + 4y, il suo gradiente è {r`\\nabla z = (2, 3, 4)`}.\n \n
\n
\n \n \n
    \n
  • Solo equazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Variabili con qualsiasi valore
  • \n
\n
\n
\n \n \n

\n Convertiamo ogni equazione {r`=`} in due disequazioni {r`\\leq`} e {r`\\geq`},\n

\n Why would you ever do that?!\n
\n \n

\n Convertiamo le disequazioni in equazioni aggiungendo una variabile slack.\n

\n \n {r`a \\leq 3`} diventa {r`a + s_1 = 3`}.\n \n
\n \n

\n Sostituiamo le variabili potenzialmente negative (unconstrained) {r`x_j`} con due variabili {r`x_j^+`} e {r`x_j^-`}.\n

\n \n {r`a \\in \\mathbb{Z}`} diventa {r`a^+ \\in \\mathbb{N}`} e {r`-a^- \\in \\mathbb{N}`}.\n \n
\n
\n \n \n

\n La funzione da minimizzare/massimizzare, tipicamente indicata con una {r`z`} al termine noto.\n

\n
\n \n

\n Un modo per rappresentare sistemi in forma standard, anche noto come matrice equivalente completa del sistema.\n

\n \n Il sistema:

\n {r`\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n `}

\n Diventa in forma di tableau:

\n
should have a
should have a
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
TNx_1x_2s_1s_2
z2000100000
31010
30101
72200
\n \n \n \n

\n Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu.\n

\n

\n La loro controparte sono le variabili fuori base.\n

\n

\n Un sistema lineare è risolto quando tutte le variabili originali (x_n) sono nella base.\n

\n
\n \n \n \n

\n Un algoritmo per minimizzare/massimizzare efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan.\n

\n \n E' spiegato in modo semplice qui, e ci sono dei codici sorgenti di esempio qui.\n \n
\n \n
    \n
  1. Trasforma il sistema in forma standard.
  2. \n
  3. Trova tante variabili linearmente indipendenti quante siano le righe: esse saranno la base iniziale.
  4. \n
  5. Finchè ci sono variabili con coefficienti positivi/negativi nella funzione obiettivo:\n
      \n
    1. \n Scegli la prima variabile con coefficiente positivo/negativo nella funzione obiettivo: essa è la variabile entrante.\n Si potrebbe scegliere qualsiasi variabile, ma scegliendo sempre la prima possibile (Regola di Bland) ci si assicura che l'algoritmo termini.\n
    2. \n
    3. Trova la variabile di base (detta variabile uscente) tramite il rapporto {r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}: scegli la variabile con il rapporto minore, assicurandoti che esso sia positivo. Se tutti i rapporti sono negativi, allora il problema è .
    4. \n
    5. Riscrivi tutte le funzioni del sistema in termini della variabile entrante.
    6. \n
    \n
  6. \n
  7. I termini noti dei vincoli sono le coordinate del risultato, mentre il termine noto della funzione obiettivo è il valore minimizzato/massimizzato.
  8. \n
\n
\n \n

\n Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.\n

\n
\n
\n \n \n

\n Una soluzione con almeno una variabile di valore 0, dovuta a uno o più vincoli ridondanti.\n

\n

\n Senza Regola di Bland e in presenza di vincoli ridondanti si rischia di trovarsi a fare pivot infiniti.\n

\n
\n \n \n Ho risolto il problema 3 del file Ex_LP_testo con il Simplex:\n

\n \n

\n
\n
\n
\n \n \n

\n Un estensione del Simplex per permettere la risoluzione di problemi la cui origine non è una soluzione ammissibile.\n

\n

\n Prevede l'introduzione di un problema ausiliario, le cui variabili sono dette artificiali e sono solitamente rappresentate come {r`y_n`}.\n

\n \n E' spiegato in modo semplice qui.\n \n
\n \n
    \n
  1. Crea un nuovo tableau, aggiungendo variabili artificiali in modo da avere una base ammissibile.
  2. \n
  3. Sostituisci la vecchia funzione obiettivo con una nuova che minimizzi la somma di tutte le variabili artificiali.
  4. \n
  5. Fase 1: Risolvi il nuovo problema con il metodo Simplex.
  6. \n
  7. Se il Simplex termina con ancora variabili artificiali nella base, allora il problema è .
  8. \n
  9. Una volta che le variabili artificiali sono fuori base, elimina le loro colonne e la nuova funzione obiettivo.
  10. \n
  11. Riporta il tableau in forma base compiendo operazioni per azzerare i coefficienti delle variabili di base nella funzione obiettivo.
  12. \n
  13. Fase 2: Risolvi il tableau con il metodo Simplex.
  14. \n
\n
\n
\n \n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","import style from \"./Unfeasible.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"unfeasible\"}\r\n );\r\n}\r\n","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
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// 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\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unbounded\":\"unbounded__3Q7MA\"};","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{props.children}\n\t\t\t\n\t);\n}\n","import style from \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import style from \"./Unbounded.less\";\r\n\r\nexport default function (props) {\r\n return (\r\n {props.children ? props.children : \"unbounded\"}\r\n );\r\n}\r\n","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 {this.props.children};\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n","export default function(props) {\r\n return (\r\n {props.alt}/\r\n )\r\n}\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"unfeasible\":\"unfeasible__3QoOn\"};"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.eb9a0.css b/docs/route-ottimizzazioneLineare.chunk.9a20b.css similarity index 80% rename from docs/route-ottimizzazioneLineare.chunk.eb9a0.css rename to docs/route-ottimizzazioneLineare.chunk.9a20b.css index 03f138e..3fdcf48 100644 --- a/docs/route-ottimizzazioneLineare.chunk.eb9a0.css +++ b/docs/route-ottimizzazioneLineare.chunk.9a20b.css @@ -1 +1 @@ -.latex__3zlIu{display:inline-block;vertical-align:middle}.todo__1UVRh{border:4px solid #ff0;border-radius:4px;padding:2px;background-color:#000;color:#ff0}.minus__2EaF0{color:#7d7dff}.plus__2u13i{color:#ff7d7d}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d} \ No newline at end of file +.latex__3zlIu{display:inline-block;vertical-align:middle}.todo__1UVRh{border:1px solid #ff0;border-radius:2px;padding:1px;background-color:#000;color:#ff0}.minus__2EaF0{color:#7d7dff}.plus__2u13i{color:#ff7d7d}.timer__K0K_h{display:grid;text-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:start;margin-top:8px;margin-bottom:8px;grid-template-columns:80px 80px 80px 80px 50px}.days__vN3tf{grid-column:1}.hours__3v0KX{grid-column:2}.minutes__vkYk7{grid-column:3}.seconds__3gJ99{grid-column:4}.count__1VV4k{grid-row:1;font-size:xx-large;color:#fff}.text__khS4i{grid-row:2;font-size:small}.remaining__zUECg{grid-column:5;grid-row-start:1;grid-row-end:3}.unknown__af307,.unknown__af307 .count__1VV4k{color:#ff7dff}.expired__1rtHB,.expired__1rtHB .count__1VV4k{color:#ff7d7d}.unfeasible__3QoOn{color:#ffbb7d}.unbounded__3Q7MA{color:#7dffff} \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.9e341.js b/docs/route-ottimizzazioneLineare.chunk.9e341.js deleted file mode 100644 index 3636c92..0000000 --- a/docs/route-ottimizzazioneLineare.chunk.9e341.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{"/fDt":function(n,l,t){"use strict";t.r(l),function(n){function e(){var n=C(["\frac{termine noto}{coeff. variabile entrante}"],["\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}"]);return e=function(){return n},n}function i(){var n=C(["\n \begin{cases}\n 2000A + 1000B = z\\\n 1A leq 3\\\n 1B leq 3\\\n 2A + 2B leq 7\n end{cases}\n "],["\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n "]);return i=function(){return n},n}function a(){var n=C(["z"]);return a=function(){return n},n}function o(){var n=C(["-a^- in mathbb{N}"],["-a^- \\in \\mathbb{N}"]);return o=function(){return n},n}function r(){var n=C(["a^+ in mathbb{N}"],["a^+ \\in \\mathbb{N}"]);return r=function(){return n},n}function u(){var n=C(["a in mathbb{Z}"],["a \\in \\mathbb{Z}"]);return u=function(){return n},n}function s(){var n=C(["x_j^-"]);return s=function(){return n},n}function c(){var n=C(["x_j^+"]);return c=function(){return n},n}function d(){var n=C(["x_j"]);return d=function(){return n},n}function p(){var n=C(["a + s_1 = 3"]);return p=function(){return n},n}function f(){var n=C(["a leq 3"],["a \\leq 3"]);return f=function(){return n},n}function m(){var n=C(["geq"],["\\geq"]);return m=function(){return n},n}function h(){var n=C(["leq"],["\\leq"]);return h=function(){return n},n}function v(){var n=C(["="]);return v=function(){return n},n}function b(){var n=C(["\nabla z = (2, 3, 4)"],["\\nabla z = (2, 3, 4)"]);return b=function(){return n},n}function _(){var n=C(["e_3 = (0, 0, 1)"]);return _=function(){return n},n}function z(){var n=C(["e_2 = (0, 1, 0)"]);return z=function(){return n},n}function g(){var n=C(["e_1 = (1, 0, 0)"]);return g=function(){return n},n}function x(){var n=C(["n = 3"]);return x=function(){return n},n}function y(){var n=C(["e_i"]);return y=function(){return n},n}function w(){var n=C(["\nabla f = \frac{delta f}{delta x_1} e_1 + \frac{delta f}{delta x_2} e_2 + \frac{delta f}{delta x_n} e_n"],["\\nabla f = \\frac{\\delta f}{\\delta x_1} e_1 + \\frac{\\delta f}{\\delta x_2} e_2 + \\frac{\\delta f}{\\delta x_n} e_n"]);return w=function(){return n},n}function q(){var n=C(["z = C_1 cdot x_1 + C_2 cdot x_2 + C_n cdot x_n"],["z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n"]);return q=function(){return n},n}function C(n,l){return l||(l=n.slice(0)),n.raw=l,n}t.d(l,"default",(function(){return D}));var L=t("hosL"),U=t("lL4N"),j=t("OMhl"),k=t("HKwK"),O=t("PEwj"),S=(t("jXlC"),t("UEJU")),E=t("h7i1"),B=(t("3Gjt"),t("BSmf")),N=t("xY5u"),T=String.raw,D=function(l){function t(){return l.apply(this,arguments)||this}var C,L;return L=l,(C=t).prototype=Object.create(L.prototype),C.prototype.constructor=C,C.__proto__=L,t.prototype.render=function(){return n("div",null,n("h1",null,"Ottimizzazione lineare intera"),n(U.a,{title:"Unimore"},n(k.a,{title:"Videolezioni su YouTube"},n("p",null,"Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!"),n("p",null,n("b",null,n("a",{href:"https://www.youtube.com/playlist?list=PLh93e8qjTszffkHNn-19CqUOhHFbhBlBh"},"Guardate i video qui!")))),n(k.a,{title:"Prossimi appelli"},n("ol",null,n("li",null,n(B.a,{to:"2020-06-08"})),n("li",null,n(B.a,{to:"2020-06-25"})),n("li",null,n(B.a,{to:"2020-07-14"}))))),n(U.a,{title:"Le basi"},n(k.a,{title:"Funzione obiettivo"},n("p",null,"La funzione obiettivo è la funzione con valore noto sconosciuto:"),n("p",null,n(j.a,null,T(q())))),n(k.a,{title:"Gradiente"},n("p",null,"Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce."),n("p",null,n(j.a,null,T(w()))),n("p",null,n(j.a,null,T(y()))," è la direzione della coordinata i-esima."),n(O.a,null,"Se ",n(j.a,null,T(x())),", allora:",n("ul",null,n("li",null,n(j.a,null,T(g()))),n("li",null,n(j.a,null,T(z()))),n("li",null,n(j.a,null,T(_()))))),n(O.a,null,"Se la funzione obiettivo è ",n(j.a,null,"z = 2w + 3x + 4y"),", il suo gradiente è ",n(j.a,null,T(b())),"."))),n(U.a,{title:"Forme di un sistema"},n(k.a,{title:"Forma standard"},n("ul",null,n("li",null,n(S.a,null,"Solo equazioni")),n("li",null,n(S.a,null,"Tutte le variabili maggiori di zero")))),n(k.a,{title:"Forma canonica"},n("ul",null,n("li",null,n(E.a,null,"Equazioni e disequazioni")),n("li",null,n(S.a,null,"Tutte le variabili maggiori di zero")))),n(k.a,{title:"Forma generale"},n("ul",null,n("li",null,n(E.a,null,"Equazioni e disequazioni")),n("li",null,n(E.a,null,"Variabili con qualsiasi valore"))))),n(U.a,{title:"Equivalenza di forma"},n(k.a,{title:"Da standard a generale"},n("p",null,"Convertiamo ogni equazione ",n(j.a,null,T(v()))," in due disequazioni ",n(j.a,null,T(h()))," e ",n(j.a,null,T(m())),","),n(O.a,null,"Why would you ever do that?!")),n(k.a,{title:"Da canonica a standard"},n("p",null,"Convertiamo le disequazioni in equazioni aggiungendo una variabile slack."),n(O.a,null,n(j.a,null,T(f()))," diventa ",n(j.a,null,T(p())),".")),n(k.a,{title:"Da generale a canonica"},n("p",null,"Sostituiamo le variabili potenzialmente negative (unconstrained) ",n(j.a,null,T(d()))," con due variabili ",n(j.a,null,T(c()))," e ",n(j.a,null,T(s())),"."),n(O.a,null,n(j.a,null,T(u()))," diventa ",n(j.a,null,T(r()))," e ",n(j.a,null,T(o())),"."))),n(U.a,{title:"La forma standard"},n(k.a,{title:"Funzione obiettivo"},n("p",null,"La funzione da minimizzare/massimizzare, tipicamente indicata con una ",n(j.a,null,T(a()))," al termine noto.")),n(k.a,{title:"Tableu"},n("p",null,"Un modo per rappresentare sistemi in forma standard, anche noto come ",n("b",null,"matrice equivalente completa")," del sistema."),n(O.a,null,"Il sistema:",n("br",null),n("br",null),n(j.a,null,T(i())),n("br",null),n("br",null),"Diventa in forma di tableau:",n("br",null),n("br",null),n("table",{class:"right"},n("thead",null,n("tr",null,n("th",null,n("abbr",{title:"Termine noto"},"TN")),n("th",null,n(j.a,null,"x_1")),n("th",null,n(j.a,null,"x_2")),n("th",null,n(j.a,null,"s_1")),n("th",null,n(j.a,null,"s_2")))),n("tbody",null,n("tr",null,n("td",null,n(j.a,null,"z")),n("td",null,n(j.a,null,"2000")),n("td",null,n(j.a,null,"1000")),n("td",null,n(j.a,null,"0")),n("td",null,n(j.a,null,"0"))),n("tr",null,n("td",null,n(j.a,null,"3")),n("td",null,n(j.a,null,"1")),n("td",null,n(j.a,null,"0")),n("td",null,n(j.a,null,"1")),n("td",null,n(j.a,null,"0"))),n("tr",null,n("td",null,n(j.a,null,"3")),n("td",null,n(j.a,null,"0")),n("td",null,n(j.a,null,"1")),n("td",null,n(j.a,null,"0")),n("td",null,n(j.a,null,"1"))),n("tr",null,n("td",null,n(j.a,null,"7")),n("td",null,n(j.a,null,"2")),n("td",null,n(j.a,null,"2")),n("td",null,n(j.a,null,"0")),n("td",null,n(j.a,null,"0"))))))),n(k.a,{title:"Variabili di base"},n("p",null,"Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu."),n("p",null,"La loro controparte sono le ",n("i",null,"variabili fuori base"),"."),n("p",null,"Un sistema lineare è risolto quando tutte le variabili originali (",n(j.a,null,"x_n"),") sono nella base."))),n(U.a,{title:"Simplex"},n(k.a,{title:"Cos'è?"},n("p",null,"Un algoritmo per massimizzare efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan."),n(O.a,null,"E' spiegato semplicemente ",n("a",{href:"https://web.archive.org/web/20200523052252/https://www.cs.cmu.edu/~15451-f17/handouts/simplex.pdf"},"qui"),".")),n(k.a,{title:"I passi"},n("ol",null,n("li",null,"Trasforma il sistema in ",n("b",null,"forma standard"),"."),n("li",null,"Finchè ci sono variabili con coefficienti positivi nella funzione obiettivo:",n("ol",null,n("li",null,n("b",null,"Scegli")," una variabile della funzione obiettivo, chiamandola ",n("i",null,"variabile entrante"),". ",n(O.a,null,"Come? Vedi nel prossimo pannello.")),n("li",null,"Trova la variabile di base (detta ",n("i",null,"variabile uscente"),") con il ",n("b",null,"valore minore")," per il rapporto ",n(j.a,null,T(e()))),n("li",null,n("b",null,"Riscrivi")," tutte le funzioni del sistema in termini della variabile entrante."))),n("li",null,"Il ",n("b",null,"termine noto")," della funzione obiettivo è il tuo risultato."))),n(k.a,{title:"Sotto forma di tableau"},n("p",null,"Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.")),n(k.a,{title:"Criteri per la variabile entrante"},n("ul",null,n("li",null,"Coefficiente maggiore nella funzione obiettivo."),n("li",null,"Incremento maggiore della funzione obiettivo."),n("li",null,"A caso."),n("li",null,n("i",null,"Regola di Bland"),": scegli variabili entranti e uscenti con indice minore (ovvero, prendi le prime possibili). ",n(O.a,null,"È usato nella teoria perchè impedisce i cicli infiniti!")))),n(k.a,{title:"Esempio"},n(O.a,null,"Ho risolto il problema 3 del file ",n("a",{href:"https://dolly.fim.unimore.it/2019/mod/resource/view.php?id=2716"},n("code",null,"Ex_LP_testo"))," con il Simplex:",n("p",null,n(N.a,{src:"https://i.imgur.com/1r405Mb.jpg"}))))),n(U.a,{title:"Metodo delle due fasi"},n(k.a,{title:"Metodo delle due fasi"},n("p",null,"Un estensione del Simplex per permettere la risoluzione di problemi con termini noti negativi."),n("p",null,"Prevede l'introduzione di un ",n("b",null,"problema ausiliario"),"."))))},t}(L.Component)}.call(this,t("hosL").h)},"3k98":function(n){n.exports={todo:"todo__1UVRh"}},"56OW":function(n){n.exports={plus:"plus__2u13i"}},BSmf:function(n,l,t){"use strict";(function(n){t.d(l,"a",(function(){return o}));var e=t("hosL"),i=t("EfTa"),a=t.n(i),o=function(l){function t(){var n;return(n=l.call(this)||this).state={now:Date.now()},n.timer=null,n}var e,i;i=l,(e=t).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var o=t.prototype;return o.componentDidMount=function(){var n=this;this.timer=setInterval((function(){n.setState({now:Date.now()})}),1e3)},o.componentWillUnmount=function(){null!==this.timer&&clearInterval(this.timer)},o.render=function(){var l="Unknown date",t=a.a.timer,e={milliseconds:"?",seconds:"?",minutes:"?",hours:"?",days:"?"};if(this.props.to){var i=(l=new Date(this.props.to))-this.state.now;i>0?e={milliseconds:i%1e3,seconds:Math.floor(i/1e3)%60,minutes:Math.floor(i/6e4)%60,hours:Math.floor(i/36e5)%24,days:Math.floor(i/864e5)}:(e={milliseconds:0,seconds:0,minutes:0,hours:0,days:0},t+=" "+a.a.expired)}else t+=" "+a.a.unknown;return n("div",{class:t,title:l},n("div",{class:a.a.days+" "+a.a.count},e.days),n("div",{className:a.a.days+" "+a.a.text},"giorni"),n("div",{class:a.a.hours+" "+a.a.count},e.hours),n("div",{className:a.a.hours+" "+a.a.text},"ore"),n("div",{class:a.a.minutes+" "+a.a.count},e.minutes),n("div",{className:a.a.minutes+" "+a.a.text},"minuti"),n("div",{class:a.a.seconds+" "+a.a.count},e.seconds),n("div",{class:a.a.seconds+" "+a.a.text},"secondi"),n("div",{class:a.a.remaining},"rimasti"))},t}(e.Component)}).call(this,t("hosL").h)},EfTa:function(n){n.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"}},OMhl:function(n,l,t){"use strict";(function(n){var e=t("p7QU"),i=t.n(e),a=t("QRet"),o=t("8CDw"),r=t("wQ73");l.a=function(l){var t=Object(a.b)(o.a),e=Object(a.b)(r.a);return n("img",{src:"https://latex.codecogs.com/svg.latex?"+(((void 0===l.inline?e:l.inline)?"\\inline":"")+" {\\color{"+t+"} "+l.children+" }"),alt:l.children,title:l.children,class:i.a.latex})}}).call(this,t("hosL").h)},UEJU:function(n,l,t){"use strict";(function(n){t.d(l,"a",(function(){return a}));var e=t("nhUl"),i=t.n(e),a=function(l){function t(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=t).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,t.prototype.render=function(){return n("span",{class:i.a.minus},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},h7i1:function(n,l,t){"use strict";(function(n){t.d(l,"a",(function(){return a}));var e=t("56OW"),i=t.n(e),a=function(l){function t(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=t).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,t.prototype.render=function(){return n("span",{class:i.a.plus},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},jXlC:function(n,l,t){"use strict";(function(n){t.d(l,"a",(function(){return a}));var e=t("3k98"),i=t.n(e),a=function(l){function t(){return l.apply(this,arguments)||this}var e,a;return a=l,(e=t).prototype=Object.create(a.prototype),e.prototype.constructor=e,e.__proto__=a,t.prototype.render=function(){return n("span",{class:i.a.todo},this.props.children)},t}(t("hosL").Component)}).call(this,t("hosL").h)},nhUl:function(n){n.exports={minus:"minus__2EaF0"}},p7QU:function(n){n.exports={latex:"latex__3zlIu"}},wQ73:function(n,l,t){"use strict";var e=t("hosL");l.a=Object(e.createContext)(!0)},xY5u:function(n,l,t){"use strict";(function(n){l.a=function(l){return n("a",{href:l.src,title:l.alt,target:"_blank"},n("img",{src:l.src,alt:l.alt}))}}).call(this,t("hosL").h)}}]); -//# sourceMappingURL=route-ottimizzazioneLineare.chunk.9e341.js.map \ No newline at end of file diff --git a/docs/route-ottimizzazioneLineare.chunk.9e341.js.map b/docs/route-ottimizzazioneLineare.chunk.9e341.js.map deleted file mode 100644 index f838ace..0000000 --- a/docs/route-ottimizzazioneLineare.chunk.9e341.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./routes/ottimizzazioneLineare.js","webpack:///./components/old/todo.css","webpack:///./components/old/plus.css","webpack:///./components/old/timer.js","webpack:///./components/old/timer.less","webpack:///./components/Latex.js","webpack:///./components/old/minus.js","webpack:///./components/old/plus.js","webpack:///./components/old/todo.js","webpack:///./components/old/minus.css","webpack:///./components/Latex.css","webpack:///./contexts/LatexDefaultInline.js","webpack:///./components/Image.js"],"names":["r","String","raw","OttimizzazioneLineare","render","title","href","to","class","src","Component","module","exports","Timer","state","Date","now","timer","componentDidMount","this","setInterval","setState","componentWillUnmount","clearInterval","dateTo","className","style","parts","milliseconds","seconds","minutes","hours","days","props","timeLeft","Math","floor","expired","unknown","count","text","remaining","renderColor","useContext","LatexRenderColor","defaultInline","LatexDefaultInline","undefined","inline","children","alt","latex","Minus","minus","Plus","plus","Todo","todo","createContext","target"],"mappings":"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","file":"route-ottimizzazioneLineare.chunk.9e341.js","sourcesContent":["import {Component} from 'preact'\nimport Split from \"../components/old/split\";\nimport Latex from \"../components/Latex\";\nimport Panel from \"../components/old/panel\";\nimport Example from \"../components/example\";\nimport Todo from \"../components/old/todo\";\nimport Minus from \"../components/old/minus\";\nimport Plus from \"../components/old/plus\";\nimport Code from \"../components/old/code\";\nimport Timer from \"../components/old/timer\";\nimport Image from \"../components/Image\";\n\nconst r = String.raw;\n\nexport default class OttimizzazioneLineare extends Component {\n render() {\n return (\n
\n

Ottimizzazione lineare intera

\n \n \n

\n Ho rimosso il rumore in sottofondo da tutti i video di Ricerca Operativa!\n

\n

\n Guardate i video qui!\n

\n
\n \n
    \n
  1. \n
  2. \n
  3. \n
\n
\n
\n \n \n

\n La funzione obiettivo è la funzione con valore noto sconosciuto:\n

\n

\n {r`z = C_1 \\cdot x_1 + C_2 \\cdot x_2 + C_n \\cdot x_n`}\n

\n
\n \n

\n Funzione della funzione obiettivo che indica la direzione del suo aumento più veloce.\n

\n

\n {r`\\nabla f = \\frac{\\delta f}{\\delta x_1} e_1 + \\frac{\\delta f}{\\delta x_2} e_2 + \\frac{\\delta f}{\\delta x_n} e_n`}\n

\n

\n {r`e_i`} è la direzione della coordinata i-esima.\n

\n \n Se {r`n = 3`}, allora:\n
    \n
  • {r`e_1 = (1, 0, 0)`}
  • \n
  • {r`e_2 = (0, 1, 0)`}
  • \n
  • {r`e_3 = (0, 0, 1)`}
  • \n
\n
\n \n Se la funzione obiettivo è z = 2w + 3x + 4y, il suo gradiente è {r`\\nabla z = (2, 3, 4)`}.\n \n
\n
\n \n \n
    \n
  • Solo equazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Tutte le variabili maggiori di zero
  • \n
\n
\n \n
    \n
  • Equazioni e disequazioni
  • \n
  • Variabili con qualsiasi valore
  • \n
\n
\n
\n \n \n

\n Convertiamo ogni equazione {r`=`} in due disequazioni {r`\\leq`} e {r`\\geq`},\n

\n Why would you ever do that?!\n
\n \n

\n Convertiamo le disequazioni in equazioni aggiungendo una variabile slack.\n

\n \n {r`a \\leq 3`} diventa {r`a + s_1 = 3`}.\n \n
\n \n

\n Sostituiamo le variabili potenzialmente negative (unconstrained) {r`x_j`} con due variabili {r`x_j^+`} e {r`x_j^-`}.\n

\n \n {r`a \\in \\mathbb{Z}`} diventa {r`a^+ \\in \\mathbb{N}`} e {r`-a^- \\in \\mathbb{N}`}.\n \n
\n
\n \n \n

\n La funzione da minimizzare/massimizzare, tipicamente indicata con una {r`z`} al termine noto.\n

\n
\n \n

\n Un modo per rappresentare sistemi in forma standard, anche noto come matrice equivalente completa del sistema.\n

\n \n Il sistema:

\n {r`\n \\begin{cases}\n 2000A + 1000B = z\\\\\n 1A \\leq 3\\\\\n 1B \\leq 3\\\\\n 2A + 2B \\leq 7\n \\end{cases}\n `}

\n Diventa in forma di tableau:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
TNx_1x_2s_1s_2
z2000100000
31010
30101
72200
\n
\n
\n \n

\n Variabili che hanno tutti 0 e un 1 nella loro colonna del tableu.\n

\n

\n La loro controparte sono le variabili fuori base.\n

\n

\n Un sistema lineare è risolto quando tutte le variabili originali (x_n) sono nella base.\n

\n
\n
\n \n \n

\n Un algoritmo per massimizzare efficientemente variabili di sistemi lineari, derivato da Gauss-Jordan.\n

\n \n E' spiegato semplicemente qui.\n \n
\n \n
    \n
  1. Trasforma il sistema in forma standard.
  2. \n
  3. Finchè ci sono variabili con coefficienti positivi nella funzione obiettivo:\n
      \n
    1. Scegli una variabile della funzione obiettivo, chiamandola variabile entrante. Come? Vedi nel prossimo pannello.
    2. \n
    3. Trova la variabile di base (detta variabile uscente) con il valore minore per il rapporto {r`\\frac{termine\\ noto}{coeff.\\ variabile\\ entrante}`}
    4. \n
    5. Riscrivi tutte le funzioni del sistema in termini della variabile entrante.
    6. \n
    \n
  4. \n
  5. Il termine noto della funzione obiettivo è il tuo risultato.
  6. \n
\n
\n \n

\n Se il problema è rappresentato in forma di tableau, allora esso è risolvibile applicando l'algoritmo di Gauss-Jordan, in aggiunta tenendo conto delle regole per la selezione delle variabili entranti e uscenti.\n

\n
\n \n
    \n
  • Coefficiente maggiore nella funzione obiettivo.
  • \n
  • Incremento maggiore della funzione obiettivo.
  • \n
  • A caso.
  • \n
  • Regola di Bland: scegli variabili entranti e uscenti con indice minore (ovvero, prendi le prime possibili). È usato nella teoria perchè impedisce i cicli infiniti!
  • \n
\n
\n \n \n Ho risolto il problema 3 del file Ex_LP_testo con il Simplex:\n

\n \n

\n
\n
\n
\n \n \n

\n Un estensione del Simplex per permettere la risoluzione di problemi con termini noti negativi.\n

\n

\n Prevede l'introduzione di un problema ausiliario.\n

\n
\n
\n
\n )\n }\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"todo\":\"todo__1UVRh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plus\":\"plus__2u13i\"};","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
\n
\n {parts.days}\n
\n
\n giorni\n
\n
\n {parts.hours}\n
\n
\n ore\n
\n
\n {parts.minutes}\n
\n
\n minuti\n
\n
\n {parts.seconds}\n
\n
\n secondi\n
\n
\n rimasti\n
\n
\n )\n }\n}\n","// 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{props.children}\n\t\t\t\n\t);\n}\n","import style from \"./minus.css\";\nimport { Component } from 'preact';\n\nexport default class Minus extends Component {\n\trender() {\n\t\treturn {this.props.children};\n\t}\n}\n","import style from \"./plus.css\";\nimport { Component } from 'preact';\n\nexport default class Plus extends Component {\n\trender() {\n\t\treturn {this.props.children};\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 {this.props.children};\n\t}\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"minus\":\"minus__2EaF0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"latex\":\"latex__3zlIu\"};","import {createContext} from \"preact\";\r\n\r\nexport default createContext(true);\r\n","export default function(props) {\r\n return (\r\n {props.alt}/\r\n )\r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/sw-esm.js b/docs/sw-esm.js index c6fb378..99040b2 100644 --- a/docs/sw-esm.js +++ b/docs/sw-esm.js @@ -1,4 +1,4 @@ -importScripts("/precache-manifest.d5b9b83a383fd46375c30c19ae5399b0.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); +importScripts("/precache-manifest.40c748ad559066accc883673cce8ce47.esm.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}}); //# sourceMappingURL=sw-esm.js.map diff --git a/docs/sw.js b/docs/sw.js index dc49b18..c20c5b6 100644 --- a/docs/sw.js +++ b/docs/sw.js @@ -1,4 +1,4 @@ -importScripts("/precache-manifest.d70c8ac2ebf9c8612909cb2648f39798.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); +importScripts("/precache-manifest.c174bc8e42d4199c747cda8554c67ae3.js", "https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var r={};t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(t){return e[t]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s="idKB")}({idKB:function(){self.__precacheManifest=[].concat(self.__precacheManifest||[]);const e=e=>"navigate"===e.request.mode;workbox.routing.registerRoute(({event:t})=>e(t),new workbox.strategies.NetworkFirst({cacheName:workbox.core.cacheNames.precache,networkTimeoutSeconds:5,plugins:[new workbox.cacheableResponse.Plugin({statuses:[200]})]})),workbox.precaching.precacheAndRoute(self.__precacheManifest,{}),workbox.routing.setCatchHandler(({event:t})=>e(t)?caches.match(workbox.precaching.getCacheKeyForURL("/index.html")):Response.error())}}); //# sourceMappingURL=sw.js.map diff --git a/src/components/OttimizzazioneLineare/Unbounded.js b/src/components/OttimizzazioneLineare/Unbounded.js new file mode 100644 index 0000000..2aa16c0 --- /dev/null +++ b/src/components/OttimizzazioneLineare/Unbounded.js @@ -0,0 +1,7 @@ +import style from "Unfeasible.less"; + +export default function (props) { + return ( + {this.props.children} + ); +} diff --git a/src/components/OttimizzazioneLineare/Unbounded.less b/src/components/OttimizzazioneLineare/Unbounded.less new file mode 100644 index 0000000..683e252 --- /dev/null +++ b/src/components/OttimizzazioneLineare/Unbounded.less @@ -0,0 +1,2 @@ +@import "../styles/constants.less"; + diff --git a/src/components/OttimizzazioneLineare/Unfeasible.js b/src/components/OttimizzazioneLineare/Unfeasible.js new file mode 100644 index 0000000..0a6799e --- /dev/null +++ b/src/components/OttimizzazioneLineare/Unfeasible.js @@ -0,0 +1,6 @@ +export default function (props) { + return ( +
+
+ ); +} diff --git a/src/components/OttimizzazioneLineare/Unfeasible.less b/src/components/OttimizzazioneLineare/Unfeasible.less new file mode 100644 index 0000000..683e252 --- /dev/null +++ b/src/components/OttimizzazioneLineare/Unfeasible.less @@ -0,0 +1,2 @@ +@import "../styles/constants.less"; +