% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigop.mf BY D E KNUTH.
% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!

% This file contains pairs of large operators for math extension fonts.

% Each operator has a `{\tt\char`\\textstyle}' form, for math in text,
% and a `{\tt\char`\\displaystyle}' form, for displayed formulas.

% Character codes \0106--\0141 are generated.

charlist oct"106": oct"107";  % square union signs
charlist oct"110": oct"111";  % contour integral signs
charlist oct"112": oct"113";  % circle-dot operators
charlist oct"114": oct"115";  % circle-plus operators
charlist oct"116": oct"117";  % circle-times operators
charlist oct"120": oct"130";  % summation signs
charlist oct"121": oct"131";  % product signs
charlist oct"122": oct"132";  % integral signs
charlist oct"123": oct"133";  % union signs
charlist oct"124": oct"134";  % intersection signs
charlist oct"125": oct"135";  % multiset union signs
charlist oct"126": oct"136";  % lattice infimum signs
charlist oct"127": oct"137";  % lattice supremum signs
charlist oct"140": oct"141";  % coproduct signs

cmchar "\textstyle square set union sign";
beginchar(oct"106",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u; x2=x1; x4=x5=w-x1;
top y1=eps; bot y2=-d; y4=y2; y5=y1;
draw z1---z2---z4---z5;  % stems and bar
labels(1,2,4,5); endchar;

cmchar "\displaystyle square set union sign";
beginchar(oct"107",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u; x2=x1; x4=x5=w-x1;
top y1=eps; bot y2=-d; y4=y2; y5=y1;
draw z1---z2---z4---z5;  % stems and bar
labels(1,2,4,5); endchar;

cmchar "\textstyle circle-dot operator";
beginchar(oct"112",20u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
fill fullcircle scaled(bold+4dw+eps) shifted(.5[z4,z8]);  % dot
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\displaystyle circle-dot operator";
beginchar(oct"113",27.2u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
fill fullcircle scaled(bold+6dw+eps) shifted(.5[z4,z8]);  % dot
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\textstyle circle-plus operator";
beginchar(oct"114",20u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
draw z2--z6; draw z4--z8;  % plus
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\displaystyle circle-plus operator";
beginchar(oct"115",27.2u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
draw z2--z6; draw z4--z8;  % plus
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\textstyle circle-times operator";
beginchar(oct"116",20u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
draw z1--z5; draw z3--z7;  % times
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\displaystyle circle-times operator";
beginchar(oct"117",27.2u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
circle_points; draw_circle;  % circle
draw z1--z5; draw z3--z7;  % times
labels(1,2,3,4,5,6,7,8); endchar;

cmchar "\textstyle summation sign";
beginchar(oct"120",19u#,0,10/6dh#);
adjust_fit(0,0); pickup tiny.nib;
numeric top_arm_thickness, bot_arm_thickness;
top_arm_thickness=Vround rule_thickness;
bot_arm_thickness=Vround .9(.5[rule_thickness,curve]);
lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0);
penpos3(alpha1*(curve-tiny),0);
alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l);
penpos4(alpha2*(rule_thickness-tiny),0);
z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle;  % diagonals
pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
arm(5,6,a,.45,17/11u);  % upper arm and beak
pos7(bot_arm_thickness,-90); pos8(hair,0);
bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
arm(7,8,b,.45,17/11u);  % lower arm and beak
penlabels(0,1,2,3,4,5,6,7,8); endchar;

cmchar "\displaystyle summation sign";
beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup tiny.nib;
numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
top_arm_thickness=Vround .9thin_stem;
bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]);
lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0);
penpos3(alpha1*(thick_stem-tiny),0);
alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
penpos4(alpha2*(thin_stem-tiny),0);
z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle;  % diagonals
pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps;
arm(5,6,a,.45,24/11u);  % upper arm and beak
pos7(bot_arm_thickness,-90); pos8(hair,0);
bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps;
arm(7,8,b,.45,24/11u);  % lower arm and beak
penlabels(0,1,2,3,4,5,6,7,8); endchar;

cmchar "\textstyle product sign";
beginchar(oct"121",17u#,0,10/6dh#);
adjust_fit(0,0); pickup crisp.nib;
numeric heavy_stem,light_stem;
heavy_stem=hround(bold+dw); light_stem=rule_thickness;
pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
x1=x1'=x2=x2';
top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
y11l-y1'=y2'-y12r=1.2bracket;
filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
 --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
 --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
filldraw stroke z11e--z13e; % bar
penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;

cmchar "\displaystyle product sign";
beginchar(oct"131",23u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup crisp.nib;
numeric heavy_stem,light_stem;
heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
x1=x1'=x2=x2';
top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
y11l-y1'=y2'-y12r=1.8bracket;
filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
 --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
 --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
filldraw stroke z11e--z13e; % bar
penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;

cmchar "\textstyle coproduct sign";
beginchar(oct"140",17u#,0,10/6dh#);
adjust_fit(0,0); pickup crisp.nib;
numeric heavy_stem,light_stem;
heavy_stem=hround(bold+dw); light_stem=rule_thickness;
pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
x1=x1'=x2=x2';
bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
y1'-y11l=y12r-y2'=1.2bracket;
filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
 --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
 --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
filldraw stroke z11e--z13e; % bar
penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;

cmchar "\displaystyle coproduct sign";
beginchar(oct"141",23u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup crisp.nib;
numeric heavy_stem,light_stem;
heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
x1=x1'=x2=x2';
bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
y1'-y11l=y12r-y2'=1.8bracket;
filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
 --z12l--z22l--serif_arc(22r,2'r)--cycle;  % left stem and serifs
pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
 --z14l--z24l--serif_arc(24r,4'l)--cycle;  % right stem and serifs
filldraw stroke z11e--z13e; % bar
penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;

cmchar "\textstyle integral sign";
beginchar(oct"122",12u#,0,100/54dh#);
italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
adjust_fit(0,-ic#); pickup fine.nib;
pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
bulb(3,2,1); bulb(7,8,9);  % bulbs
filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
 ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
 ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
penlabels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\displaystyle integral sign";
beginchar(oct"132",18u#,0,200/54dh#);
italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
adjust_fit(0,-ic#); pickup fine.nib;
numeric bulb_size, max_size;
bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
top y3r=0; bot y7r=-d;
y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
bulb(3,2,1); bulb(7,8,9);  % bulbs
filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
 ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
 ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
penlabels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\textstyle contour integral sign";
beginchar(oct"110",12u#,0,100/54dh#);
italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
adjust_fit(0,-ic#); pickup fine.nib;
pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
bulb(3,2,1); bulb(7,8,9);  % bulbs
filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
 ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
 ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
pickup rule.nib; autorounded;
draw fullcircle scaled .5w shifted z5;  % contour
penlabels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\displaystyle contour integral sign";
beginchar(oct"111",18u#,0,200/54dh#);
italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
adjust_fit(0,-ic#); pickup fine.nib;
numeric bulb_size, max_size;
bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
top y3r=0; bot y7r=-d;
y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
bulb(3,2,1); bulb(7,8,9);  % bulbs
filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
 ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper stem
filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
 ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower stem
pickup rule.nib; autorounded;
draw fullcircle scaled .5w shifted z5;  % contour
penlabels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\textstyle set union sign";
beginchar(oct"123",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cup
labels(1,2,3,4,5); endchar;

cmchar "\displaystyle set union sign";
beginchar(oct"133",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cup
labels(1,2,3,4,5); endchar;

cmchar "\textstyle set intersection sign";
beginchar(oct"124",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cap
labels(1,2,3,4,5); endchar;

cmchar "\displaystyle set intersection sign";
beginchar(oct"134",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cap
labels(1,2,3,4,5); endchar;

cmchar "\textstyle multiset union sign";
beginchar(oct"125",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cup
y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3;
.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7;  % enclosed `$+$'
labels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\displaystyle multiset union sign";
beginchar(oct"135",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
draw z1---z2...z3...z4---z5;  % stems and cup
y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3;
.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7;  % enclosed `$+$'
labels(1,2,3,4,5,6,7,8,9); endchar;

cmchar "\textstyle lattice infimum sign";
beginchar(oct"126",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u-eps; x3=w-x3; x5=w-x1;
top y3=0; bot y1=-d-eps; y5=y1;
draw z1--z3--z5;  % diagonals
labels(1,3,5); endchar;

cmchar "\displaystyle lattice infimum sign";
beginchar(oct"136",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u-eps; x3=w-x3; x5=w-x1;
top y3=0; bot y1=-d-eps; y5=y1;
draw z1--z3--z5;  % diagonals
labels(1,3,5); endchar;

cmchar "\textstyle lattice supremum sign";
beginchar(oct"127",15u#,0,10/6dh#);
adjust_fit(0,0); pickup pencircle scaled stem;
lft x1=hround u-eps; x3=w-x3; x5=w-x1;
top y1=eps; bot y3=-d; y5=y1;
draw z1--z3--z5;  % diagonals
labels(1,3,5); endchar;

cmchar "\displaystyle lattice supremum sign";
beginchar(oct"137",20u#,0,14/6dh#); padded 1/6dh#;
adjust_fit(0,0); pickup pencircle scaled curve;
lft x1=hround u-eps; x3=w-x3; x5=w-x1;
top y1=eps; bot y3=-d; y5=y1;
draw z1--z3--z5;  % diagonals
labels(1,3,5); endchar;
