CINXE.COM
<!DOCTYPE html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pure/0.6.0/pure-min.css"> <link rel="stylesheet" href="side-menu.css"> <script type="text/javascript" src="client-opt.js"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { var TEX = MathJax.InputJax.TeX; var MML = MathJax.ElementJax.mml; TEX.Macro("break", ' '); TEX.Macro("bold", '\\mathbf'); TEX.Macro("roman", '\\mathrm'); TEX.Definitions.macros["scrSwitch"] = ["SetFont",MML.VARIANT.SCRIPT]; TEX.Definitions.macros["scrArgument"] = ["Macro","{\\scrSwitch #1}",1]; TEX.Macro("scr", "\\scrArgument"); TEX.Macro("mathscr", "\\scrArgument"); TEX.Definitions.macros["calSwitch"] = ["SetFont",MML.VARIANT.CALIGRAPHIC]; TEX.Definitions.macros["calArgument"] = ["Macro","{\\calSwitch #1}",1]; TEX.Macro("cal", "\\calSwitch"); TEX.Macro("Cal", "\\calArgument"); TEX.Macro("mathcal", "\\calArgument"); TEX.Definitions.macros["frakSwitch"] = ["SetFont",MML.VARIANT.FRAKTUR]; TEX.Definitions.macros["frakArgument"] = ["Macro","{\\frakSwitch #1}",1]; TEX.Macro("frak", "\\frakArgument"); TEX.Macro("germ", "\\frakArgument"); TEX.Macro("mathfrak", "\\frakArgument"); TEX.Macro("boldkey", '\\boldsymbol'); TEX.Macro("coloneq", '\\mathrel{:=}'); TEX.Macro("straightphi", '\\phi'); TEX.Macro("sbs", '\\smallsetminus'); TEX.Macro("align", '\\begin{align}'); TEX.Macro("endalign", '\\end{align}'); TEX.Macro("alignat", '\\begin{alignat}'); TEX.Macro("endalignat", '\\end{alignat}'); TEX.Macro("aligned", '\\begin{aligned}'); TEX.Macro("endaligned", '\\end{aligned}'); TEX.Macro("alignedat", '\\begin{alignedat}'); TEX.Macro("endalignedat", '\\end{alignedat}'); TEX.Macro("matrix", '\\begin{matrix}'); TEX.Macro("endmatrix", '\\end{matrix}'); TEX.Macro("pmatrix", '\\begin{pmatrix}'); TEX.Macro("endpmatrix", '\\end{pmatrix}'); TEX.Macro("matrixp", '\\begin{pmatrix}'); TEX.Macro("endmatrixp", '\\end{pmatrix}'); TEX.Macro("bmatrix", '\\begin{bmatrix}'); TEX.Macro("endbmatrix", '\\end{bmatrix}'); TEX.Macro("vmatrix", '\\begin{vmatrix}'); TEX.Macro("endvmatrix", '\\end{vmatrix}'); TEX.Macro("Vmatrix", '\\begin{Vmatrix}'); TEX.Macro("endVmatrix", '\\end{Vmatrix}'); TEX.Macro("multline", '\\begin{multline}'); TEX.Macro("endmultline", '\\end{multline}'); TEX.Macro("gather", '\\begin{gather}'); TEX.Macro("endgather", '\\end{gather}'); TEX.Macro("gathered", '\\begin{gathered}'); TEX.Macro("endgathered", '\\end{gathered}'); TEX.Macro("bunch", '\\begin{gathered}'); TEX.Macro("endbunch", '\\end{gathered}'); TEX.Macro("bunchtag", '\\begin{gather}'); TEX.Macro("endbunchtag", '\\end{gather}'); TEX.Macro("split", '\\begin{split}'); TEX.Macro("endsplit", '\\end{split}'); TEX.Macro("cases", '\\begin{cases}'); TEX.Macro("endcases", '\\end{cases}'); TEX.Macro("CD", '\\begin{CD}'); TEX.Macro("endCD", '\\end{CD}'); TEX.Macro("Sb","_{\\begin{subarray}{c}"); TEX.Macro("endSb","\\end{subarray}}"); TEX.Macro("Sp","^{\\begin{subarray}{c}"); TEX.Macro("endSp","\\end{subarray}}"); TEX.Macro("sp", '^'); TEX.Macro("sb", '_'); TEX.Macro("and", '\\;\\mathbin{\\&}\\;'); TEX.Macro("@", '@'); TEX.Macro("[", '['); TEX.Macro(":", '\\colon'); TEX.Macro("Hat", '\\hat'); TEX.Macro("Tilde", '\\tilde'); TEX.Macro("Dot", '\\dot'); TEX.Macro("Bar", '\\bar'); TEX.Macro("Vec", '\\vec'); TEX.Macro("dag", '\\hbox{$\\dagger$}'); TEX.Macro("ddag", '\\hbox{$\\ddagger$}'); TEX.Macro("dasharrow", '\\dashrightarrow'); TEX.Macro("dotii", '\\ddot'); TEX.Macro("dotiii", '\\dddot'); TEX.Macro("dotso", '\\ldots'); TEX.Macro("dsize", '\\displaystyle'); TEX.Macro("enskip", '\\enspace'); TEX.Macro("eqcolon", '{\\mathrel{=:}}'); TEX.Macro("emptyset", '\\varnothing'); TEX.Macro("Gg", '\\ggg'); TEX.Macro("curlyepsilon", '\\varepsilon'); TEX.Macro("straightepsilon", '\\epsilon'); TEX.Macro("goth", '\\mathfrak'); TEX.Macro("iddots", '\\kern3mu\\raise1mu{.}\\kern3mu\\raise6mu{.}\\kern3mu\\raise12mu{.}'); TEX.Macro("injlim", '\\mathop{\\roman{inj\\,lim}}'); TEX.Macro("Ll", '\\lll'); TEX.Macro("negmedspace", '\\kern-.222222em'); TEX.Macro("negthickspace", '\\kern-.27777em'); TEX.Macro("nequiv", '\\not\\equiv'); TEX.Macro("nsimeq", '\\not\\simeq'); TEX.Macro("nsubset", '\\not\\subset'); TEX.Macro("nsupset", '\\not\\supset'); TEX.Macro("obar", '\\bar'); TEX.Macro("overarrow", '\\overrightarrow'); TEX.Macro("projlim", '\\mathop{\\roman{proj\\,lim}}'); TEX.Macro("smalltilde", '\\tilde'); TEX.Macro("spbar", '^{-}'); TEX.Macro("spcheck", '^{\\vee}'); TEX.Macro("sptilde", '^{\\sim}'); TEX.Macro("spvec", '^{\\rightarrow}'); TEX.Macro("ssf", '\\mathsf'); TEX.Macro("ssize", '\\scriptstyle'); TEX.Macro("sssize", '\\scriptscriptstyle'); TEX.Macro("stack", '#1\\atop #2',2); TEX.Macro("tildesymbol", '\\mathord{\\sim}'); TEX.Macro("underarrow", '\\underrightarrow'); TEX.Macro("vadjust", '#1',1); TEX.Macro("slash", '/'); TEX.Macro("smallmatrix", '\\begin{smallmatrix}'); TEX.Macro("endsmallmatrix", '\\end{smallmatrix}'); TEX.Macro("squigarrowright", '\\rightsquigarrow'); TEX.Macro("thickfrac", '\\frac'); TEX.Macro("tsize", '\\textstyle'); TEX.Macro("bfalpha", '\\boldsymbol\\alpha'); TEX.Macro("bfbeta", '\\boldsymbol\\beta'); TEX.Macro("bfgamma", '\\boldsymbol\\gamma'); TEX.Macro("bfdelta", '\\boldsymbol\\delta'); TEX.Macro("bfzeta", '\\boldsymbol\\zeta'); TEX.Macro("bfeta", '\\boldsymbol\\eta'); TEX.Macro("bftheta", '\\boldsymbol\\theta'); TEX.Macro("bfiota", '\\boldsymbol\\iota'); TEX.Macro("bfkappa", '\\boldsymbol\\kappa'); TEX.Macro("bflambda", '\\boldsymbol\\lambda'); TEX.Macro("bfmu", '\\boldsymbol\\mu'); TEX.Macro("bfnu", '\\boldsymbol\\nu'); TEX.Macro("bfxi", '\\boldsymbol\\xi'); TEX.Macro("bfpi", '\\boldsymbol\\pi'); TEX.Macro("bfrho", '\\boldsymbol\\rho'); TEX.Macro("bfsigma", '\\boldsymbol\\sigma'); TEX.Macro("bftau", '\\boldsymbol\\tau'); TEX.Macro("bfupsilon", '\\boldsymbol\\upsilon'); TEX.Macro("bfchi", '\\boldsymbol\\chi'); TEX.Macro("bfpsi", '\\boldsymbol\\psi'); TEX.Macro("bfomega", '\\boldsymbol\\omega'); TEX.Macro("bfepsilon", '\\boldsymbol\\epsilon'); TEX.Macro("bfstraightepsilon", '\\boldsymbol\\straightepsilon'); TEX.Macro("bfvarepsilon", '\\boldsymbol\\varepsilon'); TEX.Macro("bfstraightphi", '\\boldsymbol\\straightphi'); TEX.Macro("bfphi", '\\boldsymbol\\phi'); TEX.Macro("bfvarphi", '\\boldsymbol\\varphi'); TEX.Macro("bfvartheta", '\\boldsymbol\\vartheta'); TEX.Macro("bfvarpi", '\\boldsymbol\\varpi'); TEX.Macro("bfvarrho", '\\boldsymbol\\varrho'); TEX.Macro("bfvarsigma", '\\boldsymbol\\varsigma'); TEX.Macro("bfGamma", '\\boldsymbol\\Gamma'); TEX.Macro("bfDelta", '\\boldsymbol\\Delta'); TEX.Macro("bfTheta", '\\boldsymbol\\Theta'); TEX.Macro("bfLambda", '\\boldsymbol\\Lambda'); TEX.Macro("bfXi", '\\boldsymbol\\Xi'); TEX.Macro("bfPi", '\\boldsymbol\\Pi'); TEX.Macro("bfSigma", '\\boldsymbol\\Sigma'); TEX.Macro("bfUpsilon", '\\boldsymbol\\Upsilon'); TEX.Macro("bfPhi", '\\boldsymbol\\Phi'); TEX.Macro("bfPsi", '\\boldsymbol\\Psi'); TEX.Macro("bfOmega", '\\boldsymbol\\Omega'); TEX.Macro("boldGamma", '\\boldsymbol\\Gamma'); TEX.Macro("boldDelta", '\\boldsymbol\\Delta'); TEX.Macro("boldTheta", '\\boldsymbol\\Theta'); TEX.Macro("boldLambda", '\\boldsymbol\\Lambda'); TEX.Macro("boldXi", '\\boldsymbol\\Xi'); TEX.Macro("boldPi", '\\boldsymbol\\Pi'); TEX.Macro("boldSigma", '\\boldsymbol\\Sigma'); TEX.Macro("boldUpsilon", '\\boldsymbol\\Upsilon'); TEX.Macro("boldPhi", '\\boldsymbol\\Phi'); TEX.Macro("boldPsi", '\\boldsymbol\\Psi'); TEX.Macro("boldOmega", '\\boldsymbol\\Omega'); TEX.Macro("circledv", '\\mathord{\\bigcirc\\kern-7.5pt v}\\kern3pt'); TEX.Macro("circledvsubn", '\\mathord{\\bigcirc\\kern-8pt\\raise.3ex{\\scriptstyle v_n}}\\kern3pt'); TEX.Macro("backcong","\\mathchoice" + "{\\stackrel{\\smash{\\lower.4ex{\\textstyle\\backsim}}}=}" + "{\\stackrel{\\smash{\\lower.4ex{\\textstyle\\backsim}}}=}" + "{\\stackrel{\\smash{\\lower.35ex{\\scriptstyle\\backsim}}}=}" + "{\\stackrel{\\smash{\\lower.2ex{\\scriptscriptstyle\\backsim}}}=}"); TEX.Macro("bfcdot","\\raise.33ex{\\bf .}"); TEX.Macro("fracwithdelims","{#3\\overwithdelims#1#2#4}",4); TEX.Macro("intprod","\\mathbin{\\Rule{5pt}{0.4pt}{0pt}\\kern-.4pt\\Rule{0.4pt}{6pt}{0pt}\\kern1pt}"); TEX.Macro("intslash","\\mathop{\\rlap{\\mathchoice" + "{\\kern3.8pt\\raise2pt\\Rule{6pt}{1pt}{.1pt}}" + //displaystyle "{\\kern3pt\\raise2pt\\Rule{4pt}{.5pt}{.1pt}}" + //textstyle "{\\kern2.4pt\\raise1pt\\Rule{3pt}{.5pt}{.1pt}}" + //scriptstyle "{\\kern2pt\\raise1pt\\Rule{3pt}{.5pt}{.1pt}}" + //scriptscriptstyle "}}\\int"); TEX.Macro("operatornamewithlimits","\\operatorname*"); TEX.Macro("sphat","^{\\mathchoice{}{}" + "{\\raise.3ex\\widehat{\\kern 3.5pt}}" + "{\\!\\lower.3ex\\hbox{^}}"+ "}\\mathchoice{\\!\\!}{\\!\\!}{}{}"); TEX.Macro("obackslash", '\\mathbin{\\raise.2ex{\\scriptstyle\\bigcirc}\\kern-6pt\\raise.25ex{\\scriptscriptstyle\\diagdown}\\kern2pt}'); TEX.Macro("hfill","\\hskip 5em"); // hack to get SOME space // // Use unicode characters (improperly) to get a look-alike for these // TEX.Macro("lhook","\\mathrel{\\lower2.5pt\\unicode{x02BF}}"); TEX.Macro("rhook","\\mathrel{\\lower2.5pt\\unicode{x02BE}}"); TEX.Macro("joinrel","\\kern-4mu"); TEX.Macro("relbar","\\mathrel{-}"); TEX.Macro("mapstochar","\\mathrel{\\lower3.1pt\\unicode{x02C8}}"); // // These call internal JavaScript routines // TEX.Definitions.macros["ocirc"] = ["Accent","030A"]; TEX.Definitions.mathchar0mo["hdots"] = '2026'; // // Override overset and underset // TEX.Parse.Augment({ Overset: function (name) { var top = this.ParseUpTo(name,"\\to"); var base = this.ParseArg(name); this.Push(MML.munderover(base,null,top)); }, Underset: function (name) { var bot = this.ParseUpTo(name,"\\to"); var base = this.ParseArg(name); this.Push(MML.munderover(base,bot)); } }); // // Make these autoload newcommand in order to get MacroWithTemplate // then define them in terms of MacroWithTemplate // TEX.Definitions.macros["oversetbrace"] = ["Extension","newcommand"]; TEX.Definitions.macros["undersetbrace"] = ["Extension","newcommand"]; TEX.Definitions.macros["sideset"] = ["Extension","newcommand"]; TEX.Definitions.macros["oversetbrace"] = ["MacroWithTemplate","\\overbrace{#2}^{#1}",2,[null,"\\to"]]; TEX.Definitions.macros["undersetbrace"] = ["MacroWithTemplate","\\underbrace{#2}_{#1}",2,[null,"\\to"]]; TEX.Definitions.macros["sideset"] = ["MacroWithTemplate","\\mathop{\\mathop{\\rlap{\\phantom{#3}}}\\nolimits#1\\!\\mathop{#3}\\nolimits#2}",3,[null,"\\and","\\to"]]; // // Add \lfrac and override CFrac to use \endcfrac notation // TEX.Definitions.macros["lcfrac"] = ["Extension","AMSmath"]; TEX.Definitions.macros["lcfrac"] = "CFrac"; TEX.Macro("endcfrac",""); // make this do nothing so it's OK with no \cfrac TEX.Parse.Augment({ CFrac: function (name) { var num = this.GetUpTo(name,"\\\\"), den = this.GetUpTo(name,"\\endcfrac"); var NUM = TEX.Parse("\\strut\\textstyle{"+num+"}",this.stack.env).mml(), DEN = TEX.Parse("\\strut\\textstyle{"+den+"\\endcfrac}",this.stack.env).mml(); var frac = MML.mfrac(NUM,DEN); if (name === "\\lcfrac" && den.match(/\\lcfrac/)) {frac.numalign = frac.denomalign = MML.ALIGN.LEFT} this.Push(frac); } }); // // Set up for \thickfrac with \thickness // TEX.Definitions.macros["thickfrac"] = "ThickFrac"; TEX.Parse.Augment({ ThickFrac: function (name) { var thickness = 1; var num = this.GetArgument(name); if (num === "\\thickness") { thickness = this.GetArgument("\\thickness"); if (!thickness.match(/\d+(\.\d*)?|\.\d+/)) {TEX.Error("Argument for \\thickness must be numeric")} num = this.GetArgument(name); } num = TEX.Parse(num,this.stack.env).mml(); var den = this.ParseArg(name); if (num.type === "mrow" && num.data.length > 1) {delete num.inferred} if (den.type === "mrow" && den.data.length > 1) {delete den.inferred} this.Push(MML.mfrac(num,den).With({linethickness: (thickness*.2326)+"ex"})); } }); // // Handle accents below // TEX.Definitions.macros["udot"] = ["AccentBelow","2E"]; TEX.Definitions.macros["utilde"] = ["AccentBelow","7E"]; TEX.Parse.Augment({ AccentBelow: function (name,accent) { var c = this.ParseArg(name); var mml = this.mmlToken(MML.mo(MML.entity("#x"+accent)).With({accent: true, stretchy: false})); this.Push(MML.munderover(c,mml).With({accent: true})); } }); // // Add \format to matrix environments // var STACKITEM = TEX.Stack.Item; STACKITEM.arrayformat = STACKITEM.array.Subclass({ EndEntry: function () { this.SUPER(arguments).EndEntry.call(this); if (this.env.format) {this.arraydef.columnalign = this.env.format} } }); TEX.Definitions.macros["format"] = "Format"; TEX.Definitions.environment["matrix"][0] = "ArrayWithFormat"; TEX.Definitions.environment["pmatrix"][0] = "ArrayWithFormat"; TEX.Definitions.environment["bmatrix"][0] = "ArrayWithFormat"; TEX.Definitions.environment["Bmatrix"][0] = "ArrayWithFormat"; TEX.Definitions.environment["vmatrix"][0] = "ArrayWithFormat"; TEX.Definitions.environment["Vmatrix"][0] = "ArrayWithFormat"; TEX.Parse.Augment({ Format: function (name) { var format = this.GetUpTo(name,"\\\\"); format = format.replace(/\\(&|\\|[a-z][a-z]+)/gi,"").replace(/&/g,"\\&"). replace(/((\\.)|.)/g,"$2").replace(/\\/g,""); format = format.replace(/l/g,"left").replace(/r/g,"right").replace(/c/g,"center").replace(/&/g," "); this.stack.env.format = format; }, ArrayWithFormat: function (begin,open,close) { var array = STACKITEM.arrayformat().With({ arraydef: {columnalign: "center", columnspacing: "1em", rowspacing: "3pt"} }); if (open) {array.open = this.convertDelimiter(open)} if (close) {array.close = this.convertDelimiter(close)} this.Push(begin); return array; } }); // // Make \tag use the rest of the line as its argument // and define \leqno and \eqno // TEX.Definitions.macros["eqno"] = ["Extension","AMSmath"]; TEX.Definitions.macros["leqno"] = ["Extension","AMSmath"]; TEX.Definitions.macros["tag"] = ["HandleTag",true]; TEX.Definitions.macros["eqno"] = ["HandleTag",false]; TEX.Definitions.macros["leqno"] = ["HandleTag",false]; TEX.Parse.Augment({ HandleTag: function (name,parens) { var arg; while (this.i < this.string.length && this.nextIsSpace()) {this.i++} if (this.string.charAt(this.i) === '"') {this.i++; arg = this.GetUpTo(name,'"'); parens = false} else if (this.string.charAt(this.i) === "{") {arg = this.trimSpaces(this.GetArgument(name))} else {arg = this.trimSpaces(this.GetToLineEnd(name))} if (parens) {arg = "("+arg+")"} arg = arg.replace(/\\([#$_&%{}])/g,"$1"); // hack to get \# to #, etc. if (this.stack.global.notag) {TEX.Error(name+" not allowed in "+this.stack.global.notag+" environment")} if (this.stack.global.tag) {TEX.Error("Multiple "+name)} this.stack.global.tag = MML.mtd.apply(MML,this.InternalMath(arg)); }, GetToLineEnd: function (name) { var i = this.i; while (this.i < this.string.length) { if (this.string.substr(this.i,2) === "\\\\") {break} if (this.string.substr(this.i,4) === "\\end") {break} this.i++; } return this.string.substr(i,this.i-i); } }); }); MathJax.Hub.Config({ styleSheets: [], styles: {}, jax: ["input/TeX", "output/HTML-CSS"], extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js", "TeX/boldsymbol.js", "TeX/mathchoice.js", "TeX/newcommand.js", "TeX/noErrors.js", "TeX/AMScd.js"], tex2jax: { inlineMath: [ ['$', '$'] ], displayMath: [ [ '$$', '$$'] ], processEscapes: true }, preJax: null, postJax: null, preRemoveClass: "MathTeX", showProcessingMessages: false, messageStyle: "none", displayAlign: "center", displayIndent: "0", delayStartupUntil: "none", skipStartupTypeset: true, elements: [], positionToHash: true, showMathMenu: false, showMathMenuMSIE: false, menuSettings: { zoom: "None", // when to do MathZoom CTRL: false, // require CTRL for MathZoom? ALT: false, // require Alt or Option? CMD: false, // require CMD? Shift: false, // require Shift? zscale: "200%", // the scaling factor for MathZoom font: "Auto", // what font HTML-CSS should use context: "MathJax", // or "Browser" for pass-through to browser menu mpContext: false, // true means pass menu events to MathPlayer in IE mpMouse: false, // true means pass mouse events to MathPlayer in IE texHints: true, // include class names for TeXAtom elements semantics: false // add semantics tag with original form in MathML output }, errorSettings: { message: ["[",["MathProcessingError","Math Processing Error"],"]"], style: {color: "#CC0000", "font-style":"italic"} // style for message }, TeX: { TagSide: "left", TagIndent: "0.8em", MultLineWidth: "80%", Macros: {}, equationNumbers: { autoNumber: "none", // "AMS" for standard AMS environment numbering, // or "all" to number all displayed equations useLabelIds: true // make element ID's use \label name rather than equation number }, noErrors: { disabled: false, // set to true to return to original error messages multiLine: true, // false to not include original line breaks inlineDelimiters: ["",""], // or use ["$","$"] or ["\\(","\\)"] to put back delimiters style: { "font-size": "90%", "text-align": "left", "color": "black", "padding": "1px 3px", "border": "1px solid" } }, }, "HTML-CSS": { scale: 85, minScaleAdjust: 50, availableFonts: [], preferredFont: "TeX", webFont: "TeX", imageFont: null, undefinedFamily: "STIXGeneral,'Arial Unicode MS',serif", mtextFontInherit: false, EqnChunk: 50, EqnChunkFactor: 1.5, EqnChunkDelay: 100, matchFontHeight: true, noReflows: true, linebreaks: { automatic: false, width: "container" }, styles: {}, tooltip: { delayPost: 600, // milliseconds delay before tooltip is posted after mouseover delayClear: 600, // milliseconds delay before tooltip is cleared after mouseout offsetX: 10, offsetY: 5 // pixels to offset tooltip from mouse position } } }); </script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js"></script> </head> <body> <div id="layout"> <a href="#menu" id="menuLink" class="menu-link"> <!-- Hamburger icon --> <span></span> </a> <div id="menu"> <div id="msc-menu"> <div class="pure-menu"> <a class="pure-menu-heading" href="#">MSC2020</a> <ul class="pure-menu-list"> <li class="pure-menu-item"><a class="pure-menu-link" target="general" href="/msc2020-presentation.pdf">General Info</a></li> <li class="pure-menu-heading">Download</li> <li class="pure-menu-item"><a class="pure-menu-link" target="msc2020pdf" href="/MSC_2020.pdf">PDF</a></li> <li class="pure-menu-item"><a class="pure-menu-link" target="msc2020tex" href="/MSC_2020.tex">TeX</a></li> <li class="pure-menu-item"><a class="pure-menu-link" target="msc2020csv" href="/MSC_2020.csv">CSV</a></li> </ul> </div> </div> </div> <div id="main"> <div class="header"> <h1> Mathematics Subject Classification 2020 (MSC2020) </h1> </div> <div class="content"> <div id="about"> <p> The latest revision of the Mathematics Subject Classification (MSC) is complete. Searchable versions are available from the zbMATH site: <a target="_blank" href="https://zbmath.org/classification/">https://zbmath.org/classification/</a> and the MathSciNet site: <a target="_blank" href="https://mathscinet.ams.org/mathscinet/searchMSC.html">https://mathscinet.ams.org/mathscinet.ams.org/mathscinet/searchMSC.html</a>. </p> <p> Mathematical Reviews (MR) and zbMATH collaborate on maintaining the Mathematics Subject Classification, which is used by these reviewing services, publishers, funding agencies, and others to categorize items in the mathematical sciences literature. It is a taxonomy created by and for mathematical researchers. Every ten years, the two editorial groups solicit input from the mathematics community. For the current revision, we received over 350 comments and suggestions from more than 100 different people. MR and zbMATH carefully considered this input from the community, and used it in the preparation of our joint revision of the classification. </p> <p> As anticipated, there are no changes at the two-digit level, but several at the three-digit level, and hundreds at the five-digit level. Nine new three-digit classes were added: <b>18M:</b> Monoidal categories and operads; <b>18N:</b>: Higher categories and homotopical algebra; <b>53E:</b> Geometric evolution equations; <b>57K:</b> Low-dimensional topology in specific dimensions; <b>57Z:</b> Relations of manifolds and cell complexes with science and engineering; <b>60L:</b> Rough analysis; <b>62R:</b> Statistics on algebraic and topological structures; <b>68V:</b> Computer science support for mathematical research and practice; and <b>82M:</b> Basic methods in statistical mechanics. For five-digit classes, 113 classes were retired and 486 new classes were introduced. The new MSC contains 63 two-digit classifications, 529 three-digit classifications, and 6,022 five-digit classifications. </p> <p> There were some general changes. Descriptions of classes were changed to be more useful when searching online or via database interfaces. Previous descriptions assumed the user was looking at a full list of the classifications, which would provide context. An example of the limitation is a search of MSC2010 for “optimization”, which returns 18 matches, not counting essentially every class in <b>49</b> “Calculus of variations and optimal control; optimization”. There were three classes named “Flow control and optimization”: <b>76B75</b>, <b>76D55</b>, and <b>76N25</b>. The three different contexts were incompressible inviscid fluids, incompressible viscous fluids, and compressible fluids and gas dynamics. Now, they have descriptions with more detail, as in <b>76B75</b> Flow control and optimization for incompressible inviscid fluids”. There were three classes just named “Optimization” in the areas: <b>74P</b> Mechanics of deformable solids, <b>78M50</b> Optics, electromagnetic theory, and <b>80M50</b> Classical thermodynamics, heat transfer. Now they have descriptions that include the context, as in <b>78M50</b> Optimization problems in optics and electromagnetic theory. </p> <p> In previous versions of the MSC, there were some “hyphen classes” of the form <b>XX–00</b> (General reference works), <b>XX–01</b> (Introductory expositions), <b>XX–02</b> (Research exposition), <b>XX–03</b> (History), <b>XX–04</b> (Software), and <b>XX–06</b> (Proceedings, conferences, collections, etc.) along with scattered other hyphen classes. The use of hyphen classes has been made more uniform across the MSC, so that most two-digit classes now have these five subclasses. Some hyphen classes would be redundant and are omitted, such as the non-existent class <b>01-03</b>, since the two-digit class for “History of mathematics and mathematicians” does not need a subclass for history. The classes <b>-08</b> for Computational methods for problems from the parent class, <b>-10</b> for Mathematical modeling or simulation for problems from the parent class, and <b>-11</b> for Research data for problems from the parent class have been added where appropriate. For example, there is now the class <b>20-08</b> Computational methods for problems from group theory, and the class <b>20-11</b> Research data for problems from group theory. An example of an omission of one of these new hyphen classes for reasons of redundancy is <b>65</b> Numerical analysis, which does not need the <b>-08</b> class for computational methods. Also, some classes have alternatives to <b>-08</b> with more detail, such as the eight five-digit classes in the three-digit class <b>14Q</b> Computational aspects in algebraic geometry. The hyphen classes <b>-10</b> mostly occur for applied classes, namely MSCs <b>70</b> through <b>94</b>, as in <b>70-10</b> Mathematical modeling or simulation for problems from mechanics of particles and systems. </p> <p> The influences of data and computation on the mathematical sciences are reflected in the classes. In addition to the <b>-08</b> classes, and not including classes from <b>03</b> (Mathematical logic and foundations) or <b>68</b> (Computer science), there are 58 classes referring to computations, computational methods, or computers. For instance, for MSC2020, two new classes, <b>14Q25</b> Computational algebraic geometry over arithmetic ground fields and <b>14Q30</b> Computational real algebraic geometry have been added to the three-digit class <b>14Q</b> Computational aspects in algebraic geometry, which had been added to the MSC in 1991. Similarly, two new classes were added under <b>37M</b> Approximation methods and numerical treatment of dynamical systems: <b>37M21</b> Computational methods for invariant manifolds of dynamical systems, <b>37M22</b> Computational methods for attractors of dynamical systems and <b>37M25</b> Computational methods for ergodic theory. For the <b>-11</b> classes, examples of the types of data envisioned include statistical data, mathematical tables, collections of mathematical objects and their properties, such as integer sequences (as found in the OEIS, for instance) or databases of modular forms or Calabi-Yau varieties. In addition to the <b>-11</b> classes, there are 31 classes with specific instances of data, including the new classes <b>62R10</b> Functional data analysis, <b>62R40</b> Topological data analysis, and <b>68P27</b> Privacy of data. </p> <p> Mathematical Reviews and zbMATH are now using MSC2020 as their classification schemes. We welcome and encourage the community also to adopt the MSC2020. It is available from <a href="https://msc2020.org">msc2020.org</a> as a PDF, TeX, or CSV file. </p> <p> The classification is jointly published by the two organizations under a Creative Commons <a target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC-BY-NC-SA license</a>. Corrections to possible errors in the new system can be submitted by email to <a href="mailto:feedback@msc2020.org">feedback@msc2020.org</a>. All information about MSC2020 is jointly shared by MR and zbMATH. </p> <p> The editors and staffs at Mathematical Reviews and zbMATH express their gratitude to the numerous members of the community for their assistance in this lengthy revision process. </p> </div> </div> </div> </div> <script type="text/javascript"> org.ams.mr.Main.main() </script> </body> </html>