code for diagram

code for labeledarrow

code for dlabeledarrow

> box:=plots[polygonplot]([[-1,2],[1,2],[1,-2],[-1,-2]],
color=blue,style=line,thickness=3):

> circs:=plot({[cos(t),sin(t)+2,t=0..Pi],[cos(t),sin(t)-2,
t=Pi..2*Pi]},color=blue,thickness=3):

> arr1:=dblabeledarrow([1.2,2],[1.2,-2],[1,1,1], `s`,
[0,-.2], 20, red):

> arr2:=dblabeledarrow([-1,1.8],[1,1.8],[1,2,2], `r`,
[0,.2], 20, red):

> plots[display]({box,circs,arr1,arr2},
scaling=constrained,axes=none);

>