'// example file for roundedpath() in roundedpath.asy\n' Comment '// written by stefan knorr\n' Comment '\n' Text.Whitespace '\n' Text.Whitespace '// import needed packages\n' Comment 'import' Keyword ' ' Text.Whitespace 'roundedpath' Name.Function ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '// function definition\n' Comment 'picture' Keyword.Type ' ' Text.Whitespace 'CreateKOOS' Name.Function '(' Punctuation 'real' Keyword.Type ' ' Text.Whitespace 'Scale' Name.Function ',' Punctuation ' ' Text.Whitespace 'string' Keyword.Type ' ' Text.Whitespace 'legend' Name.Function ')' Punctuation ' ' Text.Whitespace '// draw labeled coordinate system as picture\n' Comment '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'picture' Keyword.Type ' ' Text.Whitespace 'ReturnPic' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'real' Keyword.Type ' ' Text.Whitespace 'S' Name.Variable ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '1.2' Literal.Number.Float '*' Operator 'Scale' Name.Function ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'draw' Name.Function '(' Punctuation 'ReturnPic' Name ',' Punctuation ' ' Text.Whitespace '(' Punctuation '(' Punctuation '-' Operator 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation '-' Operator '-' Operator '(' Punctuation 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'bar' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'EndArrow' Name.Function ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// x axis\n' Comment ' ' Text.Whitespace 'draw' Name.Function '(' Punctuation 'ReturnPic' Name ',' Punctuation ' ' Text.Whitespace '(' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '-' Operator 'S' Name.Variable ')' Punctuation '-' Operator '-' Operator '(' Punctuation '0' Literal.Number.Integer ',' Punctuation 'S' Name.Variable ')' Punctuation ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'bar' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'EndArrow' Name.Function ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// y axis\n' Comment ' ' Text.Whitespace 'label' Name.Function '(' Punctuation 'ReturnPic' Name ',' Punctuation ' ' Text.Whitespace '"$\\varepsilon$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'SW' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// x axis label\n' Comment ' ' Text.Whitespace 'label' Name.Function '(' Punctuation 'ReturnPic' Name ',' Punctuation ' ' Text.Whitespace '"$\\sigma$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'SW' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// y axis label\n' Comment ' ' Text.Whitespace 'label' Name.Function '(' Punctuation 'ReturnPic' Name ',' Punctuation ' ' Text.Whitespace 'legend' Name.Function ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0.7' Literal.Number.Float 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '-' Operator 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'NW' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// add label 'legend' \n" Comment ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'ReturnPic' Name ';' Punctuation ' ' Text.Whitespace '// return picture\n' Comment '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace '// some global definitions\n' Comment 'real' Keyword.Type ' ' Text.Whitespace 'S' Name.Variable ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '13' Literal.Number.Integer 'mm' Name.Variable ';' Punctuation ' ' Text.Whitespace '// universal scale factor for the whole file\n' Comment 'real' Keyword.Type ' ' Text.Whitespace 'grad' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0.25' Literal.Number.Float ';' Punctuation ' ' Text.Whitespace '// gradient for lines\n' Comment 'real' Keyword.Type ' ' Text.Whitespace 'radius' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0.04' Literal.Number.Float ';' Punctuation ' ' Text.Whitespace "// radius for the rounded path'\n" Comment 'real' Keyword.Type ' ' Text.Whitespace 'lw' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '2' Literal.Number.Integer ';' Punctuation ' ' Text.Whitespace '// linewidth\n' Comment 'pair' Keyword.Type ' ' Text.Whitespace 'A' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation '-' Operator '1' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '-' Operator '1' Literal.Number.Integer ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// start point for graphs\n' Comment 'pair' Keyword.Type ' ' Text.Whitespace 'E' Name.Variable ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace '1' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// end point for graphs\n' Comment 'path' Keyword.Type ' ' Text.Whitespace 'graph' Name.Function ';' Punctuation ' ' Text.Whitespace '// local graph\n' Comment 'pen' Keyword.Type ' ' Text.Whitespace 'ActPen' Name ';' Punctuation ' ' Text.Whitespace '// actual pen for each drawing\n' Comment 'picture' Keyword.Type ' ' Text.Whitespace 'T' Name '[' Punctuation ']' Punctuation ';' Punctuation ' ' Text.Whitespace '// vector of all four diagrams\n' Comment 'real' Keyword.Type ' ' Text.Whitespace 'inc' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '2.8' Literal.Number.Float ';' Punctuation ' ' Text.Whitespace '// increment-offset for combining pictures\n' Comment '\n' Text.Whitespace '//////////////////////////////////////// 1st diagram\n' Comment 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'CreateKOOS' Name '(' Punctuation 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '"$T_1$"' Literal.String ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// initialise T[1] as empty diagram with label $T_1$ \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'A' Name ';' Punctuation ' ' Text.Whitespace "// # pointwise definition of current path 'graph' \n" Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'A' Name '.' Punctuation 'x' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '1.6' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'A' Name '.' Punctuation 'y' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '1.6' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'E' Name.Variable '.' Punctuation 'x' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.4' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'E' Name.Variable '.' Punctuation 'y' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.4' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace 'E' Name.Variable ';' Punctuation ' ' Text.Whitespace '// #\n' Comment '\n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// round edges of 'graph' using roundedpath() in roundedpath.asy \n" Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'rgb' Name.Function '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ',' Punctuation '0.6' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation 'lw' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define pen for drawing in 1st diagram \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw 'graph' with 'ActPen' into 'T[1]' (1st hysteresis branch) \n" Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'rotate' Name.Function '(' Punctuation '180' Literal.Number.Integer ',' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '*' Operator 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw rotated 'graph' (2nd hysteresis branch) \n" Comment '\n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.6' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.6' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.6' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.6' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '(' Punctuation '0.1' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define branch from origin to hysteresis\n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// round this path \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw this path into 'T[1]' \n" Comment '\n' Text.Whitespace '\n' Text.Whitespace '//////////////////////////////////////// 2nd diagram\n' Comment 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'CreateKOOS' Name '(' Punctuation 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '"$T_2$"' Literal.String ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// initialise T[2] as empty diagram with label $T_2$ \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'A' Name ';' Punctuation ' ' Text.Whitespace "// # pointwise definition of current path 'graph' \n" Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'A' Name '.' Punctuation 'x' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '1.3' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'A' Name '.' Punctuation 'y' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '1.3' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'E' Name.Variable '.' Punctuation 'x' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.7' Literal.Number.Float ' ' Text.Whitespace ',' Punctuation ' ' Text.Whitespace 'E' Name.Variable '.' Punctuation 'y' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.7' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace 'E' Name.Variable ';' Punctuation ' ' Text.Whitespace '// #\n' Comment ' \n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// round edges of 'graph' using roundedpath() in roundedpath.asy \n" Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'rgb' Name.Function '(' Punctuation '0.2' Literal.Number.Float ',' Punctuation '0' Literal.Number.Integer ',' Punctuation '0.4' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation 'lw' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define pen for drawing in 2nd diagram \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw 'graph' with 'ActPen' into 'T[2]' (1st hysteresis branch) \n" Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'rotate' Name.Function '(' Punctuation '180' Literal.Number.Integer ',' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '*' Operator 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw rotated 'graph' (2nd hysteresis branch) \n" Comment '\n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.3' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.3' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.3' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.3' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '(' Punctuation '0.1' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define branch from origin to hysteresis\n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// round this path \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw this path into 'T[2]' \n" Comment '\n' Text.Whitespace '\n' Text.Whitespace '//////////////////////////////////////// 3rd diagram\n' Comment 'T' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'CreateKOOS' Name '(' Punctuation 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '"$T_3$"' Literal.String ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// initialise T[3] as empty diagram with label $T_3$ \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'A' Name ';' Punctuation ' ' Text.Whitespace "// # pointwise definition of current path 'graph' \n" Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'A' Name '.' Punctuation 'x' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.7' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'A' Name '.' Punctuation 'y' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '0.7' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.3' Literal.Number.Float ' ' Text.Whitespace ',' Punctuation ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.3' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.6' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.6' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'E' Name.Variable '.' Punctuation 'x' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.4' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'E' Name.Variable '.' Punctuation 'y' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.4' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace 'E' Name.Variable ';' Punctuation ' ' Text.Whitespace '// # \n' Comment ' \n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// round edges of 'graph' using roundedpath() in roundedpath.asy \n" Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'rgb' Name.Function '(' Punctuation '0.6' Literal.Number.Float ',' Punctuation '0' Literal.Number.Integer ',' Punctuation '0.2' Literal.Number.Float ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation 'lw' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define pen for drawing in 3rd diagram \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw 'graph' with 'ActPen' into 'T[3]' (1st hysteresis branch) \n" Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'rotate' Name.Function '(' Punctuation '180' Literal.Number.Integer ',' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '*' Operator 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw rotated 'graph' (2nd hysteresis branch) \n" Comment '\n' Text.Whitespace '\n' Text.Whitespace '//////////////////////////////////////// 4th diagram\n' Comment 'T' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'CreateKOOS' Name '(' Punctuation 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '"$T_4$"' Literal.String ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// initialise T[4] as empty diagram with label $T_4$ \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'A' Name ';' Punctuation ' ' Text.Whitespace "// # pointwise definition of current path 'graph' \n" Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'A' Name '.' Punctuation 'x' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.4' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'A' Name '.' Punctuation 'y' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '0.4' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.6' Literal.Number.Float ' ' Text.Whitespace ',' Punctuation ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.6' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'grad' Name '*' Operator '0.9' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '0.9' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace '(' Punctuation 'E' Name.Variable '.' Punctuation 'x' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.1' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace 'E' Name.Variable '.' Punctuation 'y' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '0.1' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '-' Operator '-' Operator ' ' Text.Whitespace 'E' Name.Variable ';' Punctuation ' ' Text.Whitespace '// # \n' Comment ' \n' Text.Whitespace 'graph' Name.Function ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'roundedpath' Name.Function '(' Punctuation 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'radius' Name.Function ',' Punctuation ' ' Text.Whitespace 'S' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// round edges of 'graph' using roundedpath() in roundedpath.asy \n" Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'rgb' Name.Function '(' Punctuation '0.6' Literal.Number.Float ',' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation 'lw' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define pen for drawing in 4th diagram \n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw 'graph' with 'ActPen' into 'T[4]' (1st hysteresis branch) \n" Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace 'rotate' Name.Function '(' Punctuation '180' Literal.Number.Integer ',' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '*' Operator 'graph' Name.Function ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// draw rotated 'graph' (3nd hysteresis branch) \n" Comment '\n' Text.Whitespace '\n' Text.Whitespace '// add some labels and black dots to the first two pictures\n' Comment 'pair' Keyword.Type ' ' Text.Whitespace 'SWW' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation '-' Operator '0.8' Literal.Number.Float ',' Punctuation ' ' Text.Whitespace '-' Operator '0.6' Literal.Number.Float ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'label' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '"$\\sigma_f$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '0.6' Literal.Number.Float 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'NE' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// sigma_f\n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '0.6' Literal.Number.Float 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '3' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'black' Name.Variable ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'label' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '"$\\sigma_f$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '0.3' Literal.Number.Float 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'NE' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// sigma_f\n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0' Literal.Number.Integer ',' Punctuation ' ' Text.Whitespace '0.3' Literal.Number.Float 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '3' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'black' Name.Variable ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'label' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '"$\\varepsilon_p$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0.7' Literal.Number.Float 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'SWW' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// epsilon_p\n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0.75' Literal.Number.Float 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '3' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'black' Name.Variable ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'label' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '"$\\varepsilon_p$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0.7' Literal.Number.Float 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'SWW' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// epsilon_p\n' Comment 'draw' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '0.75' Literal.Number.Float 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '3' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'black' Name.Variable ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace '// add all pictures T[1...4] to the current one\n' Comment 'add' Name.Function '(' Punctuation 'T' Name '[' Punctuation '1' Literal.Number.Integer ']' Punctuation ',' Punctuation '(' Punctuation '0' Literal.Number.Integer ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'add' Name.Function '(' Punctuation 'T' Name '[' Punctuation '2' Literal.Number.Integer ']' Punctuation ',' Punctuation '(' Punctuation '1' Literal.Number.Integer '*' Operator 'inc' Name '*' Operator 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'add' Name.Function '(' Punctuation 'T' Name '[' Punctuation '3' Literal.Number.Integer ']' Punctuation ',' Punctuation '(' Punctuation '2' Literal.Number.Integer '*' Operator 'inc' Name '*' Operator 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace 'add' Name.Function '(' Punctuation 'T' Name '[' Punctuation '4' Literal.Number.Integer ']' Punctuation ',' Punctuation '(' Punctuation '3' Literal.Number.Integer '*' Operator 'inc' Name '*' Operator 'S' Name.Variable ',' Punctuation '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace '// draw line of constant \\sigma and all intersection points with the graphs in T[1...4]\n' Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'dashed' Name.Variable ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'gray' Name.Function '(' Punctuation '0.5' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// pen definition\n' Comment 'draw' Name.Function '(' Punctuation '(' Punctuation '-' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '-' Operator '-' Operator '(' Punctuation '(' Punctuation '3' Literal.Number.Integer '*' Operator 'inc' Name '+' Operator '1' Literal.Number.Integer ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// draw backgoundline\n' Comment 'label' Name.Function '(' Punctuation '"$\\sigma_s$"' Literal.String ',' Punctuation ' ' Text.Whitespace '(' Punctuation '-' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float 'S' Name.Variable ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'W' Name.Variable ')' Punctuation ';' Punctuation ' ' Text.Whitespace "// label 'sigma_s'\n" Comment '\n' Text.Whitespace 'path' Keyword.Type ' ' Text.Whitespace 'mark' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'scale' Name.Function '(' Punctuation '2' Literal.Number.Integer ')' Punctuation '*' Operator 'unitcircle' Name.Variable ';' Punctuation ' ' Text.Whitespace '// define mark-symbol to be used for intersections\n' Comment 'ActPen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'linewidth' Name.Function '(' Punctuation '1' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'gray' Name.Function '(' Punctuation '0.5' Literal.Number.Float ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// define pen for intersection mark\n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.55' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '0' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # draw all intersections\n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation '-' Operator '1' Literal.Number.Integer ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '1.45' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '0' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// #\n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.55' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '1' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// #\n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation ' ' Text.Whitespace '1' Literal.Number.Integer ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'grad' Name '*' Operator '0.55' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '2' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation ' ' Text.Whitespace 'grad' Name '*' Operator '0.45' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '2' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// # \n' Comment 'draw' Name.Function '(' Punctuation 'shift' Name.Function '(' Punctuation '(' Punctuation ' ' Text.Whitespace 'grad' Name '*' Operator '0.45' Literal.Number.Float ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '3' Literal.Number.Integer '*' Operator 'inc' Name ')' Punctuation '*' Operator 'S' Name.Variable ',' Punctuation ' ' Text.Whitespace '0.45' Literal.Number.Float '*' Operator 'S' Name.Variable ')' Punctuation '*' Operator 'mark' Name ',' Punctuation ' ' Text.Whitespace 'ActPen' Name ')' Punctuation ';' Punctuation ' ' Text.Whitespace '// #\n' Comment