/***
|''Name:''|MathSVGPlugin|
|''Description:''|This plugin translates a subset of the LaTeX math notation to MathML with a customisable image fallback when MathML is not supported. It also provides an easy way to produce mathematical SVG graphics with dynamical features and animation.|
|''Version:''|1.4.1|
|''Date:''|2010-04-01|
|''Source:''|http://www.math.ist.utl.pt/~psoares/MathSVG.html|
|''Author:''|Paulo Soares|
|''License:''|[[GNU Lesser General Public License|http://www.gnu.org/licences/lgpl.html]]|
|''~CoreVersion:''|2.5.0|
!Original copyright notice
{{{
ASCIIMathML.js
==============
Version 2.1 Oct 8, 2008, (c) Peter Jipsen http://www.chapman.edu/~jipsen
This version extends ASCIIMathML.js with LaTeXMathML.js and ASCIIsvg.js.
Latest version at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML.js
If you use it on a webpage, please send the URL to jipsen@chapman.edu
The LaTeXMathML modifications were made by Douglas Woodall, June 2006.
(for details see header on the LaTeXMathML part in middle of file)
Extensive clean-up and improvements by Paulo Soares, Oct 2007.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
(at http://www.gnu.org/licences/lgpl.html) for more details.
}}}
!~MathSVG code (minified)
***/
//{{{
Math.sec=function(a){return 1/Math.cos(a)};Math.csc=function(a){return 1/Math.sin(a)};Math.cot=function(a){return 1/Math.tan(a)};Math.asec=function(a){return Math.acos(1/a)};Math.acsc=function(a){return Math.asin(1/a)};Math.acot=function(a){return Math.atan(1/a)};Math.sinh=function(a){return(Math.exp(a)-Math.exp(-a))/2};Math.cosh=function(a){return(Math.exp(a)+Math.exp(-a))/2};Math.tanh=function(a){return(Math.exp(a)-Math.exp(-a))/(Math.exp(a)+Math.exp(-a))};Math.sech=function(a){return 1/Math.cosh(a)};Math.csch=function(a){return 1/Math.sinh(a)};Math.coth=function(a){return 1/Math.tanh(a)};Math.asinh=function(a){return Math.log(a+Math.sqrt(a*a+1))};Math.acosh=function(a){return Math.log(a+Math.sqrt(a*a-1))};Math.atanh=function(a){return Math.log((1+a)/(1-a))/2};Math.sech=function(a){return 1/Math.cosh(a)};Math.csch=function(a){return 1/Math.sinh(a)};Math.coth=function(a){return 1/Math.tanh(a)};Math.asech=function(a){return Math.acosh(1/a)};Math.acsch=function(a){return Math.asinh(1/a)};Math.acoth=function(a){return Math.atanh(1/a)};Math.sign=function(a){return(a===0?0:(a<0?-1:1))};Math.step=function(a,c,b){return(a<0?(b?b:0):(c?c:1))};Math.root=function(a,b){return Math.pow(a,1/b)};Math.factorial=function(b){if(b===0){return 1}if(b<0){if((b%1)===0){return}if(b>-1){return Math.factorial(b+1)/(b+1)}return -Math.PI/(Math.factorial(-1-b)*Math.sin(Math.PI*b))}var a=b;if((b%1)===0){while(b>1){b=b-1;a=a*b}}else{a=Math.exp((b+0.5)*Math.log(b+1)-b-b*(0.1121105+b*0.08106103)/(1.452342+b*(2.410858+b)))}return a};Math.Gamma=function(a){return Math.factorial(a-1)};Math.Beta=function(a,b){return Math.Gamma(a)*Math.Gamma(b)/Math.Gamma(a+b)};Math.C=function(a,b){var c=1/((a+1)*Math.Beta(b+1,a-b+1));return c};Math.truncate=function(a,c){var b=c||0;return Math.floor(a*Math.pow(10,b))/Math.pow(10,b)};Math.randomString=function(a,g){var f=(g||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz").split("");var e=[],c=Math.random;var d=f.length;for(var b=0;b<a;b++){e[b]=f[0|c()*d]}return e.join("")};Math.runif=function(d,c,f){var e=f||0;return Math.truncate((c+Math.pow(10,-e)-d)*Math.random()+d,e)};Math.rnormal=function(a,b){a=a||0;b=b||1;var d=0,c=0;while(d*c===0){d=Math.random();c=Math.random()}return b*(Math.sqrt(-2*Math.log(d))*Math.cos(2*Math.PI*c))+a};(function(){var a=jQuery.fn.attr,b="http://www.w3.org/2000/svg";jQuery.fn.attr=function(m,l){var g=this.length;if(!g){return this}for(var f=0;f<g;f++){var c=this[f];if(c.namespaceURI===b){if(l!==undefined){c.setAttribute(m,l)}else{if($.isArray(m)){var d=m.length,e={};while(d--){var k=m[d];var h=c.getAttribute(k);if(h||h==="0"){h=isNaN(h)?h:h-0}e[k]=h}return e}else{if(typeof m==="object"){for(v in m){c.setAttribute(v,m[v])}}else{var h=c.getAttribute(m);if(h||h==="0"){h=isNaN(h)?h:h-0}return h}}}}else{return a.apply(this,arguments)}}return this}}());var MSVG=function($){var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";var cal=["\uD835\uDC9C","\u212C","\uD835\uDC9E","\uD835\uDC9F","\u2130","\u2131","\uD835\uDCA2","\u210B","\u2110","\uD835\uDCA5","\uD835\uDCA6","\u2112","\u2133","\uD835\uDCA9","\uD835\uDCAA","\uD835\uDCAB","\uD835\uDCAC","\u211B","\uD835\uDCAE","\uD835\uDCAF","\uD835\uDCB0","\uD835\uDCB1","\uD835\uDCB2","\uD835\uDCB3","\uD835\uDCB4","\uD835\uDCB5","\uD835\uDCB6","\uD835\uDCB7","\uD835\uDCB8","\uD835\uDCB9","\u212F","\uD835\uDCBB","\u210A","\uD835\uDCBD","\uD835\uDCBE","\uD835\uDCBF","\uD835\uDCC0","\uD835\uDCC1","\uD835\uDCC2","\uD835\uDCC3","\u2134","\uD835\uDCC5","\uD835\uDCC6","\uD835\uDCC7","\uD835\uDCC8","\uD835\uDCC9","\uD835\uDCCA","\uD835\uDCCB","\uD835\uDCCC","\uD835\uDCCD","\uD835\uDCCE","\uD835\uDCCF"];var frk=["\uD835\uDD04","\uD835\uDD05","\u212D","\uD835\uDD07","\uD835\uDD08","\uD835\uDD09","\uD835\uDD0A","\u210C","\u2111","\uD835\uDD0D","\uD835\uDD0E","\uD835\uDD0F","\uD835\uDD10","\uD835\uDD11","\uD835\uDD12","\uD835\uDD13","\uD835\uDD14","\u211C","\uD835\uDD16","\uD835\uDD17","\uD835\uDD18","\uD835\uDD19","\uD835\uDD1A","\uD835\uDD1B","\uD835\uDD1C","\u2128","\uD835\uDD1E","\uD835\uDD1F","\uD835\uDD20","\uD835\uDD21","\uD835\uDD22","\uD835\uDD23","\uD835\uDD24","\uD835\uDD25","\uD835\uDD26","\uD835\uDD27","\uD835\uDD28","\uD835\uDD29","\uD835\uDD2A","\uD835\uDD2B","\uD835\uDD2C","\uD835\uDD2D","\uD835\uDD2E","\uD835\uDD2F","\uD835\uDD30","\uD835\uDD31","\uD835\uDD32","\uD835\uDD33","\uD835\uDD34","\uD835\uDD35","\uD835\uDD36","\uD835\uDD37"];var bbb=["\uD835\uDD38","\uD835\uDD39","\u2102","\uD835\uDD3B","\uD835\uDD3C","\uD835\uDD3D","\uD835\uDD3E","\u210D","\uD835\uDD40","\uD835\uDD41","\uD835\uDD42","\uD835\uDD43","\uD835\uDD44","\u2115","\uD835\uDD46","\u2119","\u211A","\u211D","\uD835\uDD4A","\uD835\uDD4B","\uD835\uDD4C","\uD835\uDD4D","\uD835\uDD4E","\uD835\uDD4F","\uD835\uDD50","\u2124","\uD835\uDD52","\uD835\uDD53","\uD835\uDD54","\uD835\uDD55","\uD835\uDD56","\uD835\uDD57","\uD835\uDD58","\uD835\uDD59","\uD835\uDD5A","\uD835\uDD5B","\uD835\uDD5C","\uD835\uDD5D","\uD835\uDD5E","\uD835\uDD5F","\uD835\uDD60","\uD835\uDD61","\uD835\uDD62","\uD835\uDD63","\uD835\uDD64","\uD835\uDD65","\uD835\uDD66","\uD835\uDD67","\uD835\uDD68","\uD835\uDD69","\uD835\uDD6A","\uD835\uDD6B"];var CONST=0,UNARY=1,BINARY=2,INFIX=3,LEFTBRACKET=4,RIGHTBRACKET=5,SPACE=6,UNDEROVER=7,DEFINITION=8,LEFTRIGHT=9,TEXT=10,BIG=11,STRETCHY=13,MATRIX=14;var symbols=[{input:"\\varepsilon",tag:"mi",output:"\u025B",ttype:CONST},{input:"\\varsigma",tag:"mi",output:"\u03C2",ttype:CONST},{input:"\\vartheta",tag:"mi",output:"\u03D1",ttype:CONST},{input:"\\varphi",tag:"mi",output:"\u03D5",ttype:CONST},{input:"\\varpi",tag:"mi",output:"\u03D6",ttype:CONST},{input:"\\varrho",tag:"mi",output:"\u03F1",ttype:CONST},{input:"\\alpha",tag:"mi",output:"\u03B1",ttype:CONST},{input:"\\beta",tag:"mi",output:"\u03B2",ttype:CONST},{input:"\\gamma",tag:"mi",output:"\u03B3",ttype:CONST},{input:"\\delta",tag:"mi",output:"\u03B4",ttype:CONST},{input:"\\epsilon",tag:"mi",output:"\u03B5",ttype:CONST},{input:"\\zeta",tag:"mi",output:"\u03B6",ttype:CONST},{input:"\\eta",tag:"mi",output:"\u03B7",ttype:CONST},{input:"\\theta",tag:"mi",output:"\u03B8",ttype:CONST},{input:"\\iota",tag:"mi",output:"\u03B9",ttype:CONST},{input:"\\kappa",tag:"mi",output:"\u03BA",ttype:CONST},{input:"\\lambda",tag:"mi",output:"\u03BB",ttype:CONST},{input:"\\mu",tag:"mi",output:"\u03BC",ttype:CONST},{input:"\\nu",tag:"mi",output:"\u03BD",ttype:CONST},{input:"\\xi",tag:"mi",output:"\u03BE",ttype:CONST},{input:"\\omicron",tag:"mi",output:"\u03BF",ttype:CONST},{input:"\\pi",tag:"mi",output:"\u03C0",ttype:CONST},{input:"\\rho",tag:"mi",output:"\u03C1",ttype:CONST},{input:"\\sigma",tag:"mi",output:"\u03C3",ttype:CONST},{input:"\\tau",tag:"mi",output:"\u03C4",ttype:CONST},{input:"\\upsilon",tag:"mi",output:"\u03C5",ttype:CONST},{input:"\\phi",tag:"mi",output:"\u03C6",ttype:CONST},{input:"\\chi",tag:"mi",output:"\u03C7",ttype:CONST},{input:"\\psi",tag:"mi",output:"\u03C8",ttype:CONST},{input:"\\omega",tag:"mi",output:"\u03C9",ttype:CONST},{input:"\\Alpha",tag:"mo",output:"\u0391",ttype:CONST},{input:"\\Beta",tag:"mo",output:"\u0392",ttype:CONST},{input:"\\Gamma",tag:"mo",output:"\u0393",ttype:CONST},{input:"\\Delta",tag:"mo",output:"\u0394",ttype:CONST},{input:"\\Epsilon",tag:"mo",output:"\u0395",ttype:CONST},{input:"\\Zeta",tag:"mo",output:"\u0396",ttype:CONST},{input:"\\Eta",tag:"mo",output:"\u0397",ttype:CONST},{input:"\\Theta",tag:"mo",output:"\u0398",ttype:CONST},{input:"\\Iota",tag:"mo",output:"\u0399",ttype:CONST},{input:"\\Kappa",tag:"mo",output:"\u039A",ttype:CONST},{input:"\\Lambda",tag:"mo",output:"\u039B",ttype:CONST},{input:"\\Mu",tag:"mo",output:"\u039C",ttype:CONST},{input:"\\Nu",tag:"mo",output:"\u039D",ttype:CONST},{input:"\\Xi",tag:"mo",output:"\u039E",ttype:CONST},{input:"\\Omicron",tag:"mo",output:"\u039F",ttype:CONST},{input:"\\Pi",tag:"mo",output:"\u03A0",ttype:CONST},{input:"\\Rho",tag:"mo",output:"\u03A1",ttype:CONST},{input:"\\Sigma",tag:"mo",output:"\u03A3",ttype:CONST},{input:"\\Tau",tag:"mo",output:"\u03A4",ttype:CONST},{input:"\\Upsilon",tag:"mo",output:"\u03A5",ttype:CONST},{input:"\\Phi",tag:"mo",output:"\u03A6",ttype:CONST},{input:"\\Chi",tag:"mo",output:"\u03A7",ttype:CONST},{input:"\\Psi",tag:"mo",output:"\u03A8",ttype:CONST},{input:"\\Omega",tag:"mo",output:"\u03A9",ttype:CONST},{input:"\\frac12",tag:"mo",output:"\u00BD",ttype:CONST},{input:"\\frac14",tag:"mo",output:"\u00BC",ttype:CONST},{input:"\\frac34",tag:"mo",output:"\u00BE",ttype:CONST},{input:"\\frac13",tag:"mo",output:"\u2153",ttype:CONST},{input:"\\frac23",tag:"mo",output:"\u2154",ttype:CONST},{input:"\\frac15",tag:"mo",output:"\u2155",ttype:CONST},{input:"\\frac25",tag:"mo",output:"\u2156",ttype:CONST},{input:"\\frac35",tag:"mo",output:"\u2157",ttype:CONST},{input:"\\frac45",tag:"mo",output:"\u2158",ttype:CONST},{input:"\\frac16",tag:"mo",output:"\u2159",ttype:CONST},{input:"\\frac56",tag:"mo",output:"\u215A",ttype:CONST},{input:"\\frac18",tag:"mo",output:"\u215B",ttype:CONST},{input:"\\frac38",tag:"mo",output:"\u215C",ttype:CONST},{input:"\\frac58",tag:"mo",output:"\u215D",ttype:CONST},{input:"\\frac78",tag:"mo",output:"\u215E",ttype:CONST},{input:"\\pm",tag:"mo",output:"\u00B1",ttype:CONST},{input:"\\mp",tag:"mo",output:"\u2213",ttype:CONST},{input:"\\triangleleft",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\triangleright",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\cdot",tag:"mo",output:"\u22C5",ttype:CONST},{input:"\\star",tag:"mo",output:"\u22C6",ttype:CONST},{input:"\\ast",tag:"mo",output:"\u002A",ttype:CONST},{input:"\\times",tag:"mo",output:"\u00D7",ttype:CONST},{input:"\\div",tag:"mo",output:"\u00F7",ttype:CONST},{input:"\\circ",tag:"mo",output:"\u2218",ttype:CONST},{input:"\\bullet",tag:"mo",output:"\u2022",ttype:CONST},{input:"\\oplus",tag:"mo",output:"\u2295",ttype:CONST},{input:"\\ominus",tag:"mo",output:"\u2296",ttype:CONST},{input:"\\otimes",tag:"mo",output:"\u2297",ttype:CONST},{input:"\\bigcirc",tag:"mo",output:"\u25CB",ttype:CONST},{input:"\\oslash",tag:"mo",output:"\u2298",ttype:CONST},{input:"\\odot",tag:"mo",output:"\u2299",ttype:CONST},{input:"\\land",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\wedge",tag:"mo",output:"\u2227",ttype:CONST},{input:"\\lor",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\vee",tag:"mo",output:"\u2228",ttype:CONST},{input:"\\cap",tag:"mo",output:"\u2229",ttype:CONST},{input:"\\cup",tag:"mo",output:"\u222A",ttype:CONST},{input:"\\sqcap",tag:"mo",output:"\u2293",ttype:CONST},{input:"\\sqcup",tag:"mo",output:"\u2294",ttype:CONST},{input:"\\uplus",tag:"mo",output:"\u228E",ttype:CONST},{input:"\\amalg",tag:"mo",output:"\u2210",ttype:CONST},{input:"\\bigtriangleup",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\bigtriangledown",tag:"mo",output:"\u25BD",ttype:CONST},{input:"\\dag",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\dagger",tag:"mo",output:"\u2020",ttype:CONST},{input:"\\ddag",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\ddagger",tag:"mo",output:"\u2021",ttype:CONST},{input:"\\lhd",tag:"mo",output:"\u22B2",ttype:CONST},{input:"\\rhd",tag:"mo",output:"\u22B3",ttype:CONST},{input:"\\unlhd",tag:"mo",output:"\u22B4",ttype:CONST},{input:"\\unrhd",tag:"mo",output:"\u22B5",ttype:CONST},{input:"\\sum",tag:"mo",output:"\u2211",ttype:UNDEROVER},{input:"\\prod",tag:"mo",output:"\u220F",ttype:UNDEROVER},{input:"\\bigcap",tag:"mo",output:"\u22C2",ttype:UNDEROVER},{input:"\\bigcup",tag:"mo",output:"\u22C3",ttype:UNDEROVER},{input:"\\bigwedge",tag:"mo",output:"\u22C0",ttype:UNDEROVER},{input:"\\bigvee",tag:"mo",output:"\u22C1",ttype:UNDEROVER},{input:"\\bigsqcap",tag:"mo",output:"\u2A05",ttype:UNDEROVER},{input:"\\bigsqcup",tag:"mo",output:"\u2A06",ttype:UNDEROVER},{input:"\\coprod",tag:"mo",output:"\u2210",ttype:UNDEROVER},{input:"\\bigoplus",tag:"mo",output:"\u2A01",ttype:UNDEROVER},{input:"\\bigotimes",tag:"mo",output:"\u2A02",ttype:UNDEROVER},{input:"\\bigodot",tag:"mo",output:"\u2A00",ttype:UNDEROVER},{input:"\\biguplus",tag:"mo",output:"\u2A04",ttype:UNDEROVER},{input:"\\int",tag:"mo",output:"\u222B",ttype:CONST},{input:"\\oint",tag:"mo",output:"\u222E",ttype:CONST},{input:":=",tag:"mo",output:":=",ttype:CONST},{input:"\\lt",tag:"mo",output:"<",ttype:CONST},{input:"\\gt",tag:"mo",output:">",ttype:CONST},{input:"\\ne",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\neq",tag:"mo",output:"\u2260",ttype:CONST},{input:"\\le",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leq",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\leqslant",tag:"mo",output:"\u2264",ttype:CONST},{input:"\\ge",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geq",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\geqslant",tag:"mo",output:"\u2265",ttype:CONST},{input:"\\equiv",tag:"mo",output:"\u2261",ttype:CONST},{input:"\\ll",tag:"mo",output:"\u226A",ttype:CONST},{input:"\\gg",tag:"mo",output:"\u226B",ttype:CONST},{input:"\\doteq",tag:"mo",output:"\u2250",ttype:CONST},{input:"\\prec",tag:"mo",output:"\u227A",ttype:CONST},{input:"\\succ",tag:"mo",output:"\u227B",ttype:CONST},{input:"\\preceq",tag:"mo",output:"\u227C",ttype:CONST},{input:"\\succeq",tag:"mo",output:"\u227D",ttype:CONST},{input:"\\subset",tag:"mo",output:"\u2282",ttype:CONST},{input:"\\supset",tag:"mo",output:"\u2283",ttype:CONST},{input:"\\subseteq",tag:"mo",output:"\u2286",ttype:CONST},{input:"\\supseteq",tag:"mo",output:"\u2287",ttype:CONST},{input:"\\sqsubset",tag:"mo",output:"\u228F",ttype:CONST},{input:"\\sqsupset",tag:"mo",output:"\u2290",ttype:CONST},{input:"\\sqsubseteq",tag:"mo",output:"\u2291",ttype:CONST},{input:"\\sqsupseteq",tag:"mo",output:"\u2292",ttype:CONST},{input:"\\sim",tag:"mo",output:"\u223C",ttype:CONST},{input:"\\simeq",tag:"mo",output:"\u2243",ttype:CONST},{input:"\\approx",tag:"mo",output:"\u2248",ttype:CONST},{input:"\\cong",tag:"mo",output:"\u2245",ttype:CONST},{input:"\\Join",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\bowtie",tag:"mo",output:"\u22C8",ttype:CONST},{input:"\\in",tag:"mo",output:"\u2208",ttype:CONST},{input:"\\ni",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\owns",tag:"mo",output:"\u220B",ttype:CONST},{input:"\\propto",tag:"mo",output:"\u221D",ttype:CONST},{input:"\\vdash",tag:"mo",output:"\u22A2",ttype:CONST},{input:"\\dashv",tag:"mo",output:"\u22A3",ttype:CONST},{input:"\\models",tag:"mo",output:"\u22A8",ttype:CONST},{input:"\\perp",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\smile",tag:"mo",output:"\u2323",ttype:CONST},{input:"\\frown",tag:"mo",output:"\u2322",ttype:CONST},{input:"\\asymp",tag:"mo",output:"\u224D",ttype:CONST},{input:"\\notin",tag:"mo",output:"\u2209",ttype:CONST},{input:"\\begin{eqnarray}",output:"X",ttype:MATRIX,invisible:true},{input:"\\begin{array}",output:"X",ttype:MATRIX,invisible:true},{input:"\\\\",output:"}&{",ttype:DEFINITION},{input:"\\end{eqnarray}",output:"}}",ttype:DEFINITION},{input:"\\end{array}",output:"}}",ttype:DEFINITION},{input:"\\big",tag:"mo",output:"X",atval:"1.2",ttype:BIG},{input:"\\Big",tag:"mo",output:"X",atval:"1.8",ttype:BIG},{input:"\\bigg",tag:"mo",output:"X",atval:"2.3",ttype:BIG},{input:"\\Bigg",tag:"mo",output:"X",atval:"2.9",ttype:BIG},{input:"\\left",tag:"mo",output:"X",ttype:LEFTBRACKET},{input:"\\right",tag:"mo",output:"X",ttype:RIGHTBRACKET},{input:"{",output:"{",ttype:LEFTBRACKET,invisible:true},{input:"}",output:"}",ttype:RIGHTBRACKET,invisible:true},{input:"(",tag:"mo",output:"(",atval:"1",ttype:STRETCHY},{input:"[",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\lbrack",tag:"mo",output:"[",atval:"1",ttype:STRETCHY},{input:"\\{",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\lbrace",tag:"mo",output:"{",atval:"1",ttype:STRETCHY},{input:"\\langle",tag:"mo",output:"\u2329",atval:"1",ttype:STRETCHY},{input:"\\lfloor",tag:"mo",output:"\u230A",atval:"1",ttype:STRETCHY},{input:"\\lceil",tag:"mo",output:"\u2308",atval:"1",ttype:STRETCHY},{input:")",tag:"mo",output:")",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"]",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrack",tag:"mo",output:"]",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\}",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rbrace",tag:"mo",output:"}",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rangle",tag:"mo",output:"\u232A",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rfloor",tag:"mo",output:"\u230B",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"\\rceil",tag:"mo",output:"\u2309",rtag:"mi",atval:"1",ttype:STRETCHY},{input:"|",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\|",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\vert",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\Vert",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"\\mid",tag:"mo",output:"\u2223",atval:"1",ttype:STRETCHY},{input:"\\parallel",tag:"mo",output:"\u2225",atval:"1",ttype:STRETCHY},{input:"/",tag:"mo",output:"/",atval:"1.01",ttype:STRETCHY},{input:"\\backslash",tag:"mo",output:"\u2216",atval:"1",ttype:STRETCHY},{input:"\\setminus",tag:"mo",output:"\\",ttype:CONST},{input:"\\!",tag:"mspace",atname:"width",atval:"-0.167em",ttype:SPACE},{input:"\\,",tag:"mspace",atname:"width",atval:"0.167em",ttype:SPACE},{input:"\\>",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\:",tag:"mspace",atname:"width",atval:"0.222em",ttype:SPACE},{input:"\\;",tag:"mspace",atname:"width",atval:"0.278em",ttype:SPACE},{input:"~",tag:"mspace",atname:"width",atval:"0.333em",ttype:SPACE},{input:"\\quad",tag:"mspace",atname:"width",atval:"1em",ttype:SPACE},{input:"\\qquad",tag:"mspace",atname:"width",atval:"2em",ttype:SPACE},{input:"\\prime",tag:"mo",output:"\u2032",ttype:CONST},{input:"'",tag:"mo",output:"\u02B9",ttype:CONST},{input:"''",tag:"mo",output:"\u02BA",ttype:CONST},{input:"'''",tag:"mo",output:"\u2034",ttype:CONST},{input:"''''",tag:"mo",output:"\u2057",ttype:CONST},{input:"\\ldots",tag:"mo",output:"\u2026",ttype:CONST},{input:"\\cdots",tag:"mo",output:"\u22EF",ttype:CONST},{input:"\\vdots",tag:"mo",output:"\u22EE",ttype:CONST},{input:"\\ddots",tag:"mo",output:"\u22F1",ttype:CONST},{input:"\\forall",tag:"mo",output:"\u2200",ttype:CONST},{input:"\\exists",tag:"mo",output:"\u2203",ttype:CONST},{input:"\\Re",tag:"mo",output:"\u211C",ttype:CONST},{input:"\\Im",tag:"mo",output:"\u2111",ttype:CONST},{input:"\\aleph",tag:"mo",output:"\u2135",ttype:CONST},{input:"\\hbar",tag:"mo",output:"\u210F",ttype:CONST},{input:"\\ell",tag:"mo",output:"\u2113",ttype:CONST},{input:"\\wp",tag:"mo",output:"\u2118",ttype:CONST},{input:"\\emptyset",tag:"mo",output:"\u2205",ttype:CONST},{input:"\\infty",tag:"mo",output:"\u221E",ttype:CONST},{input:"\\surd",tag:"mo",output:"\\sqrt{}",ttype:DEFINITION},{input:"\\partial",tag:"mo",output:"\u2202",ttype:CONST},{input:"\\nabla",tag:"mo",output:"\u2207",ttype:CONST},{input:"\\triangle",tag:"mo",output:"\u25B3",ttype:CONST},{input:"\\therefore",tag:"mo",output:"\u2234",ttype:CONST},{input:"\\angle",tag:"mo",output:"\u2220",ttype:CONST},{input:"\\diamond",tag:"mo",output:"\u22C4",ttype:CONST},{input:"\\Diamond",tag:"mo",output:"\u25C7",ttype:CONST},{input:"\\neg",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\lnot",tag:"mo",output:"\u00AC",ttype:CONST},{input:"\\bot",tag:"mo",output:"\u22A5",ttype:CONST},{input:"\\top",tag:"mo",output:"\u22A4",ttype:CONST},{input:"\\square",tag:"mo",output:"\u25AB",ttype:CONST},{input:"\\Box",tag:"mo",output:"\u25A1",ttype:CONST},{input:"\\wr",tag:"mo",output:"\u2240",ttype:CONST},{input:"\\arccos",tag:"mi",output:"arccos",ttype:UNARY,func:true},{input:"\\arcsin",tag:"mi",output:"arcsin",ttype:UNARY,func:true},{input:"\\arctan",tag:"mi",output:"arctan",ttype:UNARY,func:true},{input:"\\arg",tag:"mi",output:"arg",ttype:UNARY,func:true},{input:"\\cos",tag:"mi",output:"cos",ttype:UNARY,func:true},{input:"\\cosh",tag:"mi",output:"cosh",ttype:UNARY,func:true},{input:"\\cot",tag:"mi",output:"cot",ttype:UNARY,func:true},{input:"\\coth",tag:"mi",output:"coth",ttype:UNARY,func:true},{input:"\\csc",tag:"mi",output:"csc",ttype:UNARY,func:true},{input:"\\deg",tag:"mi",output:"deg",ttype:UNARY,func:true},{input:"\\det",tag:"mi",output:"det",ttype:UNARY,func:true},{input:"\\dim",tag:"mi",output:"dim",ttype:UNARY,func:true},{input:"\\exp",tag:"mi",output:"exp",ttype:UNARY,func:true},{input:"\\gcd",tag:"mi",output:"gcd",ttype:UNARY,func:true},{input:"\\hom",tag:"mi",output:"hom",ttype:UNARY,func:true},{input:"\\inf",tag:"mo",output:"inf",ttype:UNDEROVER},{input:"\\ker",tag:"mi",output:"ker",ttype:UNARY,func:true},{input:"\\lg",tag:"mi",output:"lg",ttype:UNARY,func:true},{input:"\\lim",tag:"mo",output:"lim",ttype:UNDEROVER},{input:"\\liminf",tag:"mo",output:"liminf",ttype:UNDEROVER},{input:"\\limsup",tag:"mo",output:"limsup",ttype:UNDEROVER},{input:"\\ln",tag:"mi",output:"ln",ttype:UNARY,func:true},{input:"\\log",tag:"mi",output:"log",ttype:UNARY,func:true},{input:"\\max",tag:"mo",output:"max",ttype:UNDEROVER},{input:"\\min",tag:"mo",output:"min",ttype:UNDEROVER},{input:"\\Pr",tag:"mi",output:"Pr",ttype:UNARY,func:true},{input:"\\sec",tag:"mi",output:"sec",ttype:UNARY,func:true},{input:"\\sin",tag:"mi",output:"sin",ttype:UNARY,func:true},{input:"\\sinh",tag:"mi",output:"sinh",ttype:UNARY,func:true},{input:"\\sup",tag:"mo",output:"sup",ttype:UNDEROVER},{input:"\\tan",tag:"mi",output:"tan",ttype:UNARY,func:true},{input:"\\tanh",tag:"mi",output:"tanh",ttype:UNARY,func:true},{input:"\\gets",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\leftarrow",tag:"mo",output:"\u2190",ttype:CONST},{input:"\\to",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\rightarrow",tag:"mo",output:"\u2192",ttype:CONST},{input:"\\leftrightarrow",tag:"mo",output:"\u2194",ttype:CONST},{input:"\\uparrow",tag:"mo",output:"\u2191",ttype:CONST},{input:"\\downarrow",tag:"mo",output:"\u2193",ttype:CONST},{input:"\\updownarrow",tag:"mo",output:"\u2195",ttype:CONST},{input:"\\Leftarrow",tag:"mo",output:"\u21D0",ttype:CONST},{input:"\\Rightarrow",tag:"mo",output:"\u21D2",ttype:CONST},{input:"\\Leftrightarrow",tag:"mo",output:"\u21D4",ttype:CONST},{input:"\\iff",tag:"mo",output:"~\\Longleftrightarrow~",ttype:DEFINITION},{input:"\\Uparrow",tag:"mo",output:"\u21D1",ttype:CONST},{input:"\\Downarrow",tag:"mo",output:"\u21D3",ttype:CONST},{input:"\\Updownarrow",tag:"mo",output:"\u21D5",ttype:CONST},{input:"\\mapsto",tag:"mo",output:"\u21A6",ttype:CONST},{input:"\\longleftarrow",tag:"mo",output:"\u27F5",ttype:CONST},{input:"\\longrightarrow",tag:"mo",output:"\u27F6",ttype:CONST},{input:"\\longleftrightarrow",tag:"mo",output:"\u27F7",ttype:CONST},{input:"\\Longleftarrow",tag:"mo",output:"\u27F8",ttype:CONST},{input:"\\Longrightarrow",tag:"mo",output:"\u27F9",ttype:CONST},{input:"\\Longleftrightarrow",tag:"mo",output:"\u27FA",ttype:CONST},{input:"\\longmapsto",tag:"mo",output:"\u27FC",ttype:CONST},{input:"\\sqrt",tag:"msqrt",output:"sqrt",ttype:UNARY},{input:"\\root",tag:"mroot",output:"root",ttype:BINARY},{input:"\\frac",tag:"mfrac",output:"/",ttype:BINARY},{input:"\\stackrel",tag:"mover",output:"stackrel",ttype:BINARY},{input:"\\atop",tag:"mfrac",output:"",ttype:INFIX},{input:"\\choose",tag:"mfrac",output:"",ttype:INFIX},{input:"\\over",tag:"mfrac",output:"/",ttype:INFIX},{input:"_",tag:"msub",output:"_",ttype:INFIX},{input:"^",tag:"msup",output:"^",ttype:INFIX},{input:"\\mbox",tag:"mtext",output:"mbox",ttype:TEXT},{input:"\\acute",tag:"mover",output:"\u00B4",ttype:UNARY,acc:true},{input:"\\grave",tag:"mover",output:"\u0060",ttype:UNARY,acc:true},{input:"\\breve",tag:"mover",output:"\u02D8",ttype:UNARY,acc:true},{input:"\\check",tag:"mover",output:"\u02C7",ttype:UNARY,acc:true},{input:"\\dot",tag:"mover",output:".",ttype:UNARY,acc:true},{input:"\\ddot",tag:"mover",output:"..",ttype:UNARY,acc:true},{input:"\\mathring",tag:"mover",output:"\u00B0",ttype:UNARY,acc:true},{input:"\\vec",tag:"mover",output:"\u2192",ttype:UNARY,acc:true},{input:"\\overrightarrow",tag:"mover",output:"\u2192",ttype:UNARY,acc:true},{input:"\\overleftarrow",tag:"mover",output:"\u2190",ttype:UNARY,acc:true},{input:"\\hat",tag:"mover",output:"\u005E",ttype:UNARY,acc:true},{input:"\\widehat",tag:"mover",output:"\u0302",ttype:UNARY,acc:true},{input:"\\tilde",tag:"mover",output:"~",ttype:UNARY,acc:true},{input:"\\widetilde",tag:"mover",output:"\u02DC",ttype:UNARY,acc:true},{input:"\\bar",tag:"mover",output:"\u203E",ttype:UNARY,acc:true},{input:"\\overbrace",tag:"mover",output:"\u23B4",ttype:UNARY,acc:true},{input:"\\overline",tag:"mover",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\underbrace",tag:"munder",output:"\u23B5",ttype:UNARY,acc:true},{input:"\\underline",tag:"munder",output:"\u00AF",ttype:UNARY,acc:true},{input:"\\displaystyle",tag:"mstyle",atname:"displaystyle",atval:"true",ttype:UNARY},{input:"\\textstyle",tag:"mstyle",atname:"displaystyle",atval:"false",ttype:UNARY},{input:"\\scriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"1",ttype:UNARY},{input:"\\scriptscriptstyle",tag:"mstyle",atname:"scriptlevel",atval:"2",ttype:UNARY},{input:"\\mathrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\textrm",tag:"mtext",output:"text",ttype:TEXT},{input:"\\mathbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY,codes:chars},{input:"\\textbf",tag:"mstyle",atname:"mathvariant",atval:"bold",ttype:UNARY,codes:chars},{input:"\\mathit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\textit",tag:"mstyle",atname:"mathvariant",atval:"italic",ttype:UNARY},{input:"\\mathtt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY,codes:chars},{input:"\\texttt",tag:"mstyle",atname:"mathvariant",atval:"monospace",ttype:UNARY,codes:chars},{input:"\\mathsf",tag:"mstyle",atname:"mathvariant",atval:"sans-serif",ttype:UNARY,codes:chars},{input:"\\mathbb",tag:"mstyle",atname:"mathvariant",atval:"double-struck",ttype:UNARY,codes:bbb},{input:"\\mathcal",tag:"mstyle",atname:"mathvariant",atval:"script",ttype:UNARY,codes:cal},{input:"\\mathfrak",tag:"mstyle",atname:"mathvariant",atval:"fraktur",ttype:UNARY,codes:frk}];var names=[];if(!document.createElementNS){document.createElementNS=function(link,type){return this.createElement(type)}}function compareNames(x,y){if(x.input>y.input){return 1}else{return -1}}function refreshSymbols(){var len=symbols.length;symbols.sort(compareNames);for(var i=0;i<len;i++){names[i]=symbols[i].input}}function strim(str,n){return $.trim(str.slice(n))}function createElementXHTML(elType){return document.createElementNS("http://www.w3.org/1999/xhtml",elType)}function position(str,n){var pos=$.inArray(str,names.slice(n));if(pos<0){var narr=names.concat([str]);narr.sort();pos=$.inArray(str,narr.slice(n))}return n+pos}function getSymbol(str){var k=0;var j=0;var mk;var st;var tagst;var match="";var more=true;var sLen=str.length;for(var i=1;i<=sLen&&more;i++){st=str.slice(0,i);j=k;k=position(st,j);if(k<names.length&&str.slice(0,names[k].length)==names[k]){match=names[k];mk=k;i=match.length}more=k<names.length&&str.slice(0,names[k].length)>=names[k]}if(match!==""){return symbols[mk]}k=1;st=str.slice(0,1);if("0"<=st&&st<="9"){tagst="mn"}else{tagst=(("A">st||st>"Z")&&("a">st||st>"z")?"mo":"mi")}return{input:st,tag:tagst,output:st,ttype:CONST}}function parseSexpr(str){var symbol,node,result,result2,i,st,newFrag=document.createDocumentFragment();symbol=getSymbol(str);if(symbol===null||symbol.ttype==RIGHTBRACKET){return[null,str,null]}if(symbol.ttype==DEFINITION){str=symbol.output+strim(str,symbol.input.length);symbol=getSymbol(str);if(symbol===null||symbol.ttype==RIGHTBRACKET){return[null,str,null]}}str=strim(str,symbol.input.length);switch(symbol.ttype){case SPACE:node=createMmlNode(symbol.tag);node.setAttribute(symbol.atname,symbol.atval);return[node,str,symbol.tag];case UNDEROVER:return[createMmlNode(symbol.tag,document.createTextNode(symbol.output)),str,symbol.tag];case CONST:node=createMmlNode(symbol.tag,document.createTextNode(symbol.output));return[node,str,symbol.tag];case STRETCHY:node=createMmlNode(symbol.tag,document.createTextNode(symbol.output));if(symbol.input=="|"||symbol.input=="\\vert"||symbol.input=="\\|"||symbol.input=="\\Vert"){node.setAttribute("lspace","0em");node.setAttribute("rspace","0em")}node.setAttribute("maxsize",symbol.atval);if(symbol.rtag!==null){return[node,str,symbol.rtag]}else{return[node,str,symbol.tag]}break;case BIG:var atval=symbol.atval;symbol=getSymbol(str);if(symbol===null){return[null,str,null]}str=strim(str,symbol.input.length);node=createMmlNode(symbol.tag,document.createTextNode(symbol.output));node.setAttribute("minsize",atval);node.setAttribute("maxsize",atval);return[node,str,symbol.tag];case LEFTBRACKET:if(symbol.input=="\\left"){symbol=getSymbol(str);if(symbol!==null){if(symbol.input=="."){symbol.invisible=true}str=strim(str,symbol.input.length)}}result=parseExpr(str,true,false);if(symbol===null||(typeof symbol.invisible=="boolean"&&symbol.invisible)){node=createMmlNode("mrow",result[0])}else{node=createMmlNode("mo",document.createTextNode(symbol.output));node=createMmlNode("mrow",node);node.appendChild(result[0])}return[node,result[1],result[2]];case MATRIX:if(symbol.input=="\\begin{array}"){var mask="";symbol=getSymbol(str);str=$.trim(str);if(symbol===null){mask="l"}else{str=strim(str,symbol.input.length);if(symbol.input!="{"){mask="l"}else{do{symbol=getSymbol(str);if(symbol!==null){str=strim(str,symbol.input.length);if(symbol.input!="}"){mask=mask+symbol.input}}}while(symbol!==null&&symbol.input!==""&&symbol.input!="}")}}result=parseExpr("{"+str,true,true);node=createMmlNode("mtable",result[0]);mask=mask.replace(/l/g,"left ");mask=mask.replace(/r/g,"right ");mask=mask.replace(/c/g,"center ");node.setAttribute("columnalign",mask);node.setAttribute("displaystyle","false");return[node,result[1],null]}else{result=parseExpr("{"+str,true,true);node=createMmlNode("mtable",result[0]);node.setAttribute("columnspacing","0.167em");node.setAttribute("columnalign","right center left");node.setAttribute("displaystyle","true");node=createMmlNode("mrow",node);return[node,result[1],null]}break;case TEXT:if(str.charAt(0)=="{"){i=str.indexOf("}")}else{i=0}if(i==-1){i=str.length}st=str.slice(1,i);newFrag.appendChild(createMmlNode(symbol.tag,document.createTextNode(st)));str=strim(str,i+1);return[createMmlNode("mrow",newFrag),str,null];case UNARY:result=parseSexpr(str);if(result[0]===null){return[createMmlNode(symbol.tag,document.createTextNode(symbol.output)),str]}if(typeof symbol.func=="boolean"&&symbol.func){st=str.charAt(0);if(st=="^"||st=="_"||st==","){return[createMmlNode(symbol.tag,document.createTextNode(symbol.output)),str,symbol.tag]}else{node=createMmlNode("mrow",createMmlNode(symbol.tag,document.createTextNode(symbol.output)));node.appendChild(result[0]);return[node,result[1],symbol.tag]}}if(symbol.input=="\\sqrt"){return[createMmlNode(symbol.tag,result[0]),result[1],symbol.tag]}else{if(typeof symbol.acc=="boolean"&&symbol.acc){node=createMmlNode(symbol.tag,result[0]);var output=symbol.output;var node1=createMmlNode("mo",document.createTextNode(output));if(symbol.input=="\\vec"||symbol.input=="\\check"){node1.setAttribute("maxsize","1.2")}if(symbol.input=="\\underbrace"||symbol.input=="\\underline"){node1.setAttribute("accentunder","true")}else{node1.setAttribute("accent","true")}node.appendChild(node1);if(symbol.input=="\\overbrace"||symbol.input=="\\underbrace"){node.ttype=UNDEROVER}return[node,result[1],symbol.tag]}else{if(typeof symbol.codes!="undefined"){for(i=0;i<result[0].childNodes.length;i++){if(result[0].childNodes[i].nodeName=="mi"||result[0].nodeName=="mi"){st=(result[0].nodeName=="mi"?result[0].firstChild.nodeValue:result[0].childNodes[i].firstChild.nodeValue);var newst=[];for(var j=0;j<st.length;j++){if(st.charCodeAt(j)>64&&st.charCodeAt(j)<91){newst=newst+symbol.codes[st.charCodeAt(j)-65]}else{if(st.charCodeAt(j)>96&&st.charCodeAt(j)<123){newst=newst+symbol.codes[st.charCodeAt(j)-71]}}}if(result[0].nodeName=="mi"){result[0]=createMmlNode("mo").appendChild(document.createTextNode(newst))}else{result[0].replaceChild(createMmlNode("mo").appendChild(document.createTextNode(newst)),result[0].childNodes[i])}}}}node=createMmlNode(symbol.tag,result[0]);node.setAttribute(symbol.atname,symbol.atval);if(symbol.input=="\\scriptstyle"||symbol.input=="\\scriptscriptstyle"){node.setAttribute("displaystyle","false")}return[node,result[1],symbol.tag]}}break;case BINARY:result=parseSexpr(str);if(result[0]===null){return[createMmlNode("mo",document.createTextNode(symbol.input)),str,null]}result2=parseSexpr(result[1]);if(result2[0]===null){return[createMmlNode("mo",document.createTextNode(symbol.input)),str,null]}if(symbol.input=="\\root"||symbol.input=="\\stackrel"){newFrag.appendChild(result2[0])}newFrag.appendChild(result[0]);if(symbol.input=="\\frac"){newFrag.appendChild(result2[0])}return[createMmlNode(symbol.tag,newFrag),result2[1],symbol.tag];case INFIX:str=strim(str,symbol.input.length);return[createMmlNode("mo",document.createTextNode(symbol.output)),str,symbol.tag];default:return[createMmlNode(symbol.tag,document.createTextNode(symbol.output)),str,symbol.tag]}}function parseIexpr(str){var symbol,sym1,sym2,node,result,tag,underover;sym1=getSymbol(str);result=parseSexpr(str);node=result[0];str=result[1];tag=result[2];symbol=getSymbol(str);if(symbol.ttype==INFIX){str=strim(str,symbol.input.length);result=parseSexpr(str);if(result[0]===null){result[0]=createMmlNode("mo",document.createTextNode("\u25A1"))}str=result[1];tag=result[2];if(symbol.input=="_"||symbol.input=="^"){sym2=getSymbol(str);tag=null;underover=((sym1.ttype==UNDEROVER)||(node.ttype==UNDEROVER));if(symbol.input=="_"&&sym2.input=="^"){str=strim(str,sym2.input.length);var res2=parseSexpr(str);str=res2[1];tag=res2[2];node=createMmlNode((underover?"munderover":"msubsup"),node);node.appendChild(result[0]);node.appendChild(res2[0])}else{if(symbol.input=="_"){node=createMmlNode((underover?"munder":"msub"),node);node.appendChild(result[0])}else{node=createMmlNode((underover?"mover":"msup"),node);node.appendChild(result[0])}}node=createMmlNode("mrow",node)}else{node=createMmlNode(symbol.tag,node);if(symbol.input=="\\atop"||symbol.input=="\\choose"){node.setAttribute("linethickness","0ex")}node.appendChild(result[0]);if(symbol.input=="\\choose"){node=createMmlNode("mfenced",node)}}}return[node,str,tag]}function parseExpr(str,rightbracket,matrix){var symbol,node,result,i,tag,newFrag=document.createDocumentFragment();do{str=$.trim(str);result=parseIexpr(str);node=result[0];str=result[1];tag=result[2];symbol=getSymbol(str);if(node){if((tag=="mn"||tag=="mi")&&symbol!==null&&typeof symbol.func=="boolean"&&symbol.func){var space=createMmlNode("mspace");space.setAttribute("width","0.167em");node=createMmlNode("mrow",node);node.appendChild(space)}newFrag.appendChild(node)}}while((symbol.ttype!=RIGHTBRACKET)&&symbol!==null&&symbol.output!=="");tag=null;if(symbol.ttype==RIGHTBRACKET){if(symbol.input=="\\right"){str=strim(str,symbol.input.length);symbol=getSymbol(str);if(symbol!==null&&symbol.input=="."){symbol.invisible=true}if(symbol!==null){tag=symbol.rtag}}if(symbol!==null){str=strim(str,symbol.input.length)}var len=newFrag.childNodes.length;if(matrix&&len>0&&newFrag.childNodes[len-1].nodeName=="mrow"&&len>1&&newFrag.childNodes[len-2].nodeName=="mo"&&newFrag.childNodes[len-2].firstChild.nodeValue=="&"){var pos=[];var m=newFrag.childNodes.length;for(i=0;matrix&&i<m;i=i+2){pos[i]=[];node=newFrag.childNodes[i];for(var j=0;j<node.childNodes.length;j++){if(node.childNodes[j].firstChild&&node.childNodes[j].firstChild.nodeValue=="&"){pos[i][pos[i].length]=j}}}var row,frag,n,k,table=document.createDocumentFragment();for(i=0;i<m;i=i+2){row=document.createDocumentFragment();frag=document.createDocumentFragment();node=newFrag.firstChild;n=node.childNodes.length;k=0;for(j=0;j<n;j++){if(typeof pos[i][k]!="undefined"&&j==pos[i][k]){node.removeChild(node.firstChild);row.appendChild(createMmlNode("mtd",frag));k++}else{frag.appendChild(node.firstChild)}}row.appendChild(createMmlNode("mtd",frag));if(newFrag.childNodes.length>2){newFrag.removeChild(newFrag.firstChild);newFrag.removeChild(newFrag.firstChild)}table.appendChild(createMmlNode("mtr",row))}return[table,str]}if(typeof symbol.invisible!="boolean"||!symbol.invisible){node=createMmlNode("mo",document.createTextNode(symbol.output));newFrag.appendChild(node)}}return[newFrag,str,tag]}function createMmlNode(t,frag){var node=document.createElementNS("http://www.w3.org/1998/Math/MathML",t);if(frag){$(node).append(frag)}return node}var SVG,canvas;var collection=[];function createSVGElement(elType){return document.createElementNS("http://www.w3.org/2000/svg",elType)}function getSVGElement(id,el){var res={node:null,newEl:false};if(id){id=SVG.id+"_"+id;res.node=$("#"+id)[0]}if(!res.node){res.node=createSVGElement(el);if(id){res.node.id=id}res.newEl=true}return res}function openGroup(id,clear){var newEl=getSVGElement(id,"g");appendSVG(newEl);canvas=$("#"+SVG.id+"_"+id)[0];if(clear){$(canvas).empty()}}function closeGroup(){canvas=$("#"+SVG.id+"_Canvas")[0]}function appendSVG(elmt){if(elmt.newEl){$(canvas).append(elmt.node)}}function addButton(parent,text,title,func,id){var node=createElementXHTML("span");node.className="svgButton";node.title=title;node.onclick=func;if(id){node.id=id}$(node).append(text);$(node).css({paddingRight:"0.5em",paddingLeft:"0.5em",fontSize:"1em",fontFamily:"monospace",background:"blue",color:"yellow",cursor:"pointer"});$(node).mouseover(function(){$(this).css({background:"yellow",color:"blue"})});$(node).mouseout(function(){$(this).css({background:"blue",color:"yellow"})});$(parent).append(node);return parent}function pictureAttributes(){this.id=null;this.stroke="blue";this.strokewidth=1;this.strokeopacity=1;this.strokedasharray="none";this.fill="none";this.fillopacity=1;this.fixed=false;this.fontstyle="normal";this.fontfamily="serif";this.fontweight="normal";this.fontsize=12;this.fontstroke="none";this.fontstrokewidth=1;this.fontstrokeopacity=1;this.fontstrokedasharray="none";this.fontfill="black";this.fontfillopacity=1;this.sector=false;this.largearc=0;this.marker="o";this.orient="auto";this.size=8;this.units="userSpaceOnUse";this.markerstroke="blue";this.markerstrokewidth=1;this.markerstrokeopacity=1;this.markerstrokedasharray="none";this.markerfill="none";this.markerfillopacity=1;this.sweep=0;this.rx=0;this.ry=0;this.closed=false;this.curve="";this.direction=[1,0];this.ticklabels="";this.pos="";this.points=200;this.backgroundcolor="none";this.backgroundopacity=1}function pictureObject(){this.id=null;this.src="";this.width=320;this.height=null;this.factor=1;this.xmin=-5;this.xmax=5;this.ymin=null;this.ymax=null;this.xunitlength=null;this.yunitlength=null;this.origin=[0,0];this.mouse=[null,null];this.coords="cartesian";this.drag=null;this.pan=true;this.locked=false;this.attr=new pictureAttributes()}function drawPicture(){$(canvas).empty();$("#"+SVG.id+" .svgMarker").remove();SVG.attr=new pictureAttributes();try{this.code=function(){with(Math){eval(SVG.src)}}();this.code=null}catch(err){var errstr;if(typeof err=="object"){errstr=err.name+" "+err.message+" "+err.number+" "+err.description}else{errstr=err}alert(errstr+"\n"+SVG.src)}collection[SVG.id]=SVG}function setOptions(atr){for(var i in atr){SVG.attr[i]=atr[i]}}function getOptions(attr,options,prefix){var pref=prefix||"";if(typeof attr=="string"){return(options[pref+attr]==undefined?SVG.attr[pref+attr]:options[pref+attr])}else{var i,newAttr={},len=attr.length,item;for(i=0;i<len;i++){item=attr[i];newAttr[item]=options[pref+item]==undefined?SVG.attr[pref+item]:options[pref+item]}return newAttr}}function setAction(evt,fn,id){if(!$.isFunction(fn)){return}var node=id?$("#"+SVG.id+"_"+id):$("#"+SVG.id);$(node).bind(evt,fn)}function getAngle(p){p=p||[0,0];var res=Math.atan2(SVG.mouse[1]-p[1],SVG.mouse[0]-p[0]);res=(res<0)?res+2*Math.PI:res;return res}function getDistance(p){p=p||[0,0];return Math.sqrt(Math.pow(SVG.mouse[0]-p[0],2)+Math.pow(SVG.mouse[1]-p[1],2))}function updateButton(){var obj=$("#SVGtoolbar #SVGupdateButton");if(obj.text()=="Edit"){obj.text("Update");obj.attr("title","Update picture");$("#SVGsrc").val(SVG.src).css("display","block")}else{SVG.src=$("#SVGsrc").val();drawPicture()}}function closeEditor(){$("#SVGtoolbar").slideUp();$("#SVGsrc").val("");SVG.locked=false}function switchTo(evt){var name=evt.currentTarget.id;if(SVG.id==name||SVG.locked){return false}SVG=collection[name];canvas=$("#"+SVG.id+"_Canvas")[0];return false}function onWheel(evt){if(SVG.locked){return false}evt=evt||window.event;var factor=1;evt.preventDefault();evt.stopPropagation();if(evt.wheelDelta){factor=(evt.wheelDelta>0)?0.8:1.25}else{if(evt.detail){factor=(evt.detail<0)?0.8:1.25}}if(evt.altKey){resize(factor)}else{zoom(factor)}return false}function onClick(evt){if(SVG.locked){return false}if(evt.button===0){if(evt.shiftKey){$("#SVGtoolbar #SVGupdateButton").text("Update");$("#SVGsrc").val(SVG.src);$("#SVGtoolbar").css({top:evt.pageY,left:evt.pageX}).slideDown();SVG.locked=true;evt.stopImmediatePropagation()}else{if(SVG.pan){SVG.drag=[evt.clientX,evt.clientY];document.body.style.cursor="move"}}}return false}function onDrop(evt){if(SVG.drag==null){return false}document.body.style.cursor="default";var xlen=(SVG.drag[0]-evt.clientX)/SVG.xunitlength;var ylen=(-SVG.drag[1]+evt.clientY)/SVG.yunitlength;SVG.drag=null;if(xlen!=0||ylen!=0){setScales([SVG.xmin+xlen,SVG.xmax+xlen,SVG.ymin+ylen,SVG.ymax+ylen])}return false}function setScales(scales){if(scales){SVG.xmin=scales[0];SVG.xmax=scales[1];SVG.ymin=scales[2];SVG.ymax=scales[3]}SVG.xunitlength=SVG.width/(SVG.xmax-SVG.xmin);SVG.yunitlength=SVG.height/(SVG.ymax-SVG.ymin);SVG.origin=[-SVG.xmin*SVG.xunitlength,-SVG.ymin*SVG.yunitlength];drawPicture()}function getScales(scales){scales=scales||[];var res=[null,null,null,null,0];if(scales.length==0){res[0]=SVG.xmin;res[1]=SVG.xmax}if(scales.length>1){if(typeof scales[0]=="number"&&typeof scales[1]=="number"&&scales[1]>scales[0]){res[0]=scales[0];res[1]=scales[1];res[4]=4}else{res[0]=SVG.xmin;res[1]=SVG.xmax}}if(scales.length==4){if(typeof scales[2]=="number"&&typeof scales[3]=="number"&&scales[3]>scales[2]){res[2]=scales[2];res[3]=scales[3];res[4]+=8}}return res}function resize(factor){SVG.factor=(SVG.factor*factor).toFixed(3);SVG.width/=factor;SVG.height/=factor;var picture=$("#"+SVG.id);picture.attr("width",SVG.width);picture.attr("height",SVG.height);var parent=picture[0].parentNode;if(parent.nodeName=="DIV"){parent.style.width=SVG.width+"px";parent.style.height=SVG.height+"px"}var node=$("#"+SVG.id+"ClipPath")[0].firstChild;$(node).attr("d","M0,0 "+SVG.width+",0 "+SVG.width+","+SVG.height+" 0,"+SVG.height);setScales()}function zoom(factor,center){var px,py;if(center){px=(SVG.xmax+SVG.xmin)*0.5;py=(SVG.ymax+SVG.ymin)*0.5}else{px=SVG.mouse[0];py=SVG.mouse[1]}SVG.factor=(SVG.factor*factor).toFixed(3);var dx=(SVG.xmax-SVG.xmin)*factor;var dy=(SVG.ymax-SVG.ymin)*factor;var xmin=(1-factor)*px+factor*SVG.xmin;var ymin=(1-factor)*py+factor*SVG.ymin;setScales([xmin,xmin+dx,ymin,ymin+dy])}function updateCartesianCoord(){if(!SVG.locked){$("#"+SVG.id+"_Coords").text("("+SVG.mouse[0].toFixed(2)+", "+SVG.mouse[1].toFixed(2)+")")}return false}function updatePolarCoord(){if(!SVG.locked){$("#"+SVG.id+"_Coords").text("("+getDistance().toFixed(2)+", "+getAngle().toFixed(2)+")")}return false}function updatePosition(evt){var off=$(evt.currentTarget.parentNode).offset();SVG.mouse[0]=(evt.pageX-off.left-SVG.origin[0])/SVG.xunitlength;SVG.mouse[1]=(SVG.height-SVG.origin[1]-evt.pageY+off.top)/SVG.yunitlength;return false}function removeCoord(){$("#"+SVG.id+"_Coords").text("");return false}function tracker(pos,options){options=options||{};var coords=options.coords||SVG.coords;var func=(coords=="polar")?updatePolarCoord:updateCartesianCoord;options.id="Coords";options.fixed=true;text(pos,"",options);setAction("mousemove",func);setAction("mouseout",removeCoord)}function exportSVG(){var svg="<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n";svg+=$("#"+SVG.id).parent().html();svg=svg.replace(/ /g,"");svg=svg.replace(/><(?!\/)/g,">\n<");$("#SVGtoolbar #SVGupdateButton").text("Edit").attr("title","Edit script");$("#SVGsrc").val(svg).css("display","block")}function toSVG(p){var x=p[0]*SVG.xunitlength+SVG.origin[0];var y=SVG.height-p[1]*SVG.yunitlength-SVG.origin[1];return[x,y]}function toSVGPair(p){var q=toSVG(p);return q[0]+" "+q[1]}function setStrokeAndFill(node,options,prefix){var attributes=["stroke","strokewidth","strokedasharray","strokeopacity","fill","fillopacity"];var attr=getOptions(attributes,options,prefix);var elem=$(node);elem.attr("stroke",attr.stroke);elem.attr("stroke-width",attr.strokewidth/SVG.factor);elem.attr("stroke-dasharray",attr.strokedasharray);elem.attr("stroke-opacity",attr.strokeopacity);elem.attr("fill",attr.fill);elem.attr("fill-opacity",attr.fillopacity)}function button(p,q,txt,action,options){options=options||{};options.id=(options.id||Math.randomString(8));rect(p,q,options);setAction("click",action,options.id);options.fill=null;options.fillopacity=1;options.id+="_t";text([(p[0]+q[0])*0.5,(p[1]+q[1])*0.5],txt,options);setAction("click",action,options.id)}function setMarkers(obj,options){var markerChars="o*sSx+<>|";var attributes=["marker","size","units","orient","markerstroke","markerstrokewidth","markerstrokeopacity"];var attr=getOptions(attributes,options);var node,node2,i,id,pos=["marker-start","marker-mid","marker-end"];var lim=attr.marker.length;for(i=0;i<lim;i++){var type=attr.marker.charAt(i);if(type=="-"||markerChars.indexOf(type)<0){continue}id=(options.id||Math.randomString(8))+"Marker_"+markerChars.indexOf(type);node=$("#"+SVG.id+"_"+id);if(node.length===0){node=$(getSVGElement(id,"marker").node);node.attr("class","svgMarker");node.attr("viewBox","0 0 10 10");node.attr("refX",5);node.attr("refY",5);node.attr("orient",attr.orient);node.attr("markerUnits",attr.units);switch(type){case"*":case"o":node2=$(createSVGElement("circle"));node2.attr("cx",5);node2.attr("cy",5);node2.attr("r",4);break;case">":node2=$(createSVGElement("path"));node2.attr("d","M0 0 L10 5 L0 10 z");node.attr("refX",10);break;case"<":node2=$(createSVGElement("path"));node2.attr("d","M10 0 L10 10 L0 5 z");node.attr("refX",0);break;case"x":node2=$(createSVGElement("path"));node2.attr("d","M0 0 L10 10 M0 10 L10 0");break;case"+":node2=$(createSVGElement("path"));node2.attr("d","M5 0 L5 10 M0 5 L10 5");break;case"|":node2=$(createSVGElement("path"));node2.attr("d","M5 0 L5 10");break;case"S":case"s":node2=$(createSVGElement("rect"));node2.attr("x",0);node2.attr("y",0);node2.attr("width",10);node2.attr("height",10)}setStrokeAndFill(node2,options,"marker");node2.attr("stroke-width",attr.markerstrokewidth);if("*<>S".indexOf(type)>-1){node2.attr("fill",attr.markerstroke);node2.attr("fill-opacity",attr.markerstrokeopacity)}node.append(node2);$("#"+SVG.id+"_Defs").append(node)}node.attr("markerWidth",attr.size/SVG.factor);node.attr("markerHeight",attr.size/SVG.factor);$(obj).attr(pos[i],"url(#"+SVG.id+"_"+id+")")}}function setLabels(p,options){var i,point=[0,0],pos;var label=(typeof options.label=="string")?[options.label]:options.label;var labelpos=getOptions("pos",options);labelpos=(typeof labelpos=="string")?[labelpos]:labelpos;var poslen=labelpos.length;var size=options.size||SVG.attr.size;var dx=(0.5*size/SVG.xunitlength)/SVG.factor;var dy=(0.5*size/SVG.yunitlength)/SVG.factor;for(i=0;i<label.length;i++){options.isLabel="_label"+i;point[0]=p[i][0];point[1]=p[i][1];pos=(poslen>i)?labelpos[i].toUpperCase():pos;if(/E/.test(pos)){point[0]+=dx}if(/W/.test(pos)){point[0]-=dx}if(/N/.test(pos)){point[1]+=dy}if(/S/.test(pos)){point[1]-=dy}options.pos=pos;text(point,label[i],options)}}function line(p,q,options){options=options||{};options.closed=false;options.curve="";path([p,q],options)}function dot(p,options){options=options||{};var direction=getOptions("direction",options);var q=[p[0]+direction[0]/SVG.xunitlength,p[1]+direction[1]/SVG.yunitlength];var st="M"+toSVGPair(p)+" "+toSVGPair(q);var elmt=getSVGElement(options.id,"path");var elem=$(elmt.node);elem.attr("d",st);elem.attr("stroke","none");setMarkers(elem,options);appendSVG(elmt);if(options.label){setLabels([p],options)}}function path(list,options,append){options=options||{};var i,elmt=getSVGElement(options.id,"path");var attr=getOptions(["curve","closed"],options);var len=list.length;if(len>0){var node=$(elmt.node);var st=(append&&!elmt.newEl)?elmt.node.getAttribute("d"):"";st+="M"+toSVGPair(list[0])+" "+attr.curve;for(i=1;i<len;i++){st+=toSVGPair(list[i])+" "}if(attr.closed){st+="Z"}node.attr("d",st);setStrokeAndFill(node,options);if(options.marker){setMarkers(node,options)}appendSVG(elmt);if(options.label){setLabels(list,options)}}}function rotate(id,angle,options){if(!id||!angle){return}var node=$("#"+SVG.id+"_"+id)[0];if(node){options=options||{};var center=options.center?toSVG(options.center):SVG.origin;angle=-angle*180/Math.PI;var transform=node.getAttribute("transform")||"";transform="rotate("+angle+" "+center+") "+(options.replace?"":transform);$(node).attr("transform",transform)}}function translate(id,delta,options){if(!id||!delta){return}var node=$("#"+SVG.id+"_"+id)[0];if(node){options=options||{};delta=toSVG(delta);var transform=node.getAttribute("transform")||"";transform="translate("+(delta[0]-SVG.origin[0])+" "+(SVG.origin[1]+delta[1]-SVG.height)+") "+(options.replace?"":transform);$(node).attr("transform",transform)}}function curve(list,options){options=options||{};options.curve=options.curve||"T";path(list,options)}function circle(center,radius,options){ellipse(center,radius,radius,options)}function loop(p,options){options=options||{};var d=options.direction||[1,0];options.curve="C";options.closed=false;path([p,[p[0]+d[0],p[1]+d[1]],[p[0]-d[1],p[1]+d[0]],p],options)}function arc(options){options=options||{};var start=options.start;var end=options.end;var center=options.center;var startangle=options.startangle;var endangle=options.endangle;var st="M",elmt=getSVGElement(options.id,"path");var attr=getOptions(["largearc","sweep","closed","sector"],options);var radius=options.radius;if(center!=null&&startangle!=null&&endangle!=null&&radius!=null){start=[radius*Math.cos(startangle)+center[0],radius*Math.sin(startangle)+center[1]];end=[radius*Math.cos(endangle)+center[0],radius*Math.sin(endangle)+center[1]]}if(start==null||end==null){return}if(!radius){var v=[end[0]-start[0],end[1]-start[1]];radius=Math.sqrt(v[0]*v[0]+v[1]*v[1])}if(attr.sector){st+=toSVGPair(center)+" "}st+=toSVGPair(start)+" A"+radius*SVG.xunitlength+","+radius*SVG.yunitlength+" 0 "+attr.largearc+","+attr.sweep+" "+toSVGPair(end);if(attr.sector||attr.closed){st+=" z"}var node=$(elmt.node);node.attr("d",st);setStrokeAndFill(node,options);if(options.marker){setMarkers(node,options)}appendSVG(elmt);if(options.label){setLabels([start,end],options)}}function sector(options){if(!options.center||!options.startangle||!options.endangle||!options.radius){return}options.sector=true;arc(options)}function ellipse(center,rx,ry,options){options=options||{};var elmt=getSVGElement(options.id,"ellipse");center=toSVG(center);var node=$(elmt.node);node.attr("cx",center[0]);node.attr("cy",center[1]);node.attr("rx",rx*SVG.xunitlength);node.attr("ry",ry*SVG.yunitlength);setStrokeAndFill(node,options);appendSVG(elmt)}function polygon(list,options){options=options||{};options.closed=true;path(list,options)}function rect(p,q,options){options=options||{};var elmt=getSVGElement(options.id,"rect");var attr=getOptions(["rx","ry"],options);var node=$(elmt.node);node.attr("x",toSVG(p)[0]);node.attr("y",toSVG(q)[1]);node.attr("width",(q[0]-p[0])*SVG.xunitlength);node.attr("height",(q[1]-p[1])*SVG.yunitlength);node.attr("rx",attr.rx*SVG.xunitlength);node.attr("ry",attr.ry*SVG.yunitlength);setStrokeAndFill(node,options);appendSVG(elmt)}function text(p,st,options){options=options||{};var id=options.id;var attr=getOptions(["fontstyle","fontfamily","fontweight","fontfill","fontsize","fixed","pos"],options);if(id&&options.isLabel){id+=options.isLabel}var pos=attr.pos.toUpperCase();if(!attr.fixed){attr.fontsize/=SVG.factor}var elem,node,dx,dy,latex=false,str=$.trim(st.toString()),q=toSVG(p);if(str.charAt(0)=="$"){str=str.substr(1,str.length-2);latex=true}if(latex){if(p[0]>SVG.xmax||p[0]<SVG.xmin||p[1]>SVG.ymax||p[1]<SVG.ymin){return}node=createElementXHTML("div");node.style.position="absolute";node.style.left="-1000px";node.style.top="-1000px";$("body").append(node);var math=MSVG.parseMath(str,true,attr.fontsize+"px",attr.fontfill);var mathNode=$(node);mathNode.append($(math).clone());dx=-node.offsetWidth/2;dy=-node.offsetHeight/2;if(/N/.test(pos)){dy=-node.offsetHeight}if(/S/.test(pos)){dy=0}if(/E/.test(pos)){dx=0}if(/W/.test(pos)){dx=-node.offsetWidth}var width=mathNode.width(),height=mathNode.height();mathNode.remove();q[0]+=dx;q[1]+=dy;var elmt=getSVGElement(id,"foreignObject");elem=$(elmt.node);elem.empty().append(math);elem.attr("width",width);elem.attr("height",height)}else{var baseline="middle",textanchor="middle";if(/E/.test(pos)){textanchor="start"}if(/W/.test(pos)){textanchor="end"}if(/N/.test(pos)){baseline="text-after-edge"}if(/S/.test(pos)){baseline="text-before-edge"}var elmt=getSVGElement(id,"text");elem=$(elmt.node);elem.empty().text(str);elem.attr("font-style",attr.fontstyle);elem.attr("font-family",attr.fontfamily);elem.attr("font-weight",attr.fontweight);elem.attr("font-size",attr.fontsize);elem.attr("text-anchor",textanchor);elem.attr("dominant-baseline",baseline);setStrokeAndFill(elem,options,"font")}elem.attr("x",q[0]);elem.attr("y",q[1]);appendSVG(elmt)}function image(url,options){options=options||{};var elmt=getSVGElement(options.id,"image");var elem=$(elmt.node);var height=options.height?options.height/SVG.factor:SVG.height;var width=options.width?options.width/SVG.factor:SVG.width;var origin=toSVG(options.origin||[SVG.xmin,SVG.ymin]);var pos=(options.pos||"").toUpperCase();var x=origin[0]-width*0.5;var y=origin[1]-height*0.5;if(/N/.test(pos)){y-=height*0.5}if(/S/.test(pos)){y+=height*0.5}if(/E/.test(pos)){x+=width*0.5}if(/W/.test(pos)){x-=width*0.5}elem.attr("x",x);elem.attr("y",y);elem.attr("width",width);elem.attr("height",height);elem.attr("preserveAspectRatio","none");elmt.node.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",url);appendSVG(elmt)}function grid(options){options=options||{};var dx,dy,x,y,k;var orig=options.origin||[0,0];var id=options.id||"Grid";options.stroke=options.stroke||"grey";options.strokewidth=(options.strokewidth||SVG.attr.strokewidth*0.5);var coords=options.coords||SVG.coords;var lim=getScales(options.scales);openGroup(id,true);lim[2]=(typeof lim[2]=="number")?lim[2]:SVG.ymin;lim[3]=(typeof lim[3]=="number")?lim[3]:SVG.ymax;if(coords=="polar"){dx=options.dx||1;dy=options.dy||3;var limit=Math.max(Math.abs(lim[0]),Math.abs(lim[1]),Math.abs(lim[2]),Math.abs(lim[3]));for(x=dx;x<limit;x+=dx){circle(orig,x,options)}if(dy>1){for(y=1;y<dy;y++){k=Math.tan(y*Math.PI/(2*dy));line([lim[0],(lim[0]-orig[0])*k+orig[1]],[SVG.xmax,(lim[1]-orig[0])*k+orig[1]],options);line([lim[0],-(lim[0]-orig[0])*k+orig[1]],[SVG.xmax,-(lim[1]-orig[0])*k+orig[1]],options)}}}else{dx=options.dx||1;dy=options.dy||dx;for(x=orig[0];x<SVG.xmax;x+=dx){if(x>lim[0]&&x<lim[1]){line([x,lim[2]],[x,lim[3]],options)}}for(x=orig[0]-dx;x>SVG.xmin;x-=dx){if(x>lim[0]&&x<lim[1]){line([x,lim[2]],[x,lim[3]],options)}}for(y=orig[1];y<SVG.ymax;y+=dy){if(y>lim[2]&&y<lim[3]){line([lim[0],y],[lim[1],y],options)}}for(y=orig[1]-dy;y>SVG.ymin;y-=dy){if(y>lim[2]&&y<lim[3]){line([lim[0],y],[lim[1],y],options)}}}closeGroup()}function axes(options){options=options||{};options.marker="-|"+(options.marker?options.marker.charAt(0):"-");var i,x,y,start,stop,label;var dx=options.dx||1;var dy=options.dy||dx;var id=options.id||"Axes";var fontsize=getOptions("fontsize",options);var coords=options.coords||SVG.coords;var orig=(coords=="polar")?[0,0]:(options.origin||[0,0]);var ddx=options.decx||Math.max(0,-Math.floor(Math.log(dx)/Math.log(10)));var ddy=options.decy||Math.max(0,-Math.floor(Math.log(dy)/Math.log(10)));options.stroke=options.stroke||"black";options.strokewidth=(options.strokewidth||SVG.attr.strokewidth*0.5);options.markerstroke=options.stroke;options.markerstrokewidth=options.strokewidth;openGroup(id,true);var lim=getScales(options.scales);lim[2]=lim[2]||SVG.ymin;lim[3]=lim[3]||SVG.ymax;if($.isArray(options.xticks)){var xticks=options.xticks.sort();var list2=[[lim[0],orig[1]]];label=[""];for(i=0;i<xticks.length;i++){list2.push([xticks[i],orig[1]]);label.push(String(xticks[i].toFixed(ddx)))}list2.push([lim[1],orig[1]]);label.push("")}else{var list1=[],label1=[];var list2=[],label2=[];start=SVG.xmin+0.25*dx;stop=SVG.xmax-0.25*dx;i=1;var cand,leftExit=0,rightExit=0;while(leftExit*rightExit==0){cand=orig[0]+i*dx;if(cand>start){if(cand<stop){list1.push([cand,orig[1]]);label1.push(String(cand.toFixed(ddx)))}else{rightExit=1}}cand=orig[0]-i*dx;if(cand<stop){if(cand>start){list2.push([cand,orig[1]]);label=(coords=="polar")?"":cand.toFixed(ddx);label2.push(String(label))}else{leftExit=1}}i++}list1.push([lim[1],orig[1]]);label1.push("");list2.push([lim[0],orig[1]]);label2.push("");list2.reverse();list2=list2.concat(list1);label2.reverse();label=label2.concat(label1)}if(options.ticklabels!=false){options.label=label;options.pos="S"}path(list2,options);if($.isArray(options.yticks)){var yticks=options.yticks.sort();var list2=[[orig[0],lim[2]]];label=[""];for(i=0;i<yticks.length;i++){list2.push([orig[0],yticks[i]]);label.push(String(yticks[i].toFixed(ddy)))}list2.push([orig[0],lim[3]]);label.push("")}else{list1=[],label1=[];list2=[];label2=[];start=SVG.ymin+0.25*dy;stop=SVG.ymax-0.25*dy;i=1;leftExit=0;rightExit=0;while(leftExit*rightExit==0){cand=orig[1]+i*dy;if(cand>start){if(cand<stop){list1.push([orig[0],cand]);label1.push(String(cand.toFixed(ddy)))}else{rightExit=1}}cand=orig[1]-i*dy;if(cand<stop){if(cand>start){list2.push([orig[0],cand]);label=(coords=="polar")?"":cand.toFixed(ddy);label2.push(String(label))}else{leftExit=1}}i++}list1.push([orig[0],lim[3]]);label1.push("");list2.push([orig[0],lim[2]]);label2.push("");list2.reverse();list2=list2.concat(list1);label2.reverse();label=label2.concat(label1)}if(options.ticklabels!=false){options.label=label;options.pos="W"}options.stroke=options.markerstroke;path(list2,options);closeGroup()}function list(fun,tmin,tmax,options){var inc=(tmax-tmin)/getOptions("points",options);if(inc<=0||fun.length==0){return}var t,pth,g=[],xt,yt;for(t=1;t>=0;t--){if($.isFunction(fun[t])){g[t]=fun[t]}else{if(typeof fun[t]=="string"){with(Math){eval("g["+t+"] = function(x){return "+fun[t]+"}")}}else{return}}}if(g.length<2){return}pth=[];for(t=tmin;t<=tmax;t+=inc){xt=g[0](t);yt=g[1](t);if(isFinite(xt)&&isFinite(yt)){pth[pth.length]=[xt,yt]}}return pth}function plot(fun,options){options=options||{};var append,pth,steps=options.steps||[];var n_steps=steps.length;options.closed=false;options.curve="";var xmin=(options.min==null)?SVG.xmin:Math.max(SVG.xmin,options.min);var xmax=(options.max==null)?SVG.xmax:Math.min(SVG.xmax,options.max);if(n_steps===0){pth=list(["x",fun],xmin,xmax,options);if(pth){path(pth,options)}}else{options.id=options.id||Math.randomString(6);steps.sort();var steps_a=[];steps_a.push(xmin);for(i=0;i<n_steps;i++){if(steps[i]>xmin&&steps[i]<xmax){steps_a.push(steps[i])}}steps_a.push(xmax);n_steps=steps_a.length-1;for(i=0;i<n_steps;i++){xmax=steps_a[i+1];xmin=steps_a[i];pth=list(["x",fun],xmin,xmax,options);append=(i>0);if(pth){path(pth,options,append)}}}}function area(fun1,fun2,options){options=options||{};options.curve="";options.closed=true;var xmin=(options.min==null)?SVG.xmin:options.min;var xmax=(options.max==null)?SVG.xmax:options.max;var pth1=list(["x",fun1],xmin,xmax,options);var pth2=list(["x",fun2],xmin,xmax,options);if(pth1&&pth2){pth1=pth1.concat(pth2.reverse());path(pth1,options)}}function polarPlot(fun,options){var g1,g2;if(typeof fun=="string"){with(Math){eval("g1 = function(x){return ("+fun+")*cos(x)}");eval("g2 = function(x){return ("+fun+")*sin(x)}")}}else{if($.isFunction(fun)){with(Math){eval("g1 = function(x){return fun(x)*cos(x)}");eval("g2 = function(x){return fun(x)*sin(x)}")}}}parametricPlot(g1,g2,options)}function parametricPlot(fun1,fun2,options){options=options||{};options.closed=false;options.curve="";var xmin=(options.min==null)?0:options.min;var xmax=(options.max==null)?2*Math.PI:options.max;var pth=list([fun1,fun2],xmin,xmax,options);if(pth){path(pth,options)}}function slopeField(fun,options){options=options||{};var g=fun;if(typeof fun=="string"){with(Math){eval("g = function(x,y){return "+fun+"}")}}var gxy,x,y,u,v,dz;var dx=(options.dx==null)?1:options.dx;var dy=(options.dy==null)?1:options.dy;dz=Math.sqrt(dx*dx+dy*dy)/6;var xmin=Math.ceil(SVG.xmin/dx);var ymin=Math.ceil(SVG.ymin/dy);for(x=xmin;x<=SVG.xmax;x+=dx){for(y=ymin;y<=SVG.ymax;y+=dy){gxy=g(x,y);if(!isNaN(gxy)){if(Math.abs(gxy)=="Infinity"){u=0;v=dz}else{u=dz/Math.sqrt(1+gxy*gxy);v=gxy*u}line([x-u,y-v],[x+u,y+v],options)}}}}return{showFormulaOnMouseOver:false,latexImages:false,latexConverter:"http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=",mathColor:"",mathFontSize:"",mathFontFamily:"",define:function(oldstr,newstr){if(MSVG.latexImages){return}if((typeof oldstr)=="string"){oldstr=[oldstr];newstr=[newstr]}var i,len=oldstr.length;if(len!=newstr.length){return}for(i=0;i<len;i++){symbols=symbols.concat([{input:"\\"+oldstr[i],tag:"mo",output:newstr[i],ttype:DEFINITION}])}refreshSymbols()},parseMath:function(str,displaystyle,size,color){if(str===null){return null}var frag=parseExpr(str.replace(/^\s+/g,""),false,false)[0];var node=createMmlNode("mstyle",frag);if(displaystyle){$(node).attr({displaystyle:"true"})}$(node).attr({mathcolor:color||MSVG.mathColor,fontsize:size||MSVG.mathFontSize,fontfamily:MSVG.mathFontFamily});node=createMmlNode("math",node);if(MSVG.showFormulaOnMouseOver){$(node).attr({title:str.replace(/\s+/g," ")})}return node},parseMathExternal:function(str,displaystyle,size,color){if(str===null){return null}var node=createElementXHTML("img");var snip=MSVG.latexConverter+str;$(node).attr({src:snip});if(MSVG.showFormulaOnMouseOver){$(node).attr({title:str.replace(/\s+/g," ")})}return node},generic:function(){if(!$.browser.mozilla){MSVG.latexImages=true}if(MSVG.latexImages){MSVG.parseMath=MSVG.parseMathExternal}else{refreshSymbols()}if(!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")){MSVG.initPictures=MSVG.removePictures}},removePictures:function(obj){var pictures=obj?$(obj):$(".SVGgraph");$(pictures).each(function(){var that=$(this);this.id=null;that.empty();that.css({color:"red",background:"yellow"});that.text("Missing picture: your browser does not support inline SVG");window.setTimeout(function(){that.remove()},10000)})},initPictures:function(obj){var options,scales,qnode,node,node2,status,offline,elem;var pictures=obj?$(obj):$(".SVGgraph");$(pictures).each(function(){var that=$(this);offline=!(this.nodeName=="SPAN");status=0;SVG=new pictureObject();options=$(this).attr("options");that.removeAttr("id");if(options){with(Math){eval("options={"+options+"}")}setOptions(options)}else{options={}}if(options.pan==false){SVG.pan=false}SVG.coords=options.coords||SVG.coords;SVG.src=$.trim($(this).text());that.empty();if(typeof options.width=="number"&&options.width>0){SVG.width=options.width;status+=1}if(typeof options.height=="number"&&options.height>0){SVG.height=options.height;status+=2}var scales=getScales(options.scales);SVG.xmin=scales[0];SVG.xmax=scales[1];SVG.ymin=scales[2];SVG.ymax=scales[3];status+=scales[4];SVG.height=options.height;if(status%4!=0){SVG.width=options.width}if(!SVG.width){SVG.width=1.6*SVG.height}else{if(!SVG.height){SVG.height=0.625*SVG.width}}if(status<8){SVG.ymax=0.5*SVG.height*(SVG.xmax-SVG.xmin)/SVG.width;SVG.ymin=-SVG.ymax}else{if(status<12){SVG.xmax=0.5*SVG.width*(SVG.ymax-SVG.ymin)/SVG.height;SVG.xmin=-SVG.xmax}}if(status==12||status==13){SVG.height=SVG.width*(SVG.ymax-SVG.ymin)/(SVG.xmax-SVG.xmin)}else{if(status==14){SVG.width=SVG.height*(SVG.xmax-SVG.xmin)/(SVG.ymax-SVG.ymin)}}SVG.id=Math.randomString(16);qnode=createSVGElement("svg");elem=$(qnode);qnode.id=SVG.id;elem.attr("xmlns","http://www.w3.org/2000/svg");elem.attr("xmlns:ev","http://www.w3.org/2001/xml-events");elem.attr("xmlns:xlink","http://www.w3.org/1999/xlink");elem.attr("version","1.1");elem.attr("baseProfile","full");if(options.border){elem.attr("style","border:"+options.border)}node=createSVGElement("clipPath");node.id=SVG.id+"ClipPath";node2=createSVGElement("path");$(node).append(node2);elem.attr("clip-path","url(#"+SVG.id+"ClipPath)");node2=createSVGElement("defs");node2.id=SVG.id+"_Defs";$(node2).append(node);$(qnode).append(node2);node=createSVGElement("rect");elem=$(node);elem.attr("x","0");elem.attr("y","0");elem.attr("width","100%");elem.attr("height","100%");elem.attr("fill","none");elem.attr("pointer-events","all");$(qnode).append(node);node2=createSVGElement("g");node2.id=SVG.id+"_Canvas";$(qnode).append(node2);that.append(qnode);this.style.position="relative";if(offline){setAction("mousemove",updatePosition);if(SVG.pan){setAction("mouseup",onDrop)}if(window.addEventListener){var evt=$.browser.mozilla?"DOMMouseScroll":"mousewheel";qnode.addEventListener(evt,onWheel,false)}}setAction("mousedown",onClick);setAction("mouseover",switchTo);canvas=$("#"+SVG.id+"_Canvas")[0];resize(1)});if(pictures.length>0&&$("#SVGtoolbar").length===0){node=createElementXHTML("span");node.id="SVGtoolbar";node.style.position="absolute";node.style.textAlign="left";node.style.zIndex=10;node=addButton(node,"X","Close editor",closeEditor);node=addButton(node,"Update","Update picture",updateButton,"SVGupdateButton");node=addButton(node,"SVG","View SVG code",exportSVG);node=addButton(node,"-","Zoom out",function(){zoom(1.25,true)});node=addButton(node,"+","Zoom in",function(){zoom(0.8,true)});node=addButton(node,"\u2191","Enlarge picture",function(){resize(0.8)});node=addButton(node,"\u2193","Reduce picture",function(){resize(1.25)});$(node).append("<br />");node2=createElementXHTML("textarea");$(node2).attr({id:"SVGsrc",rows:8,cols:60});$(node).append(node2);$(node).hide();$("body").append(node)}}}}(jQuery);
//}}}
/***
!~TiddlyWiki formatters
***/
//{{{
if(!version.extensions.MathSVGPlugin) { //# ensure that the plugin is only installed once
version.extensions.MathSVGPlugin = {installed: true};
MSVG.generic();
config.formatterHelpers.MathSVGHelper = function(w) {
if(MSVG.noMathTag && jQuery.inArray(MSVG.noMathTag,w.tiddler.tags)>-1) return;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch){
var eq = MSVG.parseMath(lookaheadMatch[1],this.displaystyle);
if(this.displaystyle){
var node = createTiddlyElement(w.output,"div");
node.style.textAlign='center';
node.appendChild(eq);
w.output.appendChild(node);
} else {w.output.appendChild(eq);}
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
config.formatters.push( {
name: "clatex",
match: "\\$\\$",
lookaheadRegExp: /\$\$((?:.|\n)*?)\$\$/mg,
displaystyle: true,
handler: config.formatterHelpers.MathSVGHelper
})
config.formatters.push( {
name: "clatex2",
match: "\\\\\\\[",
lookaheadRegExp: /\\\[((?:.|\n)*?)\\\]/mg,
displaystyle: true,
handler: config.formatterHelpers.MathSVGHelper
})
config.formatters.push( {
name: "latex",
match: "\\$",
lookaheadRegExp: /\$((?:.|\n)*?)\$/mg,
displaystyle: false,
handler: config.formatterHelpers.MathSVGHelper
})
config.formatters.push( {
name: "latex2",
match: "\\\\\\\(",
lookaheadRegExp: /\\\(((?:.|\n)*?)\\\)/mg,
displaystyle: false,
handler: config.formatterHelpers.MathSVGHelper
})
config.formatters.push( {
name: "graph",
match: "<div",
lookaheadRegExp: /<div.+SVGgraph.+?>((?:.|\n)*?)<\/div>/mg,
handler: function(w){
if(MSVG.noSvgTag && jQuery.inArray(MSVG.noSvgTag,w.tiddler.tags)>-1) return;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch){
var text = lookaheadMatch[0].replace('<div','<div id="currentGraph"');
jQuery(w.output).append(text);
MSVG.initPictures("#currentGraph");
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
})
config.formatters.push( {
name: "inlineGraph",
match: "<span",
lookaheadRegExp: /<span.+SVGgraph.+?>((?:.|\n)*?)<\/span>/mg,
handler: function(w){
if(MSVG.noSvgTag && jQuery.inArray(MSVG.noSvgTag,w.tiddler.tags)>-1) return;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch){
var text = lookaheadMatch[0].replace('<span','<span id="currentGraph"');
jQuery(w.output).append(text);
MSVG.initPictures("#currentGraph");
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
})
}
//}}}
<html>
<head>
<title>JabRef references</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script type="text/javascript">
<!--
// QuickSearch script for JabRef HTML export
// Version: 3.0
//
// Copyright (c) 2006-2011, Mark Schenk
//
// This software is distributed under a Creative Commons Attribution 3.0 License
// http://creativecommons.org/licenses/by/3.0/
//
// Features:
// - intuitive find-as-you-type searching
// ~ case insensitive
// ~ ignore diacritics (optional)
//
// - search with/without Regular Expressions
// - match BibTeX key
//
// Search settings
var searchAbstract = true; // search in abstract
var searchReview = true; // search in review
var noSquiggles = true; // ignore diacritics when searching
var searchRegExp = false; // enable RegExp searches
if (window.addEventListener) {
window.addEventListener("load",initSearch,false); }
else if (window.attachEvent) {
window.attachEvent("onload", initSearch); }
function initSearch() {
// check for quick search table and searchfield
if (!document.getElementById('qs_table')||!document.getElementById('quicksearch')) { return; }
// load all the rows and sort into arrays
loadTableData();
//find the query field
qsfield = document.getElementById('qs_field');
// previous search term; used for speed optimisation
prevSearch = '';
//find statistics location
stats = document.getElementById('stat');
setStatistics(-1);
// set up preferences
initPreferences();
// shows the searchfield
document.getElementById('quicksearch').style.display = 'block';
document.getElementById('qs_field').onkeyup = quickSearch;
}
function loadTableData() {
// find table and appropriate rows
searchTable = document.getElementById('qs_table');
var allRows = searchTable.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
// split all rows into entryRows and infoRows (e.g. abstract, review, bibtex)
entryRows = new Array(); infoRows = new Array(); absRows = new Array(); revRows = new Array();
// get data from each row
entryRowsData = new Array(); absRowsData = new Array(); revRowsData = new Array();
BibTeXKeys = new Array();
for (var i=0, k=0, j=0; i<allRows.length;i++) {
if (allRows[i].className.match(/entry/)) {
entryRows[j] = allRows[i];
entryRowsData[j] = stripDiacritics(getTextContent(allRows[i]));
allRows[i].id ? BibTeXKeys[j] = allRows[i].id : allRows[i].id = 'autokey_'+j;
j ++;
} else {
infoRows[k++] = allRows[i];
// check for abstract/review
if (allRows[i].className.match(/abstract/)) {
absRows.push(allRows[i]);
absRowsData[j-1] = stripDiacritics(getTextContent(allRows[i]));
} else if (allRows[i].className.match(/review/)) {
revRows.push(allRows[i]);
revRowsData[j-1] = stripDiacritics(getTextContent(allRows[i]));
}
}
}
//number of entries and rows
numEntries = entryRows.length;
numInfo = infoRows.length;
numAbs = absRows.length;
numRev = revRows.length;
}
function quickSearch(){
tInput = qsfield;
if (tInput.value.length == 0) {
showAll();
setStatistics(-1);
qsfield.className = '';
return;
} else {
t = stripDiacritics(tInput.value);
if(!searchRegExp) { t = escapeRegExp(t); }
// only search for valid RegExp
try {
textRegExp = new RegExp(t,"i");
closeAllInfo();
qsfield.className = '';
}
catch(err) {
prevSearch = tInput.value;
qsfield.className = 'invalidsearch';
return;
}
}
// count number of hits
var hits = 0;
// start looping through all entry rows
for (var i = 0; cRow = entryRows[i]; i++){
// only show search the cells if it isn't already hidden OR if the search term is getting shorter, then search all
if(cRow.className.indexOf('noshow')==-1 || tInput.value.length <= prevSearch.length){
var found = false;
if (entryRowsData[i].search(textRegExp) != -1 || BibTeXKeys[i].search(textRegExp) != -1){
found = true;
} else {
if(searchAbstract && absRowsData[i]!=undefined) {
if (absRowsData[i].search(textRegExp) != -1){ found=true; }
}
if(searchReview && revRowsData[i]!=undefined) {
if (revRowsData[i].search(textRegExp) != -1){ found=true; }
}
}
if (found){
cRow.className = 'entry show';
hits++;
} else {
cRow.className = 'entry noshow';
}
}
}
// update statistics
setStatistics(hits)
// set previous search value
prevSearch = tInput.value;
}
// Strip Diacritics from text
// http://stackoverflow.com/questions/990904/javascript-remove-accents-in-strings
// String containing replacement characters for stripping accents
var stripstring =
'AAAAAAACEEEEIIII'+
'DNOOOOO.OUUUUY..'+
'aaaaaaaceeeeiiii'+
'dnooooo.ouuuuy.y'+
'AaAaAaCcCcCcCcDd'+
'DdEeEeEeEeEeGgGg'+
'GgGgHhHhIiIiIiIi'+
'IiIiJjKkkLlLlLlL'+
'lJlNnNnNnnNnOoOo'+
'OoOoRrRrRrSsSsSs'+
'SsTtTtTtUuUuUuUu'+
'UuUuWwYyYZzZzZz.';
function stripDiacritics(str){
if(noSquiggles==false){
return str;
}
var answer='';
for(var i=0;i<str.length;i++){
var ch=str[i];
var chindex=ch.charCodeAt(0)-192; // Index of character code in the strip string
if(chindex>=0 && chindex<stripstring.length){
// Character is within our table, so we can strip the accent...
var outch=stripstring.charAt(chindex);
// ...unless it was shown as a '.'
if(outch!='.')ch=outch;
}
answer+=ch;
}
return answer;
}
// http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex
// NOTE: must escape every \ in the export code because of the JabRef Export...
function escapeRegExp(str) {
return str.replace(/[-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
}
function toggleInfo(articleid,info) {
var entry = document.getElementById(articleid);
var abs = document.getElementById('abs_'+articleid);
var rev = document.getElementById('rev_'+articleid);
var bib = document.getElementById('bib_'+articleid);
if (abs && info == 'abstract') {
abs.className.indexOf('noshow') == -1?abs.className = 'abstract noshow':abs.className = 'abstract show';
} else if (rev && info == 'review') {
rev.className.indexOf('noshow') == -1?rev.className = 'review noshow':rev.className = 'review show';
} else if (bib && info == 'bibtex') {
bib.className.indexOf('noshow') == -1?bib.className = 'bibtex noshow':bib.className = 'bibtex show';
} else {
return;
}
// check if one or the other is available
var revshow; var absshow; var bibshow;
(abs && abs.className.indexOf('noshow') == -1)? absshow = true: absshow = false;
(rev && rev.className.indexOf('noshow') == -1)? revshow = true: revshow = false;
(bib && bib.className.indexOf('noshow') == -1)? bibshow = true: bibshow = false;
// highlight original entry
if(entry) {
if (revshow || absshow || bibshow) {
entry.className = 'entry highlight show';
} else {
entry.className = 'entry show';
}
}
// When there's a combination of abstract/review/bibtex showing, need to add class for correct styling
if(absshow) {
(revshow||bibshow)?abs.className = 'abstract nextshow':abs.className = 'abstract';
}
if (revshow) {
bibshow?rev.className = 'review nextshow': rev.className = 'review';
}
}
function setStatistics (hits) {
if(hits < 0) { hits=numEntries; }
if(stats) { stats.firstChild.data = hits + '/' + numEntries}
}
function getTextContent(node) {
// Function written by Arve Bersvendsen
// http://www.virtuelvis.com
if (node.nodeType == 3) {
return node.nodeValue;
} // text node
if (node.nodeType == 1 && node.className != "infolinks") { // element node
var text = [];
for (var chld = node.firstChild;chld;chld=chld.nextSibling) {
text.push(getTextContent(chld));
}
return text.join("");
} return ""; // some other node, won't contain text nodes.
}
function showAll(){
closeAllInfo();
for (var i = 0; i < numEntries; i++){ entryRows[i].className = 'entry show'; }
}
function closeAllInfo(){
for (var i=0; i < numInfo; i++){
if (infoRows[i].className.indexOf('noshow') ==-1) {
infoRows[i].className = infoRows[i].className + ' noshow';
}
}
}
function clearQS() {
qsfield.value = '';
showAll();
}
function redoQS(){
showAll();
quickSearch(qsfield);
}
function updateSetting(obj){
var option = obj.id;
var checked = obj.value;
switch(option)
{
case "opt_searchAbs":
searchAbstract=!searchAbstract;
redoQS();
break;
case "opt_searchRev":
searchReview=!searchReview;
redoQS();
break;
case "opt_useRegExp":
searchRegExp=!searchRegExp;
redoQS();
break;
case "opt_noAccents":
noSquiggles=!noSquiggles;
loadTableData();
redoQS();
break;
}
}
function initPreferences(){
if(searchAbstract){document.getElementById("opt_searchAbs").checked = true;}
if(searchReview){document.getElementById("opt_searchRev").checked = true;}
if(noSquiggles){document.getElementById("opt_noAccents").checked = true;}
if(searchRegExp){document.getElementById("opt_useRegExp").checked = true;}
if(numAbs==0) {document.getElementById("opt_searchAbs").parentNode.style.display = 'none';}
if(numRev==0) {document.getElementById("opt_searchRev").parentNode.style.display = 'none';}
}
function toggleSettings(){
var togglebutton = document.getElementById('showsettings');
var settings = document.getElementById('settings');
if(settings.className == "hidden"){
settings.className = "show";
togglebutton.innerText = "close settings";
togglebutton.textContent = "close settings";
}else{
settings.className = "hidden";
togglebutton.innerText = "settings...";
togglebutton.textContent = "settings...";
}
}
-->
</script>
<style type="text/css">
body { background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 1.2; padding: 1em; color: #2E2E2E; width: 50em; margin: auto auto; }
form#quicksearch { width: auto; border-style: solid; border-color: gray; border-width: 1px 0px; padding: 0.7em 0.5em; display:none; position:relative; }
span#searchstat {padding-left: 1em;}
div#settings { margin-top:0.7em; /* border-bottom: 1px transparent solid; background-color: #efefef; border: 1px grey solid; */ }
div#settings ul {margin: 0; padding: 0; }
div#settings li {margin: 0; padding: 0 1em 0 0; display: inline; list-style: none; }
div#settings li + li { border-left: 2px #efefef solid; padding-left: 0.5em;}
div#settings input { margin-bottom: 0px;}
div#settings.hidden {display:none;}
#showsettings { border: 1px grey solid; padding: 0 0.5em; float:right; line-height: 1.6em; text-align: right; }
#showsettings:hover { cursor: pointer; }
.invalidsearch { background-color: red; }
input[type="button"] { background-color: #efefef; border: 1px #2E2E2E solid;}
table { border: 1px gray none; width: 100%; empty-cells: show; border-spacing: 0em 0.1em; margin: 1em 0em; }
th, td { border: none; padding: 0.5em; vertical-align: top; text-align: justify; }
td a { color: navy; text-decoration: none; }
td a:hover { text-decoration: underline; }
tr.noshow { display: none;}
tr.highlight td { background-color: #EFEFEF; border-top: 2px #2E2E2E solid; font-weight: bold; }
tr.abstract td, tr.review td, tr.bibtex td { background-color: #EFEFEF; text-align: justify; border-bottom: 2px #2E2E2E solid; }
tr.nextshow td { border-bottom-style: none; }
tr.bibtex pre { width: 100%; overflow: auto; white-space: pre-wrap;}
p.infolinks { margin: 0.3em 0em 0em 0em; padding: 0px; }
@media print {
p.infolinks, #qs_settings, #quicksearch, t.bibtex { display: none !important; }
tr { page-break-inside: avoid; }
}
</style>
</head>
<body>
<form action="" id="quicksearch">
<input type="text" id="qs_field" autocomplete="off" placeholder="Type to search..." /> <input type="button" onclick="clearQS()" value="clear" />
<span id="searchstat">Matching entries: <span id="stat">0</span></span>
<div id="showsettings" onclick="toggleSettings()">settings...</div>
<div id="settings" class="hidden">
<ul>
<li><input type="checkbox" class="search_setting" id="opt_searchAbs" onchange="updateSetting(this)"><label for="opt_searchAbs"> include abstract</label></li>
<li><input type="checkbox" class="search_setting" id="opt_searchRev" onchange="updateSetting(this)"><label for="opt_searchRev"> include review</label></li>
<li><input type="checkbox" class="search_setting" id="opt_useRegExp" onchange="updateSetting(this)"><label for="opt_useRegExp"> use RegExp</label></li>
<li><input type="checkbox" class="search_setting" id="opt_noAccents" onchange="updateSetting(this)"><label for="opt_noAccents"> ignore accents</label></li>
</ul>
</div>
</form>
<table id="qs_table" border="1">
<tbody>
<tr id="Ayyer2014" class="entry">
<td>Ayyer K, Philipp HT, Tate MW, Elser V and Gruner SM (2014), <i>"Real-Space x-ray tomographic reconstruction of randomly oriented objects with sparse data frames"</i>, Opt. Express., Feb, 2014. Vol. 22(3), pp. 2403-2413. OSA.
<p class="infolinks">[<a href="javascript:toggleInfo('Ayyer2014','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('Ayyer2014','bibtex')">BibTeX</a>] [<a href="http://dx.doi.org/10.1364/OE.22.002403" target="_blank">DOI</a>] [<a href="http://www.opticsexpress.org/abstract.cfm?URI=oe-22-3-2403" target="_blank">URL</a>]</p>
</td>
</tr>
<tr id="abs_Ayyer2014" class="abstract noshow">
<td><b>Abstract</b>: Schemes for X-ray imaging single protein molecules using new x-ray sources, like x-ray free electron lasers (XFELs), require processing many frames of data that are obtained by taking temporally short snapshots of identical molecules, each with a random and unknown orientation. Due to the small size of the molecules and short exposure times, average signal levels of much less than 1 photon/pixel/frame are expected, much too low to be processed using standard methods. One approach to process the data is to use statistical methods developed in the EMC algorithm (Loh &x00026; Elser, Phys. Rev. E, 2009) which processes the data set as a whole. In this paper we apply this method to a real-space tomographic reconstruction using sparse frames of data (below 10&x02212;2 photons/pixel/frame) obtained by performing x-ray transmission measurements of a low-contrast, randomly-oriented object. This extends the work by Philipp et al. (Optics Express, 2012) to three dimensions and is one step closer to the single molecule reconstruction problem.</td>
</tr>
<tr id="bib_Ayyer2014" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{Ayyer2014,
author = {Kartik Ayyer and Hugh T. Philipp and Mark W. Tate and Veit Elser and Sol M. Gruner},
title = {Real-Space x-ray tomographic reconstruction of randomly oriented objects with sparse data frames},
journal = {Opt. Express},
publisher = {OSA},
year = {2014},
volume = {22},
number = {3},
pages = {2403--2413},
url = {http://www.opticsexpress.org/abstract.cfm?URI=oe-22-3-2403},
doi = {10.1364/OE.22.002403}
}
</pre></td>
</tr>
<tr id="ayyer2013real" class="entry">
<td>Ayyer K, Philipp HT, Tate MW, Elser V and Gruner SM (2013), <i>"Real-Space x-ray tomographic reconstruction of randomly oriented objects with sparse data frames"</i>, arXiv preprint. Vol. physics.data-an, pp. arXiv:1311.1776.
<p class="infolinks"> [<a href="javascript:toggleInfo('ayyer2013real','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_ayyer2013real" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{ayyer2013real,
author = {Ayyer, Kartik and Philipp, Hugh T and Tate, Mark W and Elser, Veit and Gruner, Sol M},
title = {Real-Space x-ray tomographic reconstruction of randomly oriented objects with sparse data frames},
journal = {arXiv preprint},
year = {2013},
volume = {physics.data-an},
pages = {arXiv:1311.1776}
}
</pre></td>
</tr>
<tr id="green2013calibration" class="entry">
<td>Green KS, Philipp HT, Tate MW, Weiss JT and Gruner SM (2013), <i>"Calibration and post-processing for photon-integrating pixel array detectors"</i>, Journal of Physics: Conference Series. Vol. 425(6), pp. 062009. IOP Publishing.
<p class="infolinks">[<a href="javascript:toggleInfo('green2013calibration','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('green2013calibration','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="abs_green2013calibration" class="abstract noshow">
<td><b>Abstract</b>: We have developed calibration and data processing techniques optimized specifically for photon-integrating pixel array detectors (PADs). Primary effects to be calibrated are pixel gain variation and pixel area variation. Gain variations originate in pixel electronics and may be corrected for via a multiplicative factor. In contrast, area variations result from doping inhomogeneities in the sensor diode, which induce lateral fields that disturb the path of charge carriers as they traverse the diode, resulting in variation in the area mapped to each pixel, depending on the x-ray energy. Methods for measuring both effects are described. Additionally, the single-photon sensitivity used in the gain calibration enables flexible thresholding of events in low-fluence data.</td>
</tr>
<tr id="bib_green2013calibration" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{green2013calibration,
author = {Green, Katherine S and Philipp, Hugh T and Tate, Mark W and Weiss, Joel T and Gruner, Sol M},
title = {Calibration and post-processing for photon-integrating pixel array detectors},
journal = {Journal of Physics: Conference Series},
publisher = {IOP Publishing},
year = {2013},
volume = {425},
number = {6},
pages = {062009}
}
</pre></td>
</tr>
<tr id="Hromalik2013" class="entry">
<td>Hromalik MS, Green KS, Philipp HT, Tate MW and Gruner SM (2013), <i>"The FPGA Pixel Array Detector "</i>, Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment . Vol. 701, pp. 7 - 16.
<p class="infolinks">[<a href="javascript:toggleInfo('Hromalik2013','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('Hromalik2013','bibtex')">BibTeX</a>] [<a href="http://dx.doi.org/10.1016/j.nima.2012.10.024" target="_blank">DOI</a>] [<a href="http://www.sciencedirect.com/science/article/pii/S0168900212011564" target="_blank">URL</a>]</p>
</td>
</tr>
<tr id="abs_Hromalik2013" class="abstract noshow">
<td><b>Abstract</b>: A proposed design for a reconfigurable x-ray Pixel Array Detector (PAD) is described. It operates by integrating a high-end commercial field programmable gate array (FPGA) into a 3-layer device along with a high-resistivity diode detection layer and a custom, application-specific integrated circuit (ASIC) layer. The ASIC layer contains an energy-discriminating photon-counting front end with photon hits streamed directly to the FPGA via a massively parallel, high-speed data connection. FPGA resources can be allocated to perform user defined tasks on the pixel data streams, including the implementation of a direct time autocorrelation function (ACF) with time resolution down to 100 ns. Using the FPGA at the front end to calculate the ACF reduces the required data transfer rate by several orders of magnitude when compared to a fast framing detector. The FPGA-ASIC high-speed interface, as well as the in-FPGA implementation of a real-time ACF for x-ray photon correlation spectroscopy experiments has been designed and simulated. A 16×16 pixel prototype of the ASIC has been fabricated and is being tested.</td>
</tr>
<tr id="bib_Hromalik2013" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{Hromalik2013,
author = {Marianne S. Hromalik and Katherine S. Green and Hugh T. Philipp and Mark W. Tate and Sol M. Gruner},
title = {The FPGA Pixel Array Detector },
journal = {Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment },
year = {2013},
volume = {701},
pages = {7 - 16},
url = {http://www.sciencedirect.com/science/article/pii/S0168900212011564},
doi = {10.1016/j.nima.2012.10.024}
}
</pre></td>
</tr>
<tr id="philipp2013recovering" class="entry">
<td>Philipp H, Ayyer K, Tate M, Elser V and Gruner S (2013), <i>"Recovering structure from many low-information 2-D images of randomly-oriented samples"</i>, Journal of Physics: Conference Series. Vol. 425(19), pp. 192016. IOP Publishing.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2013recovering','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2013recovering" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2013recovering,
author = {Philipp, HT and Ayyer, K and Tate, MW and Elser, V and Gruner, SM},
title = {Recovering structure from many low-information 2-D images of randomly-oriented samples},
journal = {Journal of Physics: Conference Series},
publisher = {IOP Publishing},
year = {2013},
volume = {425},
number = {19},
pages = {192016}
}
</pre></td>
</tr>
<tr id="tate2013medium" class="entry">
<td>Tate M, Chamberlain D, Green K, Philipp H, Purohit P, Strohman C and Gruner S (2013), <i>"A Medium-Format, Mixed-Mode Pixel Array Detector for Kilohertz X-ray Imaging"</i>, Journal of Physics: Conference Series. Vol. 425(6), pp. 062004. IOP Publishing.
<p class="infolinks"> [<a href="javascript:toggleInfo('tate2013medium','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_tate2013medium" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{tate2013medium,
author = {Tate, MW and Chamberlain, D and Green, KS and Philipp, HT and Purohit, P and Strohman, C and Gruner, SM},
title = {A Medium-Format, Mixed-Mode Pixel Array Detector for Kilohertz X-ray Imaging},
journal = {Journal of Physics: Conference Series},
publisher = {IOP Publishing},
year = {2013},
volume = {425},
number = {6},
pages = {062004}
}
</pre></td>
</tr>
<tr id="boutet2012high" class="entry">
<td>Boutet Sé, Lomb L, Williams GJ, Barends TR, Aquila A, Doak RB, Weierstall U, DePonte DP, Steinbrener J, Shoeman RL and others (2012), <i>"High-resolution protein structure determination by serial femtosecond crystallography"</i>, Science. Vol. 337(6092), pp. 362-364. American Association for the Advancement of Science.
<p class="infolinks"> [<a href="javascript:toggleInfo('boutet2012high','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_boutet2012high" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{boutet2012high,
author = {Boutet, Sébastien and Lomb, Lukas and Williams, Garth J and Barends, Thomas RM and Aquila, Andrew and Doak, R Bruce and Weierstall, Uwe and DePonte, Daniel P and Steinbrener, Jan and Shoeman, Robert L and others},
title = {High-resolution protein structure determination by serial femtosecond crystallography},
journal = {Science},
publisher = {American Association for the Advancement of Science},
year = {2012},
volume = {337},
number = {6092},
pages = {362--364}
}
</pre></td>
</tr>
<tr id="hromalik2012asynchronous" class="entry">
<td>Hromalik MS, Green K, Philipp H, Tate MW and Gruner SM (2012), <i>"Asynchronous and synchronous implementations of the autocorrelation function for the FPGA X-ray pixel array detector"</i>, In Real Time Conference (RT), 2012 18th IEEE-NPSS. , pp. 1-8.
<p class="infolinks"> [<a href="javascript:toggleInfo('hromalik2012asynchronous','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_hromalik2012asynchronous" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{hromalik2012asynchronous,
author = {Hromalik, Marianne S and Green, Kate and Philipp, Hugh and Tate, Mark W and Gruner, Sol M},
title = {Asynchronous and synchronous implementations of the autocorrelation function for the FPGA X-ray pixel array detector},
booktitle = {Real Time Conference (RT), 2012 18th IEEE-NPSS},
year = {2012},
pages = {1--8}
}
</pre></td>
</tr>
<tr id="meshot2012high" class="entry">
<td>Meshot ER, Verploegen E, Bedewy M, Tawfick S, Woll AR, Green KS, Hromalik M, Koerner LJ, Philipp HT, Tate MW and others (2012), <i>"High-speed in situ X-ray scattering of carbon nanotube film nucleation and self-organization"</i>, Acs Nano. Vol. 6(6), pp. 5091-5101. ACS Publications.
<p class="infolinks"> [<a href="javascript:toggleInfo('meshot2012high','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_meshot2012high" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{meshot2012high,
author = {Meshot, Eric R and Verploegen, Eric and Bedewy, Mostafa and Tawfick, Sameh and Woll, Arthur R and Green, Katherine S and Hromalik, Marianne and Koerner, Lucas J and Philipp, Hugh T and Tate, Mark W and others},
title = {High-speed in situ X-ray scattering of carbon nanotube film nucleation and self-organization},
journal = {Acs Nano},
publisher = {ACS Publications},
year = {2012},
volume = {6},
number = {6},
pages = {5091--5101}
}
</pre></td>
</tr>
<tr id="philipp2012solving" class="entry">
<td>Philipp HT, Ayyer K, Tate MW, Elser V and Gruner SM (2012), <i>"Solving structure with sparse, randomly-oriented x-ray data"</i>, Optics express. Vol. 20(12), pp. 13129-13137. Optical Society of America.
<p class="infolinks">[<a href="javascript:toggleInfo('philipp2012solving','abstract')">Abstract</a>] [<a href="javascript:toggleInfo('philipp2012solving','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="abs_philipp2012solving" class="abstract noshow">
<td><b>Abstract</b>: Single-particle imaging experiments of biomolecules at x-ray free-electron lasers (XFELs) require processing hundreds of thousands of images that contain very few x-rays. Each low-fluence image of the diffraction pattern is produced by a single, randomly oriented particle, such as a protein. We demonstrate the feasibility of recovering structural information at these extremes using low-fluence images of a randomly oriented 2D x-ray mask. Successful reconstruction is obtained with images averaging only 2.5 photons per frame, where it seems doubtful there could be information about the state of rotation, let alone the image contrast. This is accomplished with an expectation maximization algorithm that processes the low-fluence data in aggregate, and without any prior knowledge of the object or its orientation. The versatility of the method promises, more generally, to redefine what measurement scenarios can provide useful signal.</td>
</tr>
<tr id="bib_philipp2012solving" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2012solving,
author = {Philipp, Hugh T and Ayyer, Kartik and Tate, Mark W and Elser, Veit and Gruner, Sol M},
title = {Solving structure with sparse, randomly-oriented x-ray data},
journal = {Optics express},
publisher = {Optical Society of America},
year = {2012},
volume = {20},
number = {12},
pages = {13129--13137}
}
</pre></td>
</tr>
<tr id="philipp2011low" class="entry">
<td>Philipp HT, Tate MW and Gruner SM (2011), <i>"Low-flux measurements with Cornell's LCLS integrating pixel array detector"</i>, Journal of Instrumentation. Vol. 6(11), pp. C11006. IOP Publishing.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2011low','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2011low" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2011low,
author = {Philipp, Hugh T and Tate, Mark W and Gruner, Sol M},
title = {Low-flux measurements with Cornell's LCLS integrating pixel array detector},
journal = {Journal of Instrumentation},
publisher = {IOP Publishing},
year = {2011},
volume = {6},
number = {11},
pages = {C11006}
}
</pre></td>
</tr>
<tr id="philipp2011pixel" class="entry">
<td>Philipp HT, Hromalik M, Tate M, Koerner L and Gruner SM (2011), <i>"Pixel array detector for x-ray free electron laser experiments"</i>, Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment. Vol. 649(1), pp. 67-69. North-Holland.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2011pixel','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2011pixel" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2011pixel,
author = {Philipp, Hugh T and Hromalik, Marianne and Tate, Mark and Koerner, Lucas and Gruner, Sol M},
title = {Pixel array detector for x-ray free electron laser experiments},
journal = {Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment},
publisher = {North-Holland},
year = {2011},
volume = {649},
number = {1},
pages = {67--69}
}
</pre></td>
</tr>
<tr id="philipp2010femtosecond" class="entry">
<td>Philipp HT, Koerner LJ, Hromalik MS, Tate MW and Gruner SM (2010), <i>"Femtosecond radiation experiment detector for x-ray free-electron laser (XFEL) coherent x-ray imaging"</i>, Nuclear Science, IEEE Transactions on. Vol. 57(6), pp. 3795-3799. IEEE.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2010femtosecond','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2010femtosecond" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2010femtosecond,
author = {Philipp, Hugh T and Koerner, Lucas J and Hromalik, Marianne S and Tate, Mark W and Gruner, Sol M},
title = {Femtosecond radiation experiment detector for x-ray free-electron laser (XFEL) coherent x-ray imaging},
journal = {Nuclear Science, IEEE Transactions on},
publisher = {IEEE},
year = {2010},
volume = {57},
number = {6},
pages = {3795--3799}
}
</pre></td>
</tr>
<tr id="koerner2009x" class="entry">
<td>Koerner L, Philipp H, Hromalik M, Tate M and Gruner S (2009), <i>"X-ray tests of a Pixel Array Detector for coherent x-ray imaging at the Linac Coherent Light Source"</i>, Journal of Instrumentation. Vol. 4(03), pp. P03001. IOP Publishing.
<p class="infolinks"> [<a href="javascript:toggleInfo('koerner2009x','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_koerner2009x" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{koerner2009x,
author = {Koerner, LJ and Philipp, HT and Hromalik, MS and Tate, MW and Gruner, SM},
title = {X-ray tests of a Pixel Array Detector for coherent x-ray imaging at the Linac Coherent Light Source},
journal = {Journal of Instrumentation},
publisher = {IOP Publishing},
year = {2009},
volume = {4},
number = {03},
pages = {P03001}
}
</pre></td>
</tr>
<tr id="hromalik2007data" class="entry">
<td>Hromalik MS, Philipp HT, Koerner LJ, Tate MW and Gruner SM (2007), <i>"Data acquisition and control for the LCLS pixel array detector"</i>, In Nuclear Science Symposium Conference Record, 2007. NSS'07. IEEE. Vol. 3, pp. 1744-1750.
<p class="infolinks"> [<a href="javascript:toggleInfo('hromalik2007data','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_hromalik2007data" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{hromalik2007data,
author = {Hromalik, Marianne S and Philipp, Hugh T and Koerner, Lucas J and Tate, Mark W and Gruner, Sol M},
title = {Data acquisition and control for the LCLS pixel array detector},
booktitle = {Nuclear Science Symposium Conference Record, 2007. NSS'07. IEEE},
year = {2007},
volume = {3},
pages = {1744--1750}
}
</pre></td>
</tr>
<tr id="ou2007ultra" class="entry">
<td>Ou H, Rottwitt K and Philipp HT (2007), <i>"Ultra-compact silica-on-silicon microresonators by etching deep trenches"</i>, European Conferenc on Integrated Optics: April 25-27., In European Conferenc on Integrated Optics (ECIO).
<p class="infolinks"> [<a href="javascript:toggleInfo('ou2007ultra','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_ou2007ultra" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{ou2007ultra,
author = {Ou, Haiyan and Rottwitt, Karsten and Philipp, Hugh Taylor},
title = {Ultra-compact silica-on-silicon microresonators by etching deep trenches},
booktitle = {European Conferenc on Integrated Optics (ECIO)},
journal = {European Conferenc on Integrated Optics: April 25-27},
year = {2007}
}
</pre></td>
</tr>
<tr id="Philipp2007" class="entry">
<td>Philipp HT, Koerner LJ, Hromalik M, Tate MW and Gruner SM (2007), <i>"Pixel array detector for the capture of femtosecond duration x-ray images"</i>, In Optical Engineering+ Applications. , pp. 67030O-67030O.
<p class="infolinks"> [<a href="javascript:toggleInfo('Philipp2007','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_Philipp2007" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{Philipp2007,
author = {Philipp, Hugh T and Koerner, Lucas J and Hromalik, Marianne and Tate, Mark W and Gruner, Sol M},
title = {Pixel array detector for the capture of femtosecond duration x-ray images},
booktitle = {Optical Engineering+ Applications},
year = {2007},
pages = {67030O--67030O}
}
</pre></td>
</tr>
<tr id="philipp2007pixel" class="entry">
<td>Philipp H, Koerner L, Hromalik M, Tate M and Gruner S (2007), <i>"Pixel array detector for the capture of femtosecond duration x-ray images [6703-22]"</i>, PROCEEDINGS-SPIE THE INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING. Vol. 6703, pp. 6703. International Society for Optical Engineering; 1999.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2007pixel','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2007pixel" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2007pixel,
author = {Philipp, HT and Koerner, LJ and Hromalik, M and Tate, MW and Gruner, SM},
title = {Pixel array detector for the capture of femtosecond duration x-ray images [6703-22]},
journal = {PROCEEDINGS-SPIE THE INTERNATIONAL SOCIETY FOR OPTICAL ENGINEERING},
publisher = {International Society for Optical Engineering; 1999},
year = {2007},
volume = {6703},
pages = {6703}
}
</pre></td>
</tr>
<tr id="liu2006quantitative" class="entry">
<td>Liu X, Im K-S, Wang Y, Wang J, Hung DL, Winkelman JR, Tate MW, Ercan A, Koerner LJ, Caswell T and others (2006), <i>"Quantitative characterization of near-field fuel sprays by multi-orifice direct injection using ultrafast x-tomography technique"</i>, SAE Paper., In SAE. , pp. 01-1041.
<p class="infolinks"> [<a href="javascript:toggleInfo('liu2006quantitative','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_liu2006quantitative" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@conference{liu2006quantitative,
author = {Liu, Xin and Im, Kyoung-Su and Wang, Yujie and Wang, Jin and Hung, David LS and Winkelman, James R and Tate, Mark W and Ercan, Alper and Koerner, Lucas J and Caswell, Thomas and others},
title = {Quantitative characterization of near-field fuel sprays by multi-orifice direct injection using ultrafast x-tomography technique},
booktitle = {SAE},
journal = {SAE Paper},
year = {2006},
pages = {01--1041}
}
</pre></td>
</tr>
<tr id="ou2006deep" class="entry">
<td>Ou H, Rottwitt K and Philipp H (2006), <i>"Deep glass etched microring resonators based on silica-on-silicon technology"</i>, Electronics Letters. Vol. 42(10), pp. 581-583. unknown.
<p class="infolinks"> [<a href="javascript:toggleInfo('ou2006deep','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_ou2006deep" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{ou2006deep,
author = {Ou, Haiyan and Rottwitt, Karsten and Philipp, H},
title = {Deep glass etched microring resonators based on silica-on-silicon technology},
journal = {Electronics Letters},
publisher = {unknown},
year = {2006},
volume = {42},
number = {10},
pages = {581--583}
}
</pre></td>
</tr>
<tr id="ou2006novel" class="entry">
<td>Ou H, Rottwitt K and Philipp H (2006), <i>"Novel deep glass etched microring resonators based on silica-on-silicon technology"</i>, Integrated Photonics Research and Applications (IPRA), Topical meeting or the Nanophotonics Topical Meeting., In Integrated Photonics Research and Applications (IPRA).
<p class="infolinks"> [<a href="javascript:toggleInfo('ou2006novel','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_ou2006novel" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{ou2006novel,
author = {Ou, Haiyan and Rottwitt, Karsten and Philipp, Hugh},
title = {Novel deep glass etched microring resonators based on silica-on-silicon technology},
booktitle = {Integrated Photonics Research and Applications (IPRA)},
journal = {Integrated Photonics Research and Applications (IPRA), Topical meeting or the Nanophotonics Topical Meeting},
year = {2006}
}
</pre></td>
</tr>
<tr id="dyvelkovlow" class="entry">
<td>Dyvelkov KN, Ou H, Philipp HT and Svendsen WE (2004), <i>"Low-loss silicon rich silicon nitride waveguides for high density integrated optics"</i> (JWB28)
<p class="infolinks"> [<a href="javascript:toggleInfo('dyvelkovlow','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_dyvelkovlow" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@proceedings{dyvelkovlow,
author = {Dyvelkov, Karin Nordström and Ou, Haiyan and Philipp, Hugh Taylor and Svendsen, Winnie Edith},
title = {Low-loss silicon rich silicon nitride waveguides for high density integrated optics},
year = {2004},
number = {JWB28}
}
</pre></td>
</tr>
<tr id="olsen2004measurement" class="entry">
<td>Olsen JH (2004), <i>"Measurement of nonlinear refraction of waveguide materials"</i>. Thesis at: Technical University of Denmark, DTU, DK-2800 Kgs. Lyngby, Denmark.
<p class="infolinks"> [<a href="javascript:toggleInfo('olsen2004measurement','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_olsen2004measurement" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@phdthesis{olsen2004measurement,
author = {Olsen, Johnny Hartvig},
title = {Measurement of nonlinear refraction of waveguide materials},
school = {Technical University of Denmark, DTU, DK-2800 Kgs. Lyngby, Denmark},
year = {2004}
}
</pre></td>
</tr>
<tr id="Philipp2004" class="entry">
<td>Philipp HT, Andersen KN, Svendsen WE and Svalgaard M (2004), <i>"High density high index contrast integrated optics developments and applications at COM"</i>, DOPS-Nyt. Vol. 19, pp. 10-14. unknown.
<p class="infolinks"> [<a href="javascript:toggleInfo('Philipp2004','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_Philipp2004" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{Philipp2004,
author = {Philipp, Hugh T and Andersen, Karin Nordström and Svendsen, Winnie Edith and Svalgaard, Mikael},
title = {High density high index contrast integrated optics developments and applications at COM},
journal = {DOPS-Nyt},
publisher = {unknown},
year = {2004},
volume = {19},
pages = {10--14}
}
</pre></td>
</tr>
<tr id="philipp2004amorphous" class="entry">
<td>Philipp HT, Andersen KN, Svendsen W and Ou H (2004), <i>"Amorphous silicon rich silicon nitride optical waveguides for high density integrated optics"</i>, Electronics Letters. Vol. 40(7), pp. 419-421. IET.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2004amorphous','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2004amorphous" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2004amorphous,
author = {Philipp, Hugh T and Andersen, Karin Nordström and Svendsen, W and Ou, H},
title = {Amorphous silicon rich silicon nitride optical waveguides for high density integrated optics},
journal = {Electronics Letters},
publisher = {IET},
year = {2004},
volume = {40},
number = {7},
pages = {419--421}
}
</pre></td>
</tr>
<tr id="philipp2004high" class="entry">
<td>Philipp HT, Rottwitt K and Povlsen JoH (2004), <i>"High-Index Contrast Silicon Rich Silicon Nitride Optical Waveguides and Devices"</i>. Thesis at: Technical University of DenmarkDanmarks Tekniske Universitet, Department of Photonics EngineeringInstitut for Fotonik, Fibers & Nonlinear OpticsFiber-& ulineær optik.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2004high','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2004high" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@phdthesis{philipp2004high,
author = {Philipp, Hugh Taylor and Rottwitt, Karsten and Povlsen, Jørn Hedegaard},
title = {High-Index Contrast Silicon Rich Silicon Nitride Optical Waveguides and Devices},
school = {Technical University of DenmarkDanmarks Tekniske Universitet, Department of Photonics EngineeringInstitut for Fotonik, Fibers & Nonlinear OpticsFiber-& ulineær optik},
year = {2004}
}
</pre></td>
</tr>
<tr id="philipp2004low" class="entry">
<td>Philipp HT, Andersen KN, Svendsen WE and Ou H (2004), <i>"Low-loss silicon rich silicon nitride waveguides for high density integrated optics"</i>, In Integrated Photonics Research.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2004low','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2004low" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{philipp2004low,
author = {Philipp, Hugh T and Andersen, Karin N and Svendsen, Winnie E and Ou, Haiyan},
title = {Low-loss silicon rich silicon nitride waveguides for high density integrated optics},
booktitle = {Integrated Photonics Research},
year = {2004}
}
</pre></td>
</tr>
<tr id="andersen2003silicon" class="entry">
<td>Andersen KN, Svendsen WE, Sandberg RK, Philipp HT and Hübner J (2003), <i>"Silicon-rich nitride micro-resonators"</i>, ECIO, Paper WeA2., In European Conference on Integrated Optics (ECIO). Vol. 2(WeA2)
<p class="infolinks"> [<a href="javascript:toggleInfo('andersen2003silicon','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_andersen2003silicon" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{andersen2003silicon,
author = {Andersen, Karin Nordström and Svendsen, Winnie Edith and Sandberg, Rasmus Kousholt and Philipp, Hugh Taylor and Hübner, Jorg},
title = {Silicon-rich nitride micro-resonators},
booktitle = {European Conference on Integrated Optics (ECIO)},
journal = {ECIO, Paper WeA2},
year = {2003},
volume = {2},
number = {WeA2}
}
</pre></td>
</tr>
<tr id="philipp2003measurement" class="entry">
<td>Philipp HT, Svendsen W, Andersen KN, Hubner J and Povlsen JH (2003), <i>"Measurement of optical nonlinearity in silicon rich nitride waveguide ring resonators"</i>, Electronics letters. Vol. 39(16), pp. 1184-1185. IET.
<p class="infolinks"> [<a href="javascript:toggleInfo('philipp2003measurement','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_philipp2003measurement" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@article{philipp2003measurement,
author = {Philipp, Hugh Taylor and Svendsen, W and Andersen, Karin Nordström and Hubner, J and Povlsen, J Hedegaard},
title = {Measurement of optical nonlinearity in silicon rich nitride waveguide ring resonators},
journal = {Electronics letters},
publisher = {IET},
year = {2003},
volume = {39},
number = {16},
pages = {1184--1185}
}
</pre></td>
</tr>
<tr id="mertens2002optical" class="entry">
<td>Mertens H, Svendsen WE, Andersen KN and Philipp H (2002), <i>"Optical loss analysis of silicon rich nitride waveguides and their applications"</i>, Danish Physical Society annual meeting 2002. (FF70P)
<p class="infolinks"> [<a href="javascript:toggleInfo('mertens2002optical','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_mertens2002optical" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@proceedings{mertens2002optical,
author = {Mertens, H and Svendsen, Winnie Edith and Andersen, Karin Nordström and Philipp, H},
title = {Optical loss analysis of silicon rich nitride waveguides and their applications},
journal = {Danish Physical Society annual meeting 2002},
year = {2002},
number = {FF70P}
}
</pre></td>
</tr>
<tr id="svendsen2002high" class="entry">
<td>Svendsen WE, Philipp HT, Svalgaard M, Mertens H and Andersen KN (2002), <i>"High index ring resonator coupled to UV-written waveguide"</i>, In Optical Communication, 2002. ECOC 2002. 28th European Conference on. Vol. 2, pp. 1-2.
<p class="infolinks"> [<a href="javascript:toggleInfo('svendsen2002high','bibtex')">BibTeX</a>]</p>
</td>
</tr>
<tr id="bib_svendsen2002high" class="bibtex noshow">
<td><b>BibTeX</b>:
<pre>
@inproceedings{svendsen2002high,
author = {Svendsen, Winnie Edith and Philipp, Hugh Taylor and Svalgaard, Mikael and Mertens, Hans and Andersen, Karin Nordström},
title = {High index ring resonator coupled to UV-written waveguide},
booktitle = {Optical Communication, 2002. ECOC 2002. 28th European Conference on},
year = {2002},
volume = {2},
pages = {1--2}
}
</pre></td>
</tr>
</tbody>
</table>
<footer>
<small>Created by <a href="http://jabref.sourceforge.net">JabRef</a> on 29/01/2014.</small>
</footer>
<!-- file generated by JabRef -->
</body>
</html>