string stripfile(string s);
string stripsuffix(string f, string suffix=<default>);
real cbrt(real x);
real[] cbrt(real[] a);
pen RGB(int r, int g, int b);
cputime cputime();
string stripdirectory(string s);
real sqrtEpsilon;
string stripextension(string s);
version version;
void texpreamble(string s);
pen beveljoin;
string cputimeformat;
real Cos(real deg);
string insert(string s, int pos, string t);
marginT EndDotMargin(path, pen);
pen heavyred;
pen black;
pen heavyblue;
filltype dotfilltype;
pen heavygreen;
pen heavycyan;
marginT PenMargin(path, pen)(real begin, real end=<default>);
marginT PenMargin(path, pen);
int realDigits;
pen heavymagenta;
marginT PenMargins(path, pen);
void newl(file file);
void seek(file f, int pos);
string verbatim(string s);
pen heavygray;
pen heavygrey;
void markuniform(picture pic=<default>, frame f, path g)(pair z(real t), real a, real b, int n);
void markuniform(picture pic=<default>, frame f, path g)(bool centered=<default>, int n, bool rotated=<default>);
real[] mintimes(path p);
real[] mintimes(path3 p);
bool straight(path p, int t);
bool straight(path3 p, int t);
pen makepen(path p);
real dotsize(pen p=<default>);
real[] curlSpecifier(guide g, int t);
real straightness(triple z0, triple c0, triple c1, triple z1);
real straightness(path3 p, int t);
real log10(real x);
real[] log10(real[] a);
pen paleblue;
bool prc0(string format=<default>);
string xasyKEY();
void xasyKEY(string s);
int CTZ(int a);
void _shipout(string prefix=<default>, frame f, frame preamble=<default>, string format=<default>, bool wait=<default>, bool view=<default>, transform t=<default>);
real barfactor;
pen Magenta;
real cos(real x);
real[] cos(real[] a);
pair cos(explicit pair z);
int intMax;
bool cyclic(guide g);
bool cyclic(path p);
bool cyclic(path3 p);
void printBytecode(<open>);
transform Rotate(transform)(pair z);
transform Rotate(transform t);
path subpath(path p, int a, int b);
path subpath(path p, real a, real b);
path3 subpath(path3 p, int a, int b);
path3 subpath(path3 p, real a, real b);
bool isnan(real x);
string jobname(string name);
void print_random_addresses(int n=<default>);
void attach(picture dest=<default>, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void attach(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
real[] quadraticroots(real a, real b, real c);
pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);
pen darkcyan;
string[] file3;
real[] maxtimes(path p);
real[] maxtimes(path3 p);
filltype FillDraw;
filltype FillDraw(real xmargin=<default>, real ymargin=<default>, pen fillpen=<default>, pen drawpen=<default>);
void initdefaults();
void erase(frame f);
string erase(string s, int pos, int n);
void erase(picture pic=<default>);
pair E;
int Ceil(real x);
pair I;
pair SSW;
pen magenta;
pair WSW;
pair N;
bool view();
void usersetting();
pair S;
real abs2(pair z);
real abs2(triple v);
void nowarn(string s);
transform rotate(real angle, pair z=<default>);
int quotient(int x, int y);
transform rotation(transform t);
pair W;
int rand();
pen ZapfChancery(string series=<default>, string shape=<default>);
int XOR(int a, int b);
void atupdate(void f());
void atupdate()();
void unfill(frame f, path[] g, bool copy=<default>);
void unfill(picture pic=<default>, path[] g, bool copy=<default>);
bool Bar(picture, path, pen, marginT(path, pen))(real size=<default>);
bool Bar(picture, path, pen, marginT(path, pen));
bool eol(file f);
pen zerowinding;
void atbreakpoint(string f(string, int, int, code));
void savedefaults()();
bool MidArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
bool MidArrow(picture, path, pen, marginT(path, pen));
bool MidArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
bool MidArcArrow(picture, path, pen, marginT(path, pen));
void grestore(frame f);
pair extension(pair p, pair q, pair p, pair q);
pen extendcap;
int ceil(real x);
pen thick(pen p=<default>);
pair left;
int Suppress;
file input(string name=<default>, bool check=<default>, string comment=<default>, string mode=<default>);
int SuppressQuiet;
real[] texsize(string s, pen p=<default>);
string nativeformat();
bool invisible(pen p);
pen invisible();
pen invisible;
bool CCW;
void usetypescript(string s, string encoding=<default>);
path randompath(int n, bool cumulate=<default>, guide join(... guide[])=<default>);
int system(string[] s);
int system(string s);
void bar(picture pic, pair a, pair d, pen p=<default>);
picture bar(pair a, pair d, pen p=<default>);
side NoSide;
file stdout;
transform Shift(transform t);
real fmod(real x, real y);
real offset(pen p);
pen rgb(pen p);
pen rgb(real r, real g, real b);
pen rgb(real[] a);
pen rgb(string s);
real inch;
bool ArcArrow(picture, path, pen, marginT(path, pen));
bool ArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
bool ArcArrows(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
bool ArcArrows(picture, path, pen, marginT(path, pen));
pen currentpen;
pair precontrol(path p, int t);
pair precontrol(path p, real t);
triple precontrol(path3 p, int t);
triple precontrol(path3 p, real t);
light currentlight;
pen royalblue;
picture currentpicture;
frame currentpatterns;
int JOIN_IN;
int JOIN_OUT;
projection currentprojection;
real orient(pair a, pair b, pair c);
real orient(triple a, triple b, triple c, triple d);
pen linetype(real[] pattern, real offset=<default>, bool scale=<default>, bool adjust=<default>);
real[] linetype(pen p=<default>);
pen linetype(string pattern, real offset=<default>, bool scale=<default>, bool adjust=<default>);
real xpart(pair z);
real xpart(triple v);
side Center;
real ypart(pair z);
real ypart(triple v);
real zpart(triple v);
frame orientation(frame);
pen Courier(string series=<default>, string shape=<default>);
real simpson(real f(real), real a, real b, real acc=<default>, real dxmax=<default>);
transform shift(transform t);
transform shift(pair z);
transform shift(real x, real y);
transform shift(frame f, pair align);
real asinh(real x);
real[] asinh(real[] a);
pen orange;
pen darkgray;
slice lastcut(path p, path knife);
pen darkgreen;
pen darkgrey;
transform xscale(real x);
transform shiftless(transform t);
real[][] shiftless(real[][] t);
transform yscale(real y);
void usleep(int microseconds);
real cosh(real x);
real[] cosh(real[] a);
position MidPoint;
real Sin(real deg);
void assert(bool b, string s=<default>);
pen Palatino(string series=<default>, string shape=<default>);
real incircle(pair a, pair b, pair c, pair d);
frame Landscape(frame f);
pen purple;
string italic(string s);
real atan(real x);
real[] atan(real[] a);
real acos(real x);
real[] acos(real[] a);
int popcount(int a);
pair minbound(pair a, pair b);
triple minbound(triple a, triple b);
pair minbound(pair[] a);
pair minbound(pair[][] a);
pair minbound(pair[][][] a);
triple minbound(triple[] a);
triple minbound(triple[][] a);
triple minbound(triple[][][] a);
void restore();
pen basealign(int n);
int basealign(pen p=<default>);
pen basealign;
int min(int a, int b);
int[] min(int a, int[] b);
int[] min(int[] a, int b);
int[] min(int[] a, int[] b);
int min(int[] a);
int min(int[][] a);
int min(int[][][] a);
real min(real a, real b);
real[] min(real a, real[] b);
real[] min(real[] a, real b);
real[] min(real[] a, real[] b);
real min(real[] a);
real min(real[][] a);
real min(real[][][] a);
string min(string a, string b);
string[] min(string a, string[] b);
string[] min(string[] a, string b);
string[] min(string[] a, string[] b);
string min(string[] a);
string min(string[][] a);
string min(string[][][] a);
pair min(pen p);
pair min(frame f);
pair min(explicit path p);
pair min(path[] p);
triple min(path3 p);
pair min(picture pic, bool user=<default>);
real min(... real[] a);
real min(real m, scaling s, coord[] c);
real min(real m, scaling s, coord[] c);
int min(... int[] a);
filltype RadialShade(pen penc, pen penr);
int search(int[] a, int key);
int search(real[] a, real key);
int search(string[] a, string key);
int search(void()()[] a, void key()(), bool less(void()(), void()()));
int search(picture[] a, picture key, bool less(picture, picture));
int search(real[] a, real key, bool less(real, real));
int search(guide[] a, guide key, bool less(guide, guide));
int search(object[] a, object key, bool less(object, object));
int search(pair[] a, pair key, bool less(pair, pair));
int search(coord[] a, coord key, bool less(coord, coord));
int search(Label[] a, Label key, bool less(Label, Label));
int search(frame[] a, frame key, bool less(frame, frame));
int search(coord[] a, coord key, bool less(coord, coord));
int search(Legend[] a, Legend key, bool less(Legend, Legend));
int search(int[] a, int key, bool less(int, int));
int search(bool3[] a, bool3 key, bool less(bool3, bool3));
int search(string[] a, string key, bool less(string, string));
int search(path[] a, path key, bool less(path, path));
int search(pen[] a, pen key, bool less(pen, pen));
int search(bool[] a, bool key, bool less(bool, bool));
int search(triple[] a, triple key, bool less(triple, triple));
int search(marker[] a, marker key, bool less(marker, marker));
filltype RadialShadeDraw(real xmargin=<default>, real ymargin=<default>, pen penc, pen penr, pen drawpen=<default>);
real sin(real x);
real[] sin(real[] a);
pair sin(explicit pair z);
pen deepcyan;
void restoredefaults();
path plus;
pair expi(real angle);
triple expi(real polar, real azimuth);
void endclip(frame f);
void endclip(picture pic=<default>);
pen opacity(real opacity=<default>, string blend=<default>);
real opacity(pen p);
real[] solve(real[][] a, real[] b, bool warn=<default>);
real[][] solve(real[][] a, real[][] b, bool warn=<default>);
int rename(string from, string to);
void DOSendl(file file);
string debugger(string file, int line, int column, code s=<default>);
string getc(file f);
bool debugging;
void shipout(string prefix=<default>, frame f, string format=<default>, bool wait=<default>, bool view=<default>, string options=<default>, string script=<default>, light light=<default>, projection P=<default>, transform t=<default>);
void shipout(string prefix=<default>, picture pic=<default>, frame orientation(frame)=<default>, string format=<default>, bool wait=<default>, bool view=<default>, string options=<default>, string script=<default>, light light=<default>, projection P=<default>);
void shipout3(string prefix, frame f, string format=<default>, real width, real height, real angle, real zoom, triple m, triple m, pair shift, pair margin, real[][] t, real[] background, triple[] lights, real[][] diffuse, real[][] specular, bool view=<default>);
void shipout3(string prefix, frame f, string format=<default>);
string getstring(string name=<default>, string default=<default>, string prompt=<default>, bool store=<default>);
int debuggerlines;
frame bbox(picture pic=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
frame pad(picture pic=<default>, real xsize=<default>, real ysize=<default>, filltype filltype=<default>);
real radians(real degrees);
bool pdf();
void _eval(string s, bool embedded, bool interactivewrite=<default>);
void _eval(code s, bool embedded);
path[][] textpath(string[] s, pen[] p);
void radialshade(frame f, path[] g, bool stroke=<default>, pen pena, pair a, real ra, bool extenda=<default>, pen penb, pair b, real rb, bool extendb=<default>, bool copy=<default>);
void radialshade(picture pic=<default>, path[] g, bool stroke=<default>, pen pena, pair a, real ra, bool extenda=<default>, pen penb, pair b, real rb, bool extendb=<default>, bool copy=<default>);
pair maxbound(pair a, pair b);
triple maxbound(triple a, triple b);
pair maxbound(pair[] a);
pair maxbound(pair[][] a);
pair maxbound(pair[][][] a);
triple maxbound(triple[] a);
triple maxbound(triple[][] a);
triple maxbound(triple[][][] a);
string Embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>);
pair postcontrol(path p, int t);
pair postcontrol(path p, real t);
triple postcontrol(path3 p, int t);
triple postcontrol(path3 p, real t);
int max(int a, int b);
int[] max(int a, int[] b);
int[] max(int[] a, int b);
int[] max(int[] a, int[] b);
int max(int[] a);
int max(int[][] a);
int max(int[][][] a);
real max(real a, real b);
real[] max(real a, real[] b);
real[] max(real[] a, real b);
real[] max(real[] a, real[] b);
real max(real[] a);
real max(real[][] a);
real max(real[][][] a);
string max(string a, string b);
string[] max(string a, string[] b);
string[] max(string[] a, string b);
string[] max(string[] a, string[] b);
string max(string[] a);
string max(string[][] a);
string max(string[][][] a);
pair max(pen p);
pair max(frame f);
pair max(explicit path p);
pair max(path[] p);
triple max(path3 p);
real max(real M, scaling s, coord[] c);
int max(... int[] a);
pair max(picture pic, bool user=<default>);
real max(... real[] a);
real max(real M, scaling s, coord[] c);
Label Label(Label L, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(string s, string size=<default>, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(Label L, explicit position position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(explicit pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label;
Label Label(string s=<default>, string size=<default>, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(string s, string size=<default>, pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
Label Label(Label L, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
string font(pen p=<default>);
pen font(string name, string options=<default>);
pen font(string encoding, string family, string series, string shape);
pen font(string name, real size, string options=<default>);
string outdirectory();
marker markthin(path g, pen p=<default>, real thin(real fraction)=<default>, filltype filltype=<default>);
int intMin;
pen white;
side RightSide;
string replace(string s, string[][] translate);
string replace(string s, string before, string after);
transform fixedscaling(picture pic=<default>, pair min, pair max, pen p=<default>, bool warn=<default>);
pen Symbol(string series=<default>, string shape=<default>);
slice firstcut(path p, path knife);
pen squarecap;
bool isometry(transform t);
pen squarepen;
pen deepyellow;
real barsize(pen p=<default>);
bool EndArrow(picture, path, pen, marginT(path, pen));
bool EndArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
bool EndArcArrow(picture, path, pen, marginT(path, pen));
bool EndArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, path[] b=<default>, pair[][] z=<default>, bool copy=<default>);
void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, path[] b=<default>, pair[][] z=<default>, bool copy=<default>);
void tensorshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z=<default>);
void tensorshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, path b=<default>, pair[] z=<default>);
string[] split(string s, string delimiter=<default>);
void addSaveFunction(void s()());
object embed3(string, frame, string, string, string, light, projection);
filltype NoFill;
real colatitude(triple v, bool warn=<default>);
void drawDisk(frame f, real[][] t, pen[] p, real opacity, real shininess, real metallic, real fresnel0);
void label(frame f, string s, string size, transform t, pair position, pair align, pen p);
void label(picture pic=<default>, Label L, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(pair origin, picture pic=<default>, Label L, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(frame f, Label L, pair position, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(picture pic=<default>, Label L, pair position, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(frame f, Label L, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(picture pic=<default>, Label L, explicit guide g, align align=<default>, pen p=<default>, filltype filltype=<default>);
void label(picture pic=<default>, Label L, explicit path g, align align=<default>, pen p=<default>, filltype filltype=<default>);
real fabs(real x);
real[] fabs(real[] a);
bool labels(frame f);
light light(pen diffuse=<default>, pen specular=<default>, pen background=<default>, real x, real y, real z);
light light(pen diffuse=<default>, pen specular=<default>, pen background=<default>, real specularfactor=<default> ... triple[] position);
light light(explicit light light);
light light(pen[] diffuse, pen[] specular=<default>, pen background=<default>, real specularfactor=<default>, triple[] position);
real remainder(real x, real y);
int byte(real x);
real camerafactor;
pen lightred;
real labelmargin;
real labelmargin(pen p=<default>);
pen lightblue;
pen lightgreen;
pair right;
string outformat(string format=<default>);
pen lightcyan;
pen lightmagenta;
pen lightyellow;
pen lightgray;
pen lightolive;
pen lightgrey;
string upcase(string s);
pen darkblue;
pen darkbrown;
path[] strokepath(path g, pen p=<default>);
real erf(real x);
void saveline(string name, string value, bool store=<default>);
pen fuchsia;
filltype filltype(int type=<default>, pen fillpen=<default>, pen drawpen=<default>, void fill2(frame f, path[] g, pen fillpen));
pen Bookman(string series=<default>, string shape=<default>);
path box(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path box(frame f, Label L, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path box(pair a, pair b);
frame[] fit(string prefix=<default>, picture[] pictures, string format=<default>, bool view=<default>, string options=<default>, string script=<default>, projection P=<default>);
void seekeof(file f);
path unitcircle;
pair[] conj(pair[] a);
pair[][] conj(pair[][] a);
pair conj(pair z);
pen deepgray;
pen deepgreen;
pen deepgrey;
marker[] Mark;
marker Mark(int n);
real aTan(real x);
void _begingroup3(frame f, string name, real compression, real granularity, bool closed, bool tessellate, bool dobreak, bool nobreak, triple center, int interaction);
path[] MarkPath;
string graphic(string name, string options=<default>);
real aCos(real x);
void texreset();
string graphicscale(real x);
int[] complement(int[] a, int n);
path[] complement(frame f, path[] g);
pen Cyan;
marginT NoMargin(path, pen);
marginT NoMargin(path, pen)();
path[][] _texpath(string[] s, pen[] p);
real sinh(real x);
real[] sinh(real[] a);
real[] _cputime();
position EndPoint;
hsv hsv(real h, real s, real v);
hsv hsv(pen p);
void deconstruct(frame f, frame preamble=<default>, transform t=<default>);
void deconstruct(picture pic=<default>);
int sgn(real x);
node node(void d(frame f, transform t, transform T, pair lb, pair rt), string key=<default>);
pair minAfterTransform(transform t, path[] p);
int seconds(string t=<default>, string format=<default>);
pen cyan;
pen grey;
real cm;
filltype Fill;
filltype Fill(real xmargin=<default>, real ymargin=<default>, pen p=<default>);
pen olive;
pen darkolive;
int ascii(string s);
real arcarrowangle;
real arcarrowfactor;
real mm;
real arcarrowsize(pen p=<default>);
real calculateScaling(string dir, coord[] coords, real size, bool warn=<default>);
real calculateScaling(string dir, coord[] coords, real size, bool warn=<default>);
real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=<default>);
real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=<default>);
triple gettriple(string name=<default>, triple default=<default>, string prompt=<default>, bool store=<default>);
void drawpixel(frame f, triple v, pen p, real width=<default>);
pen fontsize(real size, real lineskip);
real fontsize(pen p=<default>);
pen fontsize(real size);
void close(file f);
real lineskip(pen p=<default>);
pen dashed;
pair maxAfterTransform(transform t, path[] p);
int[][] triangulate(pair[] z);
void fill(frame f, path[] g, pen p=<default>, bool copy=<default>);
path fill(frame dest, frame src, filltype filltype=<default>, real xmargin=<default>, real ymargin=<default>);
void fill(picture pic=<default>, path[] g, pen p=<default>, bool copy=<default>);
void fill(pair origin, picture pic=<default>, path[] g, pen p=<default>);
pair midpoint(path p);
real exp(real x);
real[] exp(real[] a);
pair exp(explicit pair z);
pen linejoin(int n);
int linejoin(pen p=<default>);
real ldexp(real x, int e);
pen rgba(real[] a);
real[] rgba(pen p);
string time(string format=<default>);
string time(int seconds, string format=<default>);
void prepend(frame dest, frame src);
real pt;
settings settings;
int MoveQuiet;
marginT EndMargin(path, pen);
pen nullpen;
side LeftSide;
path nullpath;
guide[] copy(guide[] a, int depth=<default>);
real[] copy(real[] a, int depth=<default>);
triple[] copy(triple[] a, int depth=<default>);
bool[] copy(bool[] a, int depth=<default>);
real[][] copy(real[][] a, int depth=<default>);
pen[] copy(pen[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
object[] copy(object[] a, int depth=<default>);
marker[] copy(marker[] a, int depth=<default>);
Legend[] copy(Legend[] a, int depth=<default>);
pen[][] copy(pen[][] a, int depth=<default>);
path[] copy(path[] a, int depth=<default>);
string[] copy(string[] a, int depth=<default>);
void()()[] copy(void()()[] a, int depth=<default>);
int[] copy(int[] a, int depth=<default>);
string[][] copy(string[][] a, int depth=<default>);
frame[] copy(frame[] a, int depth=<default>);
pair[] copy(pair[] a, int depth=<default>);
bool3[] copy(bool3[] a, int depth=<default>);
coord[] copy(coord[] a, int depth=<default>);
Label[] copy(Label[] a, int depth=<default>);
picture[] copy(picture[] a, int depth=<default>);
pair[][] copy(pair[][] a, int depth=<default>);
real[] abs(pair[] a);
real[] abs(triple[] a);
real abs(real x);
real[] abs(real[] a);
real abs(pair z);
real abs(triple v);
int abs(int x);
pen pink;
real inches;
path ellipse(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path ellipse(frame f, Label L, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path ellipse(pair c, real a, real b);
pair getpair(string name=<default>, pair default=<default>, string prompt=<default>, bool store=<default>);
void axialshade(frame f, path[] g, bool stroke=<default>, pen pena, pair a, bool extenda=<default>, pen penb, pair b, bool extendb=<default>, bool copy=<default>);
void axialshade(picture pic=<default>, path[] g, bool stroke=<default>, pen pena, pair a, bool extenda=<default>, pen penb, pair b, bool extendb=<default>, bool copy=<default>);
string locale(string s=<default>);
real dirtime(path p, pair z);
void copyPairOrTriple(pairOrTriple dest, pairOrTriple src);
real[] colors(pen p);
void filloutside(picture pic=<default>, path[] g, pen p=<default>, bool copy=<default>);
void filloutside(frame f, path[] g, pen p=<default>, bool copy=<default>);
pen[] colorPen;
real _findroot(real f(real), real a, real b, real tolerance, real fa, real fb);
pen colorless(pen p);
pen solid;
string colorspace(pen p);
void warn(string s);
pen deepblue;
pen palered;
real[] map(real f(pair), pair[] a);
int[] map(int f(real), real[] a);
bool3[] map(bool3 f(bool3), bool3[] a);
frame[] map(frame f(frame), frame[] a);
coord[] map(coord f(coord), coord[] a);
Legend[] map(Legend f(Legend), Legend[] a);
pen[][] map(pen[] f(pen[]), pen[][] a);
triple[] map(triple f(triple), triple[] a);
pen[] map(pen f(pen), pen[] a);
coord[] map(coord f(coord), coord[] a);
Label[] map(Label f(Label), Label[] a);
pair[] map(pair f(pair), pair[] a);
object[] map(object f(object), object[] a);
string[] map(string f(string), string[] a);
picture[] map(picture f(picture), picture[] a);
void()()[] map(void f()()(void()()), void()()[] a);
pair[][] map(pair[] f(pair[]), pair[][] a);
real[] map(real f(real), real[] a);
marker[] map(marker f(marker), marker[] a);
int[] map(int f(int), int[] a);
string[][] map(string[] f(string[]), string[][] a);
bool[] map(bool f(bool), bool[] a);
path[] map(path f(path), path[] a);
real[][] map(real[] f(real[]), real[][] a);
guide[] map(guide f(guide), guide[] a);
path unstraighten(path p);
path3 unstraighten(path3 p);
void _image(frame f, real[][] data, pair initial, pair final, pen[] palette=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
void _image(frame f, pen[][] data, pair initial, pair final, transform t=<default>, bool copy=<default>, bool antialias=<default>);
void _image(frame f, pen f(int, int), int width, int height, pair initial, pair final, transform t=<default>, bool antialias=<default>);
pair arcpoint(path p, real L);
pen Pen(int n);
int rfind(string s, string t, int pos=<default>);
pair minratio(frame f);
pair minratio(triple[][] p, pair b);
pair minratio(path3 g);
int[] sequence(int n);
pen[][] sequence(pen[] f(int), int n);
coord[] sequence(coord f(int), int n);
object[] sequence(object f(int), int n);
marker[] sequence(marker f(int), int n);
Legend[] sequence(Legend f(int), int n);
int[] sequence(int f(int), int n);
string[][] sequence(string[] f(int), int n);
pair[] sequence(pair f(int), int n);
int[] sequence(int n, int m, int skip);
guide[] sequence(guide f(int), int n);
pen[] sequence(pen f(int), int n);
void()()[] sequence(void f()()(int), int n);
bool[] sequence(bool f(int), int n);
string[] sequence(string f(int), int n);
pair[][] sequence(pair[] f(int), int n);
bool3[] sequence(bool3 f(int), int n);
coord[] sequence(coord f(int), int n);
Label[] sequence(Label f(int), int n);
picture[] sequence(picture f(int), int n);
real[][] sequence(real[] f(int), int n);
real[] sequence(real f(int), int n);
int[] sequence(int n, int m);
triple[] sequence(triple f(int), int n);
path[] sequence(path f(int), int n);
frame[] sequence(frame f(int), int n);
triple minbezier(triple[][] p, triple b);
path trim(path g, real begin, real end=<default>);
marginT DotMargin(path, pen)(real begin, real end=<default>);
marginT DotMargin(path, pen);
marginT DotMargins(path, pen);
string string(int x);
string string(real x, int digits=<default>);
string cd(string s=<default>);
int size(guide g);
pair size(frame f);
int size(path p);
int size(path[] p);
int size(path3 p);
void size(picture dest, picture src);
pair size(picture pic, bool user=<default>);
void size(picture pic=<default>, transform t);
void size(picture pic=<default>, real x, real y=<default>, bool keepAspect=<default>);
void size(picture pic=<default>, real xsize, real ysize, pair min, pair max);
void clear(file f);
void clear(string file, int line);
void clear();
void clear(string file, string text);
pen mediumred;
pen mediumblue;
pen mediumgreen;
pen mediumcyan;
pen mediummagenta;
pair arcdir(path p, real L);
pen mediumyellow;
pen mediumgray;
string downcase(string s);
pen mediumgrey;
transform transform(pen p);
string readline(string prompt=<default>, string name=<default>, bool tabcompletion=<default>);
void beep();
pair relpoint(path p, real l);
pair[][] transpose(pair[][] a);
pen[][] transpose(pen[][] a);
string[][] transpose(string[][] a);
real[][] transpose(real[][] a);
pen overwrite(int n);
int overwrite(pen p=<default>);
pen linewidth(real x);
real linewidth(pen p=<default>);
transformation transformation(real[][] modelview);
transformation transformation(real[][] modelview, real[][] projection);
pair maxratio(frame f);
pair maxratio(triple[][] p, pair b);
pair maxratio(path3 g);
triple maxbezier(triple[][] p, triple b);
void layer(frame f);
void layer(picture pic=<default>);
void DOSnewl(file file);
pen cmyk(pen p);
pen cmyk(real c, real m, real y, real k);
pen blue;
pen evenodd;
int precision(file f=<default>, int digits=<default>);
path3 path3(triple[] pre, triple[] point, triple[] post, bool[] straight, bool cyclic);
bool piecewisestraight(path p);
bool piecewisestraight(path3 p);
void stop(string file, int line, code s=<default>);
void stop(string file, string text, code s=<default>);
void drawCylinder(frame f, real[][] t, pen[] p, real opacity, real shininess, real metallic, real fresnel0, bool core=<default>);
pair reldir(path p, real l);
pen TimesRoman(string series=<default>, string shape=<default>);
slice cut(path p, path knife, int n);
bool is3D(frame f);
bool is3D(string format=<default>);
void add(frame dest, frame src);
void add(picture dest=<default>, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(frame dest, frame src, pair position, pair align, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture pic=<default>, void d(frame f, transform t), bool exact=<default>);
void add(picture pic=<default>, void d(frame f, real[][] t, picture pic, projection P), bool exact=<default>);
void add(picture pic=<default>, void d(picture, real[][]), bool exact=<default>);
void add(picture dest, picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest, picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest=<default>, object F, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(frame dest, frame src, filltype filltype, bool above=<default>);
void add(frame dest, frame src, bool group, filltype filltype=<default>, bool above=<default>);
void add(frame dest, frame src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture dest=<default>, frame src, pair position=<default>, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void add(picture pic=<default>, Label L);
void add(picture pic=<default>, void d(picture, transform), bool exact=<default>);
void add(frame f, transform t=<default>, Label L);
void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
plain plain;
void purge(int divisor=<default>);
int Round(real x);
real sqrt(real x);
real[] sqrt(real[] a);
pair sqrt(explicit pair z);
string[] spinner;
real[] times(path p, real x, real fuzz=<default>);
real[] times(path p, explicit pair z, real fuzz=<default>);
void drawbeziertriangle(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, int digits, bool primitive=<default>);
void Draw(picture pic=<default>, path g, pen p=<default>);
filltype Draw;
void Draw(picture pic=<default>, explicit path[] g, pen p=<default>);
filltype Draw(real xmargin=<default>, real ymargin=<default>, pen p=<default>);
void tab(file file);
plain_scaling plain_scaling;
string file(string s);
plain_bounds plain_bounds;
string outprefix(string prefix=<default>);
object object(Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
object object(frame f);
object object(Label L);
file stdin;
void()()[] array(int n, void value()(), int depth=<default>);
bool[] array(int n, bool value, int depth=<default>);
string[] array(int n, string value, int depth=<default>);
pair[][] array(int n, pair[] value, int depth=<default>);
bool3[] array(int n, bool3 value, int depth=<default>);
coord[] array(int n, coord value, int depth=<default>);
Label[] array(int n, Label value, int depth=<default>);
picture[] array(int n, picture value, int depth=<default>);
real[][] array(int n, real[] value, int depth=<default>);
real[] array(int n, real value, int depth=<default>);
triple[] array(int n, triple value, int depth=<default>);
path[] array(int n, path value, int depth=<default>);
frame[] array(int n, frame value, int depth=<default>);
pen[][] array(int n, pen[] value, int depth=<default>);
coord[] array(int n, coord value, int depth=<default>);
object[] array(int n, object value, int depth=<default>);
marker[] array(int n, marker value, int depth=<default>);
Legend[] array(int n, Legend value, int depth=<default>);
int[] array(int n, int value, int depth=<default>);
string[][] array(int n, string[] value, int depth=<default>);
pair[] array(int n, pair value, int depth=<default>);
guide[] array(int n, guide value, int depth=<default>);
pen[] array(int n, pen value, int depth=<default>);
string[] array(string s);
bool BeginBar(picture, path, pen, marginT(path, pen));
bool BeginBar(picture, path, pen, marginT(path, pen))(real size=<default>);
triple perp(triple v, triple u);
int find(bool[] a, int n=<default>);
int find(string s, string t, int pos=<default>);
position BeginPoint;
marginT BeginMargin(path, pen);
path buildcycle(... path[] p);
bool BeginArrow(picture, path, pen, marginT(path, pen));
bool BeginArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
marginT BeginPenMargin(path, pen);
int round(real x);
marginT BeginDotMargin(path, pen);
bool BeginArcArrow(picture, path, pen, marginT(path, pen));
bool BeginArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
pen roundcap;
void buildRestoreThunk()();
pen roundjoin;
int sourceline(string file, string text);
void buildRestoreDefaults()();
path roundbox(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
path roundbox(frame f, Label L, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
real asin(real x);
real[] asin(real[] a);
pair endpoint(path p);
real latitude(triple v, bool warn=<default>);
int sum(int[] a);
real sum(real[] a);
pair sum(pair[] a);
triple sum(triple[] a);
int sum(bool[] a);
void xmap(string key, transform t=<default>);
real inf;
real arctime(path p, real l);
real arctime(path3 p, real dval);
pen palemagenta;
void draw(frame f, triple[][] p, triple center, bool straight, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors, int interaction, int digits, bool primitive=<default>);
void draw(frame f, triple[] p, real[] knot, real[] weights=<default>, pen p);
void draw(frame f, triple[][] p, real[] uknot, real[] vknot, real[][] weights=<default>, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] colors);
void draw(frame f, triple[] v, int[][] vi, triple center=<default>, triple[] n, int[][] ni, pen[] p, real opacity, real shininess, real metallic, real fresnel0, pen[] c=<default>, int[][] ci=<default>, int interaction);
void draw(picture pic=<default>, path[] g, pen fillrule=<default>, pen[] p);
object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), pair position, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
void draw(frame f, explicit path[] g, pen p=<default>);
void draw(picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
void draw(pair origin, picture pic=<default>, guide[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, explicit path[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
void draw(pair origin, picture pic=<default>, explicit path[] g, pen p=<default>, Label legend=<default>, marker marker=<default>);
object draw(picture pic=<default>, Label L, path e(frame dest, frame src=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>), real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
void draw(frame f, guide[] g, pen p=<default>);
void draw(frame f, path g, pen p=<default>);
void draw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(pair origin, picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(frame f, path g, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen)));
int mantissaBits;
real identity(real x);
real[] identity(real[] a);
transform identity();
real[][] identity(int n);
transform identity;
real[][] identity4;
marker[] MarkFill;
pen pattern(string s);
string pattern(pen p);
transform invert;
transform inverse(transform t);
real[][] inverse(real[][] a);
int[] MarkFillable;
pair unit(pair z);
triple unit(triple v);
triple min3(frame f);
triple min3(pen p);
void begin(picture pic=<default>, string name, string id=<default>, bool visible=<default>);
int CLZ(int a);
arrowhead DefaultHead;
void beginclip(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
void beginclip(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
void begingroup(frame f);
void begingroup(picture pic=<default>);
marker nomarker;
pair beginpoint(path p);
real azimuth(triple v, bool warn=<default>);
real angle(pair z, bool warn=<default>);
real angle(transform t);
pair ENE;
frame pack(pair align=<default> ... object[] inset);
void gsave(frame f);
void write(file file=<default>, string s=<default>, bool x, void suffix(file)=<default> ... bool[]);
void write(file file=<default>, string s=<default>, explicit bool[] a ... bool[][]);
void write(file file=<default>, bool[][]);
void write(file file=<default>, bool[][][]);
void write(file file=<default>, string s=<default>, int x, void suffix(file)=<default> ... int[]);
void write(file file=<default>, string s=<default>, explicit int[] a ... int[][]);
void write(file file=<default>, int[][]);
void write(file file=<default>, int[][][]);
void write(file file=<default>, string s=<default>, real x, void suffix(file)=<default> ... real[]);
void write(file file=<default>, string s=<default>, explicit real[] a ... real[][]);
void write(file file=<default>, real[][]);
void write(file file=<default>, real[][][]);
void write(file file=<default>, string s=<default>, pair x, void suffix(file)=<default> ... pair[]);
void write(file file=<default>, string s=<default>, explicit pair[] a ... pair[][]);
void write(file file=<default>, pair[][]);
void write(file file=<default>, pair[][][]);
void write(file file=<default>, string s=<default>, triple x, void suffix(file)=<default> ... triple[]);
void write(file file=<default>, string s=<default>, explicit triple[] a ... triple[][]);
void write(file file=<default>, triple[][]);
void write(file file=<default>, triple[][][]);
void write(file file=<default>, string s=<default>, string x, void suffix(file)=<default> ... string[]);
void write(file file=<default>, string s=<default>, explicit string[] a ... string[][]);
void write(file file=<default>, string[][]);
void write(file file=<default>, string[][][]);
void write(file file=<default>, string s, void suffix(file)=<default>);
void write(file file=<default>, string s=<default>, transform x, void suffix(file)=<default> ... transform[]);
void write(file file=<default>, string s=<default>, guide x, void suffix(file)=<default> ... guide[]);
void write(file file=<default>, string s=<default>, pen x, void suffix(file)=<default> ... pen[]);
void write(file file, string s=<default>, explicit guide[] x, void suffix(file)=<default>);
void write(string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>);
void write(string s=<default>, explicit path[] x, void suffix(file)=<default>);
void write(file file, void suffix(file)=<default>);
void write(file file=<default>, string s=<default>, pen[] p);
void write(void suffix(file)=<default>);
void write(file file, string s=<default>, explicit path[] x, void suffix(file)=<default>);
void write(file file=<default>, align align, void suffix(file)=<default>);
void write(pairOrTriple a);
void write(file file, string s=<default>, cputime c, string format=<default>, void suffix(file)=<default>);
void write(string s=<default>, bool3 b, void suffix(file)=<default>);
void write(file file, string s=<default>, bool3 b, void suffix(file)=<default>);
void write(string s=<default>, explicit guide[] x, void suffix(file)=<default>);
void write(file file=<default>, Label L, void suffix(file)=<default>);
void save()();
marginT EndPenMargin(path, pen);
pair NNE;
real[] tridiagonal(real[] a, real[] b, real[] c, real[] f);
pen Dotted;
pen Dotted(pen p=<default>);
pair dir(real degrees);
pair dir(explicit pair z);
triple dir(explicit triple z);
triple dir(real colatitude, real longitude);
pair dir(path p, int t, int sign=<default>, bool normalize=<default>);
pair dir(path p, real t, bool normalize=<default>);
triple dir(path3 p, int t, int sign=<default>, bool normalize=<default>);
triple dir(path3 p, real t, bool normalize=<default>);
pair dir(path p);
pair dir(path p, path q);
int[][] diagonal(... int[]);
real[][] diagonal(... real[]);
pair[][] diagonal(... pair[]);
real reltime(path p, real l);
void marknodes(picture pic=<default>, frame f, path g);
real newton(int iterations=<default>, real f(real), real fprime(real), real x, bool verbose=<default>);
real newton(int iterations=<default>, real f(real), real fprime(real), real x1, real x2, bool verbose=<default>);
string TeXify(string s);
bool3 default;
pair[] controlSpecifier(guide g, int t);
void defaultpen(pen p);
pen defaultpen();
pen defaultpen;
void defaultpen(real w);
transform Slant(transform t);
triple max3(frame f);
triple max3(pen p);
string defaultformat(int n, string trailingzero=<default>, bool fixed=<default>, bool signed=<default>);
string defaultformat;
pen dashdotted;
string defaultseparator;
string asydir();
string defaultfilename;
real longitude(triple v, bool warn=<default>);
bool Blank(picture, path, pen, marginT(path, pen));
tensionSpecifier tensionSpecifier(guide g, int t);
marker marker(frame f=<default>, void markroutine(picture pic=<default>, frame f, path g)=<default>, bool above=<default>);
marker marker(path[] g, void markroutine(picture pic=<default>, frame f, path g)=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
int Move;
string location();
string locatefile(string file, bool full=<default>);
pen dotted;
string blend(pen p);
arrowhead HookHead;
arrowhead HookHead(real dir=<default>, real barb=<default>);
marker[] concat(... marker[][]);
real[] concat(... real[][]);
picture[] concat(... picture[][]);
pair[] concat(... pair[][]);
object[] concat(... object[][]);
pen[] concat(... pen[][]);
coord[] concat(... coord[][]);
Label[] concat(... Label[][]);
path[] concat(... path[][]);
coord[] concat(... coord[][]);
Legend[] concat(... Legend[][]);
int[] concat(... int[][]);
void()()[] concat(... void()()[][]);
bool3[] concat(... bool3[][]);
string[] concat(... string[][]);
triple[] concat(... triple[][]);
frame[] concat(... frame[][]);
guide[] concat(... guide[][]);
bool[] concat(... bool[][]);
int OR(int a, int b);
real log1p(real x);
real[] log1p(real[] a);
real infinity;
bool alias(pair[][] a, pair[][] b);
bool alias(guide[] a, guide[] b);
bool alias(marginT a, marginT b);
bool alias(coord[] a, coord[] b);
bool alias(autoscaleT a, autoscaleT b);
bool alias(align a, align b);
bool alias(Legend[] a, Legend[] b);
bool alias(processtime a, processtime b);
bool alias(pair[] a, pair[] b);
bool alias(scaling a, scaling b);
bool alias(coord a, coord b);
bool alias(light a, light b);
bool alias(node a, node b);
bool alias(Label a, Label b);
bool alias(schur a, schur b);
bool alias(int[] a, int[] b);
bool alias(string[][] a, string[][] b);
bool alias(slice a, slice b);
bool alias(freezableBounds a, freezableBounds b);
bool alias(transformation a, transformation b);
bool alias(coords3 a, coords3 b);
bool alias(object[] a, object[] b);
bool alias(marker a, marker b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
bool alias(scaleT a, scaleT b);
bool alias(ScaleT a, ScaleT b);
bool alias(side a, side b);
bool alias(cputime a, cputime b);
bool alias(string[] a, string[] b);
bool alias(frame[] a, frame[] b);
bool alias(coords2 a, coords2 b);
bool alias(scaling a, scaling b);
bool alias(pairOrTriple a, pairOrTriple b);
bool alias(object a, object b);
bool alias(marker[] a, marker[] b);
bool alias(bool[] a, bool[] b);
bool alias(void()()[] a, void()()[] b);
bool alias(pen[][] a, pen[][] b);
bool alias(filltype a, filltype b);
bool alias(simplex a, simplex b);
bool alias(coord[] a, coord[] b);
bool alias(projection a, projection b);
bool alias(Label[] a, Label[] b);
bool alias(arrowhead a, arrowhead b);
bool alias(path[] a, path[] b);
bool alias(triple[] a, triple[] b);
bool alias(coord a, coord b);
bool alias(bounds a, bounds b);
bool alias(Legend a, Legend b);
bool alias(position a, position b);
bool alias(realschur a, realschur b);
bool alias(real[] a, real[] b);
bool alias(pen[] a, pen[] b);
bool alias(hsv a, hsv b);
bool alias(coords2 a, coords2 b);
bool alias(picture a, picture b);
bool alias(picture[] a, picture[] b);
real pi;
int getint(string name=<default>, int default=<default>, string prompt=<default>, bool store=<default>);
int bitreverse(int a, int bits);
bool IgnoreAspect;
void postscript(frame f, string s);
void postscript(frame f, string s, pair min, pair max);
void postscript(picture pic=<default>, string s);
void postscript(picture pic=<default>, string s, pair min, pair max);
transform slant(real s);
void breakpoint(code s=<default>);
void breakpoints();
void endgroup(frame f);
void endgroup(picture pic=<default>);
void endgroup3(frame f);
int Floor(real x);
pair gamma(explicit pair z);
real gamma(real x);
real pow10(real x);
real[] pow10(real[] a);
real[][] AtA(real[][] a);
real byteinv(int x);
real bp;
int[] sort(int[] a);
int[][] sort(int[][] a);
real[] sort(real[] a);
real[][] sort(real[][] a);
string[] sort(string[] a);
string[][] sort(string[][] a);
coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
object[] sort(object[] a, bool less(object, object), bool stable=<default>);
marker[] sort(marker[] a, bool less(marker, marker), bool stable=<default>);
Legend[] sort(Legend[] a, bool less(Legend, Legend), bool stable=<default>);
path[] sort(path[] a, bool less(path, path), bool stable=<default>);
pen[][] sort(pen[][] a, bool less(pen[], pen[]), bool stable=<default>);
pair[][] sort(pair[][] a, bool less(pair[], pair[]), bool stable=<default>);
pen[] sort(pen[] a, bool less(pen, pen), bool stable=<default>);
bool[] sort(bool[] a, bool less(bool, bool), bool stable=<default>);
void()()[] sort(void()()[] a, bool less(void()(), void()()), bool stable=<default>);
frame[] sort(frame[] a, bool less(frame, frame), bool stable=<default>);
bool3[] sort(bool3[] a, bool less(bool3, bool3), bool stable=<default>);
coord[] sort(coord[] a, bool less(coord, coord), bool stable=<default>);
Label[] sort(Label[] a, bool less(Label, Label), bool stable=<default>);
picture[] sort(picture[] a, bool less(picture, picture), bool stable=<default>);
int[] sort(int[] a, bool less(int, int), bool stable=<default>);
string[][] sort(string[][] a, bool less(string[], string[]), bool stable=<default>);
real[] sort(real[] a, bool less(real, real), bool stable=<default>);
string[] sort(string[] a, bool less(string, string), bool stable=<default>);
pair[] sort(pair[] a, bool less(pair, pair), bool stable=<default>);
real[][] sort(real[][] a, bool less(real[], real[]), bool stable=<default>);
triple[] sort(triple[] a, bool less(triple, triple), bool stable=<default>);
guide[] sort(guide[] a, bool less(guide, guide), bool stable=<default>);
pen salmon;
bool ignore;
pen Pentype(int n);
pen chartreuse;
void latticeshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, transform t=<default>, bool copy=<default>);
void latticeshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[][] p, bool copy=<default>);
pair[] pairs(real[] x, real[] y);
void eval(code s, bool embedded=<default>);
void eval(string s, bool embedded=<default>);
bool Arrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
bool Arrow(picture, path, pen, marginT(path, pen));
void drawTube(frame f, triple[] g, real width, pen[] p, real opacity, real shininess, real metallic, real fresnel0, triple min, triple max, bool core=<default>);
bool Arrows(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>);
bool Arrows(picture, path, pen, marginT(path, pen));
int tell(file f);
pen Yellow;
pair up;
guide reverse(guide g);
string reverse(string s);
path reverse(path p);
path3 reverse(path3 p);
triple[] reverse(triple[] a);
int[] reverse(int[] a);
real[] reverse(real[] a);
int[] reverse(int n);
string[] reverse(string[] a);
pair[] reverse(pair[] a);
bool[] reverse(bool[] a);
void _labelpath(frame f, string s, string size, path g, string justify, pair offset, pen p);
int floor(real x);
void resetdefaultpen();
real aSin(real x);
pen darkred;
transform Scale(transform t);
pen mean(pen[] p, real opacity(real[])=<default>);
pen[] mean(pen[][] palette, real opacity(real[])=<default>);
string mktemp(string s);
void sleep(int seconds);
void drawstrokepath(picture pic=<default>, path g, pen strokepen, pen p=<default>);
void arrow(picture pic=<default>, Label L=<default>, pair b, pair dir, real length=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
picture arrow(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, bool forwards=<default>, marginT margin(path, pen)=<default>, bool center=<default>);
void unitsize(picture pic=<default>, real x, real y=<default>, real z=<default>);
picture arrow2(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>);
path unitsquare;
real arrowdir;
real arrowbarb;
pen yellow;
int delete(string s);
pen miterjoin;
arrowhead SimpleHead;
real arrowangle;
real arrowlength;
pen miterlimit(real x);
real miterlimit(pen p=<default>);
real arrowfactor;
real arrowsize(pen p=<default>);
real Tan(real deg);
real arrowsizelimit;
real arrow2sizelimit;
real arrowhookfactor;
real arrowtexfactor;
void comma(file file);
void deletepreamble();
real[] arrowbasepoints(path base, path left, path right, real default=<default>);
path arrowbase(path r, pair y, real t, real size);
int choose(int n, int k);
real hypot(real x, real y);
path[] _strokepath(path g, pen p=<default>);
void pause(string w=<default>);
int ocgindex;
pen springgreen;
pen brown;
bool scale(pen p);
transform scale(real x);
transform scale(real x, real y);
real[][] scale(real x, real y, real z);
scaleT scaleT(real T(real x), real Tinv(real x), bool logarithmic=<default>, bool automin=<default>, bool automax=<default>);
string baseline(string s, string template=<default>);
int[] findall(bool[] a);
real[][] scale3(real s);
int AND(int a, int b);
real polar(triple v, bool warn=<default>);
real radius(path p, real t);
real radius(path3 p, real t);
real radius(triple z0, triple c0, triple c1, triple z1, real t);
transform scaleless(transform t);
void makedraw(frame f, path g, pen p, int depth=<default>);
simplex simplex(real[] c, real[][] A, real[] b, bool phase1=<default>);
simplex simplex(real[] c, real[][] A, int[] s, real[] b);
simplex simplex;
real nan;
pair down;
path arc(pair c, real r, real angle1, real angle2);
path arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>);
path arc(pair c, real r, real angle1, real angle2, bool direction);
real[] cubicroots(real a, real b, real c, real d);
pen green;
real tan(real x);
real[] tan(real[] a);
pen longdashed;
pair point(guide g, int t);
pair point(path p, int t);
pair point(path p, real t);
triple point(path3 p, int t);
triple point(path3 p, real t);
pair point(picture pic=<default>, pair dir, bool user=<default>);
pair point(object F, pair dir, transform t=<default>);
pair point(frame f, pair dir);
void progress(bool3 init=<default>);
pen longdashdotted;
void usepackage(string s, string options=<default>);
void drawarrow(frame f, arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>, bool forwards=<default>, marginT margin(path, pen)=<default>, bool center=<default>);
void drawarrow2(frame f, arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>);
pen fillrule(int n);
int fillrule(pen p);
pair ESE;
pair project(triple v, real[][] t);
bool prc(string format=<default>);
projection projection(triple camera, triple up=<default>, triple target=<default>, triple normal=<default>, real zoom=<default>, real angle=<default>, pair viewportshift=<default>, bool showtarget=<default>, bool autoadjust=<default>, bool center=<default>, transformation projector(triple camera, triple up, triple target));
void endl(file file);
path diamond;
marginT TrueMargin(path, pen)(real begin, real end=<default>);
real bezier(real a, real b, real c, real d, real t);
pair bezier(pair a, pair b, pair c, pair d, real t);
triple bezier(triple a, triple b, triple c, triple d, real t);
pair SSE;
pair bezierP(pair a, pair b, pair c, pair d, real t);
triple bezierP(triple a, triple b, triple c, triple d, real t);
pair bezierPP(pair a, pair b, pair c, pair d, real t);
triple bezierPP(triple a, triple b, triple c, triple d, real t);
real[] _projection();
pair bezierPPP(pair a, pair b, pair c, pair d);
triple bezierPPP(triple a, triple b, triple c, triple d);
real Jn(int n, real x);
int randMax;
path nurb(pair z0, pair z1, pair z2, pair z3, real w0, real w1, real w2, real w3, int m);
align NoAlign;
bool EndBar(picture, path, pen, marginT(path, pen));
bool EndBar(picture, path, pen, marginT(path, pen))(real size=<default>);
Legend Legend(string label, pen plabel=<default>, pen p=<default>, frame mark=<default>, bool above=<default>);
real Yn(int n, real x);
int NOT(int a);
pen[] monoPen;
bool CW;
bool all(bool[] a);
real atanh(real x);
real[] atanh(real[] a);
frame UpsideDown(frame f);
pair realmult(pair z, pair w);
triple realmult(triple u, triple v);
real acosh(real x);
real[] acosh(real[] a);
real realEpsilon;
pair NW;
real norm(real[] a);
real norm(real[][] a);
real norm(triple[][] a);
int length(guide g);
int length(string s);
real length(pair z);
real length(triple v);
int length(path p);
int length(path3 p);
pair SW;
void flush(file f);
pen thin();
pen palecyan;
void warning(string s, string t, bool position=<default>);
frame legend(picture pic=<default>, int perline=<default>, real xmargin=<default>, real ymargin=<default>, real linelength=<default>, real hskip=<default>, real vskip=<default>, real maxwidth=<default>, real maxheight=<default>, bool hstretch=<default>, bool vstretch=<default>, pen p=<default>);
picture legend(Legend[] Legend, int perline=<default>, real linelength, real hskip, real vskip, real maxwidth=<default>, real maxheight=<default>, bool hstretch=<default>, bool vstretch=<default>);
real Degrees(real radians);
picture legenditem(Legend legenditem, real linelength);
real legendhskip;
real legendvskip;
pen darkmagenta;
real change2(triple[][] a);
real legendmargin;
bool None(picture, path, pen, marginT(path, pen));
real dotfactor;
real legendlinelength;
string minipage(string s, real width=<default>);
real legendmaxrelativewidth;
real cross(explicit pair z, explicit pair w);
triple cross(triple u, triple v);
path cross(int n, bool round=<default>, real r=<default>);
string operator +(string a, string b);
int operator +(int a, int b);
int[] operator +(int a, int[] b);
int[] operator +(int[] a, int b);
int[] operator +(int[] a, int[] b);
int[][] operator +(int[][] a, int[][] b);
int operator +(int a);
int[] operator +(int[] a);
real operator +(real a, real b);
real[] operator +(real a, real[] b);
real[] operator +(real[] a, real b);
real[] operator +(real[] a, real[] b);
real[][] operator +(real[][] a, real[][] b);
real operator +(real a);
real[] operator +(real[] a);
pair operator +(pair a, pair b);
pair[] operator +(pair a, pair[] b);
pair[] operator +(pair[] a, pair b);
pair[] operator +(pair[] a, pair[] b);
pair[][] operator +(pair[][] a, pair[][] b);
pair operator +(pair a);
pair[] operator +(pair[] a);
triple operator +(triple a, triple b);
triple[] operator +(triple a, triple[] b);
triple[] operator +(triple[] a, triple b);
triple[] operator +(triple[] a, triple[] b);
triple[][] operator +(triple[][] a, triple[][] b);
triple operator +(triple a);
triple[] operator +(triple[] a);
pen operator +(pen a, pen b);
transform operator +(transform a, transform b);
pen operator +(pen p, real w);
pen[] operator +(pen a, pen[] b);
pen operator +(real w, pen p);
string operator +(... string[] a);
marginT operator +(path, pen)(marginT ma(path, pen), marginT mb(path, pen));
pen[] operator +(pen[] a, pen b);
int operator -(int a, int b);
int[] operator -(int a, int[] b);
int[] operator -(int[] a, int b);
int[] operator -(int[] a, int[] b);
int[][] operator -(int[][] a, int[][] b);
int operator -(int a);
int[] operator -(int[] a);
int[][] operator -(int[][] a);
real operator -(real a, real b);
real[] operator -(real a, real[] b);
real[] operator -(real[] a, real b);
real[] operator -(real[] a, real[] b);
real[][] operator -(real[][] a, real[][] b);
real operator -(real a);
real[] operator -(real[] a);
real[][] operator -(real[][] a);
pair operator -(pair a, pair b);
pair[] operator -(pair a, pair[] b);
pair[] operator -(pair[] a, pair b);
pair[] operator -(pair[] a, pair[] b);
pair[][] operator -(pair[][] a, pair[][] b);
pair operator -(pair a);
pair[] operator -(pair[] a);
pair[][] operator -(pair[][] a);
triple operator -(triple a, triple b);
triple[] operator -(triple a, triple[] b);
triple[] operator -(triple[] a, triple b);
triple[] operator -(triple[] a, triple[] b);
triple[][] operator -(triple[][] a, triple[][] b);
triple operator -(triple a);
triple[] operator -(triple[] a);
triple[][] operator -(triple[][] a);
bool primitive();
int operator *(int a, int b);
int[] operator *(int a, int[] b);
int[] operator *(int[] a, int b);
int[] operator *(int[] a, int[] b);
int[][] operator *(int a, int[][] b);
int[][] operator *(int[][] a, int b);
real operator *(real a, real b);
real[] operator *(real a, real[] b);
real[] operator *(real[] a, real b);
real[] operator *(real[] a, real[] b);
real[][] operator *(real a, real[][] b);
real[][] operator *(real[][] a, real b);
pair operator *(pair a, pair b);
pair[] operator *(pair a, pair[] b);
pair[] operator *(pair[] a, pair b);
pair[] operator *(pair[] a, pair[] b);
pair[][] operator *(pair a, pair[][] b);
pair[][] operator *(pair[][] a, pair b);
triple[] operator *(real a, triple[] b);
triple[][] operator *(real a, triple[][] b);
triple[] operator *(triple[] a, real b);
triple[][] operator *(triple[][] a, real b);
pen operator *(real a, pen b);
pen operator *(pen a, real b);
transform operator *(transform a, transform b);
pair operator *(transform t, pair z);
path operator *(transform t, path g);
pen operator *(transform t, pen p);
frame operator *(transform t, frame f);
frame operator *(real[][] t, frame f);
real[] operator *(real[][] a, real[] b);
real[] operator *(real[] a, real[][] b);
int[][] operator *(int[][] a, int[][] b);
real[][] operator *(real[][] a, real[][] b);
pair[][] operator *(pair[][] a, pair[][] b);
triple operator *(real[][] t, triple v);
triple operator *(real x, triple v);
triple operator *(triple v, real x);
path3 operator *(real[][] t, path3 g);
side operator *(real x, side s);
Label operator *(real[][] t, Label L);
picture operator *(transform t, picture orig);
object operator *(transform t, explicit object F);
path[] operator *(transform t, explicit path[] p);
Label operator *(transform t, Label L);
pair[] operator *(transform t, pair[] z);
bounds operator *(transform t, bounds b);
picture operator *(real[][] t, picture orig);
bool operator init();
int operator init();
real operator init();
string operator init();
pair operator init();
triple operator init();
transform operator init();
guide operator init();
path operator init();
path3 operator init();
pen operator init();
frame operator init();
file operator init();
marginT operator init();
autoscaleT operator init();
align operator init();
processtime operator init();
filltype operator init();
simplex operator init();
projection operator init();
arrowhead operator init();
slice operator init();
transformation operator init();
coords3 operator init();
marker operator init();
hsv operator init();
coords2 operator init();
picture operator init();
coords2 operator init();
scaling operator init();
pairOrTriple operator init();
object operator init();
scaling operator init();
coord operator init();
light operator init();
node operator init();
Label operator init();
schur operator init();
coord operator init();
bounds operator init();
Legend operator init();
position operator init();
realschur operator init();
bool3 operator init();
scaleT operator init();
ScaleT operator init();
side operator init();
cputime operator init();
real operator cast(int);
pair operator cast(int);
pair operator cast(real);
path operator cast(pair);
guide operator cast(pair);
guide operator cast(path);
path operator cast(guide);
file operator cast(null);
real[] operator cast(int[]);
pair[] operator cast(int[]);
pair[] operator cast(real[]);
real[][] operator cast(int[][]);
pair[][] operator cast(int[][]);
pair[][] operator cast(real[][]);
bool operator cast(file);
bool[] operator cast(file);
bool[][] operator cast(file);
bool[][][] operator cast(file);
int operator cast(file);
int[] operator cast(file);
int[][] operator cast(file);
int[][][] operator cast(file);
real operator cast(file);
real[] operator cast(file);
real[][] operator cast(file);
real[][][] operator cast(file);
pair operator cast(file);
pair[] operator cast(file);
pair[][] operator cast(file);
pair[][][] operator cast(file);
triple operator cast(file);
triple[] operator cast(file);
triple[][] operator cast(file);
triple[][][] operator cast(file);
string operator cast(file);
string[] operator cast(file);
string[][] operator cast(file);
string[][][] operator cast(file);
guide operator cast(cycleToken tok);
guide operator cast(curlSpecifier spec);
guide operator cast(tensionSpecifier t);
align operator cast(side side);
guide[] operator cast(path[] g);
pair operator cast(pairOrTriple a);
triple operator cast(pairOrTriple a);
frame operator cast(object F);
hsv operator cast(pen p);
bool3[] operator cast(bool[] b);
position operator cast(pair x);
object operator cast(Label L);
Label operator cast(object F);
pair operator cast(position P);
object operator cast(frame f);
guide[] operator cast(pair[] z);
path[] operator cast(guide[] g);
bool operator cast(bool3 b);
align operator cast(pair dir);
path[] operator cast(guide g);
path[] operator cast(pair[] z);
align operator cast(triple dir);
path[] operator cast(path p);
bool[] operator cast(bool3[] b);
bool3 operator cast(bool b);
position operator cast(int x);
object operator cast(string s);
pen operator cast(hsv hsv);
position operator cast(real x);
Label operator cast(string s);
pen deepred;
bool error(file f);
string operator ecast(int);
string operator ecast(real);
string operator ecast(pair);
string operator ecast(triple);
int operator ecast(string);
real operator ecast(string);
pair operator ecast(string);
triple operator ecast(string);
int operator ecast(real);
int[] operator ecast(real[]);
real[] operator ecast(string[] a);
int[] operator ecast(string[] a);
pair operator tuple(real x, real y);
triple operator tuple(real x, real y, real z);
transform operator tuple(real x, real y, real xx, real xy, real yx, real yy);
real operator /(real a, real b);
real[] operator /(real a, real[] b);
real[] operator /(real[] a, real b);
real[] operator /(real[] a, real[] b);
real[][] operator /(real[][] a, real b);
pair operator /(pair a, pair b);
pair[] operator /(pair a, pair[] b);
pair[] operator /(pair[] a, pair b);
pair[] operator /(pair[] a, pair[] b);
pair[][] operator /(pair[][] a, pair b);
triple[] operator /(triple[] a, real b);
real operator /(int a, int b);
real[] operator /(int[] a, int b);
real[] operator /(int a, int[] b);
real[] operator /(int[] a, int[] b);
triple operator /(triple v, real x);
path[] texpath(string s, pen p, bool tex=<default>, bool bbox=<default>);
path[] texpath(Label L, bool tex=<default>, bool bbox=<default>);
bool uptodate();
int operator #(int a, int b);
int[] operator #(int a, int[] b);
int[] operator #(int[] a, int b);
int[] operator #(int[] a, int[] b);
int operator %(int a, int b);
int[] operator %(int a, int[] b);
int[] operator %(int[] a, int b);
int[] operator %(int[] a, int[] b);
real operator %(real a, real b);
real[] operator %(real a, real[] b);
real[] operator %(real[] a, real b);
real[] operator %(real[] a, real[] b);
bool operator ^(bool a, bool b);
bool[] operator ^(bool a, bool[] b);
bool[] operator ^(bool[] a, bool b);
bool[] operator ^(bool[] a, bool[] b);
int operator ^(int a, int b);
int[] operator ^(int a, int[] b);
int[] operator ^(int[] a, int b);
int[] operator ^(int[] a, int[] b);
real operator ^(real a, real b);
real[] operator ^(real a, real[] b);
real[] operator ^(real[] a, real b);
real[] operator ^(real[] a, real[] b);
pair operator ^(pair a, pair b);
pair[] operator ^(pair a, pair[] b);
pair[] operator ^(pair[] a, pair b);
pair[] operator ^(pair[] a, pair[] b);
transform operator ^(transform t, int n);
real operator ^(real x, int y);
pair operator ^(pair z, int y);
bool operator ==(bool a, bool b);
bool[] operator ==(bool a, bool[] b);
bool[] operator ==(bool[] a, bool b);
bool[] operator ==(bool[] a, bool[] b);
bool operator ==(bool[][] a, bool[][] b);
bool operator ==(int a, int b);
bool[] operator ==(int a, int[] b);
bool[] operator ==(int[] a, int b);
bool[] operator ==(int[] a, int[] b);
bool operator ==(int[][] a, int[][] b);
bool operator ==(real a, real b);
bool[] operator ==(real a, real[] b);
bool[] operator ==(real[] a, real b);
bool[] operator ==(real[] a, real[] b);
bool operator ==(real[][] a, real[][] b);
bool operator ==(pair a, pair b);
bool[] operator ==(pair a, pair[] b);
bool[] operator ==(pair[] a, pair b);
bool[] operator ==(pair[] a, pair[] b);
bool operator ==(pair[][] a, pair[][] b);
bool operator ==(triple a, triple b);
bool[] operator ==(triple a, triple[] b);
bool[] operator ==(triple[] a, triple b);
bool[] operator ==(triple[] a, triple[] b);
bool operator ==(triple[][] a, triple[][] b);
bool operator ==(string a, string b);
bool[] operator ==(string a, string[] b);
bool[] operator ==(string[] a, string b);
bool[] operator ==(string[] a, string[] b);
bool operator ==(string[][] a, string[][] b);
bool[] operator ==(pen[] a, pen[] b);
bool operator ==(pen a, pen b);
bool operator ==(transform a, transform b);
bool operator ==(file a, file b);
bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
bool operator ==(scaleT a, scaleT b);
bool operator ==(ScaleT a, ScaleT b);
bool operator ==(side a, side b);
bool operator ==(cputime a, cputime b);
bool operator ==(coords2 a, coords2 b);
bool operator ==(scaling a, scaling b);
bool operator ==(pairOrTriple a, pairOrTriple b);
bool operator ==(object a, object b);
bool operator ==(filltype a, filltype b);
bool operator ==(simplex a, simplex b);
bool operator ==(projection a, projection b);
bool operator ==(arrowhead a, arrowhead b);
bool operator ==(coord a, coord b);
bool operator ==(bounds a, bounds b);
bool operator ==(Legend a, Legend b);
bool operator ==(position a, position b);
bool operator ==(realschur a, realschur b);
bool operator ==(hsv a, hsv b);
bool operator ==(coords2 a, coords2 b);
bool operator ==(picture a, picture b);
bool operator ==(bool3 a, bool b);
bool operator ==(marginT a, marginT b);
bool operator ==(autoscaleT a, autoscaleT b);
bool operator ==(align a, align b);
bool operator ==(processtime a, processtime b);
bool operator ==(scaling a, scaling b);
bool operator ==(coord a, coord b);
bool operator ==(light a, light b);
bool operator ==(node a, node b);
bool operator ==(Label a, Label b);
bool operator ==(schur a, schur b);
bool operator ==(bool a, bool3 b);
bool operator ==(slice a, slice b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(transformation a, transformation b);
bool operator ==(coords3 a, coords3 b);
bool operator ==(marker a, marker b);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
bool[] operator !=(bool[] a, bool b);
bool[] operator !=(bool[] a, bool[] b);
bool operator !=(bool[][] a, bool[][] b);
bool operator !=(int a, int b);
bool[] operator !=(int a, int[] b);
bool[] operator !=(int[] a, int b);
bool[] operator !=(int[] a, int[] b);
bool operator !=(int[][] a, int[][] b);
bool operator !=(real a, real b);
bool[] operator !=(real a, real[] b);
bool[] operator !=(real[] a, real b);
bool[] operator !=(real[] a, real[] b);
bool operator !=(real[][] a, real[][] b);
bool operator !=(pair a, pair b);
bool[] operator !=(pair a, pair[] b);
bool[] operator !=(pair[] a, pair b);
bool[] operator !=(pair[] a, pair[] b);
bool operator !=(pair[][] a, pair[][] b);
bool operator !=(triple a, triple b);
bool[] operator !=(triple a, triple[] b);
bool[] operator !=(triple[] a, triple b);
bool[] operator !=(triple[] a, triple[] b);
bool operator !=(triple[][] a, triple[][] b);
bool operator !=(string a, string b);
bool[] operator !=(string a, string[] b);
bool[] operator !=(string[] a, string b);
bool[] operator !=(string[] a, string[] b);
bool operator !=(string[][] a, string[][] b);
bool[] operator !=(pen[] a, pen[] b);
bool operator !=(pen a, pen b);
bool operator !=(transform a, transform b);
bool operator !=(file a, file b);
bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
bool operator !=(scaleT a, scaleT b);
bool operator !=(ScaleT a, ScaleT b);
bool operator !=(side a, side b);
bool operator !=(cputime a, cputime b);
bool operator !=(coords2 a, coords2 b);
bool operator !=(scaling a, scaling b);
bool operator !=(pairOrTriple a, pairOrTriple b);
bool operator !=(object a, object b);
bool operator !=(filltype a, filltype b);
bool operator !=(simplex a, simplex b);
bool operator !=(projection a, projection b);
bool operator !=(arrowhead a, arrowhead b);
bool operator !=(coord a, coord b);
bool operator !=(bounds a, bounds b);
bool operator !=(Legend a, Legend b);
bool operator !=(position a, position b);
bool operator !=(realschur a, realschur b);
bool operator !=(hsv a, hsv b);
bool operator !=(coords2 a, coords2 b);
bool operator !=(picture a, picture b);
bool operator !=(bool3 a, bool b);
bool operator !=(marginT a, marginT b);
bool operator !=(autoscaleT a, autoscaleT b);
bool operator !=(align a, align b);
bool operator !=(processtime a, processtime b);
bool operator !=(scaling a, scaling b);
bool operator !=(coord a, coord b);
bool operator !=(light a, light b);
bool operator !=(node a, node b);
bool operator !=(Label a, Label b);
bool operator !=(schur a, schur b);
bool operator !=(bool a, bool3 b);
bool operator !=(slice a, slice b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(transformation a, transformation b);
bool operator !=(coords3 a, coords3 b);
bool operator !=(marker a, marker b);
bool operator <(int a, int b);
bool[] operator <(int a, int[] b);
bool[] operator <(int[] a, int b);
bool[] operator <(int[] a, int[] b);
bool operator <(real a, real b);
bool[] operator <(real a, real[] b);
bool[] operator <(real[] a, real b);
bool[] operator <(real[] a, real[] b);
bool operator <(string a, string b);
bool[] operator <(string a, string[] b);
bool[] operator <(string[] a, string b);
bool[] operator <(string[] a, string[] b);
bool operator <=(int a, int b);
bool[] operator <=(int a, int[] b);
bool[] operator <=(int[] a, int b);
bool[] operator <=(int[] a, int[] b);
bool operator <=(real a, real b);
bool[] operator <=(real a, real[] b);
bool[] operator <=(real[] a, real b);
bool[] operator <=(real[] a, real[] b);
bool operator <=(string a, string b);
bool[] operator <=(string a, string[] b);
bool[] operator <=(string[] a, string b);
bool[] operator <=(string[] a, string[] b);
bool operator <=(coord a, coord b);
bool operator <=(coord a, coord b);
void srand(int seed);
bool operator >(int a, int b);
bool[] operator >(int a, int[] b);
bool[] operator >(int[] a, int b);
bool[] operator >(int[] a, int[] b);
bool operator >(real a, real b);
bool[] operator >(real a, real[] b);
bool[] operator >(real[] a, real b);
bool[] operator >(real[] a, real[] b);
bool operator >(string a, string b);
bool[] operator >(string a, string[] b);
bool[] operator >(string[] a, string b);
bool[] operator >(string[] a, string[] b);
bool operator >=(int a, int b);
bool[] operator >=(int a, int[] b);
bool[] operator >=(int[] a, int b);
bool[] operator >=(int[] a, int[] b);
bool operator >=(real a, real b);
bool[] operator >=(real a, real[] b);
bool[] operator >=(real[] a, real b);
bool[] operator >=(real[] a, real[] b);
bool operator >=(string a, string b);
bool[] operator >=(string a, string[] b);
bool[] operator >=(string[] a, string b);
bool[] operator >=(string[] a, string[] b);
bool operator >=(coord a, coord b);
bool operator >=(coord a, coord b);
filltype UnFill(real xmargin=<default>, real ymargin=<default>);
filltype UnFill;
real degrees(pair z, bool warn=<default>);
real degrees(real radians);
bool[] operator !(bool[] a);
bool operator !(bool b);
path[] operator ^^(path p, path q);
path[] operator ^^(explicit path[] p, path q);
path[] operator ^^(path p, explicit path[] q);
path[] operator ^^(explicit path[] p, explicit path[] q);
guide operator ::(... guide[]);
pen Helvetica(string series=<default>, string shape=<default>);
transform reflect(pair a, pair b);
bool Bars(picture, path, pen, marginT(path, pen));
bool Bars(picture, path, pen, marginT(path, pen))(real size=<default>);
void none(file file);
int factorial(int n);
real log(real x);
real[] log(real[] a);
pair log(explicit pair z);
guide operator ..(... guide[]);
guide operator ..(... guide[])(tensionSpecifier t);
path polygon(int n);
guide operator --(... guide[]);
guide operator ---(... guide[]);
pen NewCenturySchoolBook(string series=<default>, string shape=<default>);
void()()[] saveFunctions;
bool operator &(bool a, bool b);
bool[] operator &(bool a, bool[] b);
bool[] operator &(bool[] a, bool b);
bool[] operator &(bool[] a, bool[] b);
path operator &(path p, path q);
path3 operator &(path3 p, path3 q);
path operator &(path p, cycleToken tok);
bool operator |(bool a, bool b);
bool[] operator |(bool a, bool[] b);
bool[] operator |(bool[] a, bool b);
bool[] operator |(bool[] a, bool[] b);
string texify(string s);
guide operator controls(pair zout, pair zin);
guide operator controls(pair z);
bool empty(frame f);
tensionSpecifier operator tension(real tout, real tin, bool atleast);
tensionSpecifier operator tension(real t, bool atLeast);
void end(picture pic=<default>);
curlSpecifier operator curl(real gamma, int p);
guide operator spec(pair z, int p);
string substr(string s, int pos, int n=<default>);
pen paleyellow;
file output(string name=<default>, bool update=<default>, string comment=<default>, string mode=<default>);
pen ZapfDingbats(string series=<default>, string shape=<default>);
real tanh(real x);
real[] tanh(real[] a);
real interp(real a, real b, real t);
pair interp(explicit pair a, explicit pair b, real t);
triple interp(triple a, triple b, real t);
pen interp(pen a, pen b, real t);
void mapArray(string From, string To);
frame Seascape(frame f);
bool interior(int windingnumber, pen fillrule);
real[] intersect(path p, path q, real fuzz=<default>);
real[] intersect(path3 p, path3 q, real fuzz=<default>);
real[] intersect(path3 p, triple[][] p, real fuzz=<default>);
bool interactive();
real[][] intersections(path p, path q, real fuzz=<default>);
real[] intersections(path p, explicit pair a, explicit pair b, real fuzz=<default>);
real[][] intersections(path3 p, path3 q, real fuzz=<default>);
real[][] intersections(path3 p, triple[][] p, real fuzz=<default>);
int animate(string args=<default>, string file=<default>, string format=<default>);
void generate_random_backtrace();
real RELEASE;
pair intersectionpoint(path p, path q, real fuzz=<default>);
pair[] intersectionpoints(path p, path q, real fuzz=<default>);
pair[] intersectionpoints(explicit path[] p, explicit path[] q, real fuzz=<default>);
void asy(string format, bool overwrite=<default> ... string[] s);
bool latex();
bool adjust(pen p);
pen adjust(pen p, real arclength, bool cyclic);
pair Align;
void exit();
real[] uniform(real a, real b, int n);
void type(string type, string name);
pair viewportsize;
pair viewportmargin;
string VERSION;
real insphere(triple a, triple b, triple c, triple d, triple e);
void drawSphere(frame f, real[][] t, bool half=<default>, pen[] p, real opacity, real shininess, real metallic, real fresnel0, int type);
void filldraw(picture pic=<default>, path[] g, pen fillpen=<default>, pen drawpen=<default>);
void filldraw(frame f, path[] g, pen fillpen=<default>, pen drawpen=<default>);
real dot(real[] a, real[] b);
pair dot(pair[] a, pair[] b);
real dot(explicit pair z, explicit pair w);
real dot(triple u, triple v);
void dot(picture pic=<default>, Label[] L=<default>, explicit path g, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
marker dot(pen p=<default>, filltype filltype=<default>);
void dot(picture pic=<default>, pair z, pen p=<default>, filltype filltype=<default>);
void dot(frame f, pair z, pen p=<default>, filltype filltype=<default>);
void dot(picture pic=<default>, Label L, pen p=<default>, filltype filltype=<default>);
void dot(picture pic=<default>, Label[] L=<default>, pair[] z, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
void dot(picture pic=<default>, path[] g, pen p=<default>, filltype filltype=<default>);
marker dot;
void dot(picture pic=<default>, Label L, pair z, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
void list(string s, bool imports=<default>);
pair NNW;
string phantom(string s);
void atexit(void f());
void atexit()();
real getreal(string name=<default>, real default=<default>, string prompt=<default>, bool store=<default>);
int convert(string args=<default>, string file=<default>, string format=<default>);
pair WNW;
pen palegray;
pen palegreen;
pen palegrey;
void clip(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
void clip(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, bool copy=<default>);
marginT Margin(path, pen)(real begin, real end=<default>);
marginT Margin(path, pen);
position Relative(real position);
side Relative(explicit pair align);
marginT Margins(path, pen);
pair truepoint(picture pic=<default>, pair dir, bool user=<default>);
real arclength(path p);
real arclength(pair z0, pair c0, pair c1, pair z1);
real arclength(path3 p);
real arclength(triple z0, triple c0, triple c1, triple z1);
bool finite(real x);
bool finite(pair z);
bool finite(triple v);
void updatefunction();
bool implicitshipout;
void _draw(frame f, path g, pen p);
void _draw(frame f, path3 g, triple center=<default>, pen[] p, real opacity, real shininess, real metallic, real fresnel0, int interaction=<default>);
void _draw(picture pic, path g, pen p, marginT margin(path, pen));
frame align(frame f, pair align);
object align(object F, pair align);
path[] align(path[] g, transform t=<default>, pair position, pair align, pen p=<default>);
real unitrand();
string[] history(string name, int n=<default>);
string[] history(int n=<default>);
coord[] maxcoords(coord[] in, bool operator <=(coord, coord));
coord[] maxcoords(coord[] in, bool operator <=(coord, coord));
pen AvantGarde(string series=<default>, string shape=<default>);
frame enclose(string prefix=<default>, object F, string format=<default>);
int count;
real atan2(real y, real x);
bool inside(explicit path[] g, pair z, pen fillrule=<default>);
bool inside(path g, pair z, pen fillrule=<default>);
int inside(path p, path q, pen fillrule=<default>);
pair inside(path p, pen fillrule=<default>);
pair rectify(pair dir);
arrowhead TeXHead;
bool initialized(int a);
bool initialized(real a);
bool initialized(pair a);
bool initialized(triple a);
path[] margin(path[] g, real xmargin, real ymargin);
pair relative(picture pic=<default>, pair z);
real erfc(real x);
int windingnumber(path[] p, pair z);
real expansionfactor;
void addArrow(picture pic, arrowhead arrowhead, path g, pen p, real size, real angle, filltype filltype, real position);
void exitfunction();
pen gray(pen p);
pen gray(real gray);
pen gray;
real relativedistance(real theta, real phi, real t, bool atleast);
path circle(pair c, real r);
void overloadedMessage(file file);
pen deepmagenta;
real circlescale;
string math(string s);
real circleprecision;
int Allow;
real determinant(real[][] a);
void functionshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, string shader=<default>, bool copy=<default>);
void functionshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, string shader, bool copy=<default>);
pen red;
pair[] dirSpecifier(guide g, int t);
void abort(string s=<default>);
bool Aspect;
string hex(pen p);
int hex(string s);
path brace(pair a, pair b, real amplitude=<default>);
void deactivatequote(picture pic=<default>);
string format(string format, int x, string locale=<default>);
string format(string format, bool forcemath=<default>, string separator, real x, string locale=<default>);
string format(string format=<default>, bool forcemath=<default>, real x, string locale=<default>);
real[][][] _schur(real[][] a);
pair[][][] _schur(pair[][] a);
real expm1(real x);
real[] expm1(real[] a);
void activatequote(picture pic=<default>);
int undefined;
transform zeroTransform;
string ask(string prompt);
frame[] fit2(picture[] pictures, picture all);
pen linecap(int n);
int linecap(pen p=<default>);
string outname();
void newpage(frame f);
void newpage(picture pic=<default>);
pen fontcommand(string s);
real bracemidangle;
pair accel(path p, int t, int sign=<default>);
pair accel(path p, real t);
triple accel(path3 p, int t, int sign=<default>);
triple accel(path3 p, real t);
frame Portrait(frame f);
real braceinnerangle;
real braceouterangle;
void tex(frame f, string s);
void tex(frame f, string s, pair min, pair max);
void tex(picture pic=<default>, string s);
void tex(picture pic=<default>, string s, pair min, pair max);
real bracedefaultratio;
bool prconly(string format=<default>);
pen Black;
triple size3(frame f);
void size3(picture pic=<default>, real x, real y=<default>, real z=<default>, bool keepAspect=<default>);
bool eof(file f);
frame dotframe(pen p=<default>, filltype filltype=<default>);
frame dotframe;
real realMax;
pair NE;
real realMin;
realschur schur(real[][] a);
schur schur(pair[][] a);
path nib(pen p);
file _outpipe;
void gouraudshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, pair[] z, int[] edges, bool copy=<default>);
void gouraudshade(frame f, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, int[] edges, bool copy=<default>);
void gouraudshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, pair[] z, int[] edges, bool copy=<default>);
void gouraudshade(picture pic=<default>, path[] g, bool stroke=<default>, pen fillrule=<default>, pen[] p, int[] edges, bool copy=<default>);
pair[] fft(pair[] a, int sign=<default>);
pair[][] fft(pair[][] a, int sign=<default>);
pair[][][] fft(pair[][][] a, int sign=<default>);
pair SE;
pen nobasealign;
real animationdelay;
animation operator init();
frame NoBox(frame f);
frame BBox(frame)(real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
void annotate(picture pic=<default>, string title, string text, pair position);
void babel(string s);
path removeDuplicates(path p);
path uncycle(path p, real t);
path[] bezulate(path[] p);
real[][] intersections(pair a, pair b, path p);
void connect(path[] paths, path[] result, path[] patch);
int countIntersections(path[] p, pair start, pair end);
real duplicateFuzz;
path subdivide(path p);
bool isDuplicate(pair a, pair b, real relSize);
bool checkSegment(path g, pair p, pair q);
path section(path p, real t1, real t2, bool loop=<default>);
real fuzz;
real maxrefinements;
path[][] containmentTree(path[] paths);
binarytree searchtree(... int[] keys);
object draw(picture pic=<default>, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=<default>, bool condensed=<default>);
void draw(picture pic=<default>, binarytree tree, real minDist=<default>, real nodeMargin=<default>, pen p=<default>, bool condensed=<default>);
real nodeMarginDefault;
key key(int n, bool active=<default>);
binarytree binarytree(... key[] keys);
binarytreeNode binarytreeNode(int key);
key nil;
real minDistDefault;
binarytreeNode operator init();
key operator init();
binarytree operator init();
key operator cast(int n);
int operator cast(key k);
int[] operator cast(key[] k);
line intersection(face a, face b);
real epsilon;
splitface split(face a, face cut, projection P);
face operator init();
line operator init();
half operator init();
splitface operator init();
bsp operator init();
picture operator cast(face f);
face operator cast(path3 p);
void add(picture pic=<default>, face[] faces, projection P=<default>);
sCAD operator init();
list_data Set2;
list_data YlOrBr;
list_data YlGn;
list_data BuPu;
list_data tab20;
list_data tab20b;
list_data tab20c;
seg_data gist_earth;
seg_data gist_ncar;
seg_data gist_stern;
list_data PuBuGn;
seg_data hot;
list_data Blues;
seg_data autumn;
list_data PuBu;
list_data plasma;
seg_data nipy_spectral;
seg_data spring;
list_data Set3;
list_data Dark2;
seg_data bone;
seg_data hsv;
list_data bwr;
list_data viridis;
list_data Reds;
list_data inferno;
seg_data copper;
seg_data pink;
list_data YlOrRd;
seg_data gray;
list_data RdYlGn;
seg_data CMRmap;
seg_data winter;
list_data Greys;
list_data Purples;
list_data BuGn;
list_data Oranges;
list_data RdGy;
seg_data binary;
list_data magma;
list_data cividis;
seg_data operator init();
list_data operator init();
list_data BrBG;
list_data seismic;
list_data Greens;
list_data YlGnBu;
list_data PuRd;
real[] makeMappingArray(int N, triple[] data, real gamma=<default>);
seg_data coolwarm;
list_data RdPu;
list_data RdBu;
list_data twilight;
list_data twilight_shifted;
seg_data wistia;
list_data brg;
list_data Pastel1;
list_data Pastel2;
list_data GnBu;
list_data Accent;
list_data PuOr;
list_data Spectral;
list_data PiYG;
list_data OrRd;
seg_data cool;
list_data PRGn;
list_data Set1;
list_data tab10;
list_data Paired;
seg_data jet;
seg_data summer;
list_data RdYlBu;
surface surface(vertex[][] g);
weighted operator init();
bucket operator init();
vertex operator init();
object operator init();
vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
real eps;
segment case1(pair p0, pair p1, int edge);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen[] p);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen p=<default>);
pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
pen[] extend(pen[] palette, pen below, pen above);
guide[][] connect(picture pic, pair[][][] points, real[] c, guide join(... guide[]));
segment case2(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge);
void collect(pair[][][] points, real[] c);
segment case3(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
segment checktriangle(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
segment operator init();
void addseg(pair[][] gds, segment seg);
void fill(picture pic=<default>, guide[][] g, pen[][] palette);
guide[][] contour(picture pic=<default>, pair[][] z, real[][] f, real[][] midpoint=<default>, real[] c, guide join(... guide[])=<default>);
guide[][] contour(picture pic=<default>, real[][] f, real[][] midpoint=<default>, pair a, pair b, real[] c, guide join(... guide[])=<default>);
guide[][] contour(picture pic=<default>, real f(real, real), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(picture pic=<default>, real f(pair), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(picture pic=<default>, pair[] z, real[] f, real[] c, guide join(... guide[])=<default>);
real eps;
void draw(TreeNode root, pair pos);
real treeNodeStep;
void drawAll(TreeNode node, frame f);
real layout(int level, TreeNode node);
TreeNode operator init();
void add(TreeNode child, TreeNode parent);
real treeLevelStep;
real treeMinNodeWidth;
TreeNode makeNode(TreeNode parent=<default>, frame f);
TreeNode makeNode(TreeNode parent=<default>, Label label);
string link(string label, string text=<default>);
string embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>);
string embedplayer(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>);
string link(string label, string text=<default>);
string embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>, string image=<default>);
string hyperlink(string url, string text);
real gluonratio;
real gluonamplitude;
void drawGluon(picture pic=<default>, path p, real amp=<default>, real width=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
void drawGhost(picture pic=<default>, path p, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
void drawVertex(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertexO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void drawVertexX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertexBox(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertexBoxO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void drawVertexOX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void drawVertexTriangle(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertexTriangleO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void drawVertexBoxX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
pen doublelinepen;
real doublelinespacing;
void drawDoubleLine(picture pic=<default>, path p, pen fgpen=<default>, real dlspacing=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
void drawScalar(picture pic=<default>, path p, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
bool overpaint;
path photon(path p, real amp=<default>, real width=<default>);
pen photonpen;
real photonratio;
real photonamplitude;
string includegraphicscommand;
pen momarrowpen;
real momarrowsize(pen p=<default>);
real momarrowlength;
real momarrowoffset;
real momarrowmargin;
real momarrowfactor;
bool XYAlign;
pen vertexpen;
real vertexsize;
path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
void drawPhoton(picture pic=<default>, path p, real amp=<default>, real width=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
bool YAlign;
pen backgroundpen;
pen scalarpen;
pen fermionpen;
pen bigvertexpen;
real bigvertexsize;
real minvertexangle;
void drawMomArrow(picture pic=<default>, path p, align align, position pos=<default>, real offset=<default>, real length=<default>, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real margin=<default>);
void fmdefaults();
real linemargin;
pen ghostpen;
void drawFermion(picture pic=<default>, path p, pen fgpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool erasebg=<default>, pen bgpen=<default>, real vertexangle=<default>, real margin=<default>);
bool currentarrow(picture, path, pen, marginT(path, pen));
bool currentmomarrow(picture, path, pen, marginT(path, pen));
bool appendsuffix;
path gluon(path p, real amp=<default>, real width=<default>);
pen gluonpen;
Dir Left;
block roundrectangle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real ds=<default>, real dw=<default>, real minwidth=<default>, real minheight=<default>);
block diamond(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real ds=<default>, real dw=<default>, real height=<default>, real minwidth=<default>, real minheight=<default>);
void draw(picture pic=<default>, block block, pen p=<default>);
real minblockwidth;
real minblockheight;
real defaultexcursion;
path path(pair[] point ... flowdir[] dir);
Dir Up;
real mincirclediameter;
flowdir Vertical;
block rectangle(object header, object body, pair center=<default>, pen headerpen=<default>, pen bodypen=<default>, pen drawpen=<default>, real dx=<default>, real minheaderwidth=<default>, real minheaderheight=<default>, real minbodywidth=<default>, real minbodyheight=<default>);
block rectangle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real minwidth=<default>, real minheight=<default>);
block parallelogram(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real slope=<default>, real minwidth=<default>, real minheight=<default>);
block blockconnector(block, block)(picture pic, transform t, pen p=<default>, marginT margin(path, pen)=<default>);
block circle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dr=<default>, real mindiameter=<default>);
flowdir operator init();
block operator init();
Dir operator init();
block operator --(block b1, Label label);
block operator --(block b1, Dir dir);
block operator --(block b, bool arrowbar(picture, path, pen, marginT(path, pen)));
flowdir Horizontal;
block bevel(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dh=<default>, real dw=<default>, real minwidth=<default>, real minheight=<default>);
Dir Right;
Dir Down;
int[] numarray;
point midpoint(segment s);
point midpoint(side side);
point isotomicconjugate(triangle t, point M);
bool Finite(explicit point z);
real rd(real x, real y, real z);
point circumcenter(point A, point B, point C);
point circumcenter(triangle t);
circle circumcircle(point A, point B, point C);
circle circumcircle(triangle t);
point point(coordsys R, pair p, real m=<default>);
point point(explicit pair p, real m);
point point(coordsys R, explicit point M, real m=<default>);
point point(explicit vector u);
point point(circle c, abscissa l);
point point(ellipse el, abscissa l);
point point(parabola p, abscissa l);
point point(hyperbola h, abscissa l);
point point(explicit conic co, abscissa l);
point point(line l, abscissa x);
point point(line l, explicit real x);
point point(line l, explicit int x);
point point(explicit circle c, explicit real x);
point point(explicit circle c, explicit int x);
point point(explicit ellipse el, explicit real x);
point point(explicit ellipse el, explicit int x);
point point(explicit parabola p, explicit real x);
point point(explicit parabola p, explicit int x);
point point(explicit hyperbola h, explicit real x);
point point(explicit hyperbola h, explicit int x);
point point(explicit conic co, explicit real x);
point point(explicit conic co, explicit int x);
point point(arc a, abscissa l);
point point(arc a, real x);
pair point(explicit arc a, int x);
point point(explicit mass m);
point point(explicit vertex V);
point point(trilinear tri);
point point(circle c, point M);
point point(circle c, explicit vector v);
bool finite(explicit point p);
void dot(picture pic=<default>, Label L, explicit point Z, align align=<default>, string format=<default>, pen p=<default>);
real dot(point A, point B);
real dot(point A, explicit pair B);
real dot(explicit pair A, point B);
void dot(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>);
void dot(picture pic=<default>, triangle t, pen p=<default>);
real[] realquarticroots(real a, real b, real c, real d, real e);
point origin;
point origin(coordsys R=<default>);
void draw(picture pic=<default>, Label L=<default>, line l, bool dirA=<default>, bool dirB=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen[] p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
void draw(picture pic=<default>, Label[] L=<default>, line[] l, align align=<default>, pen p, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label[] legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
void draw(picture pic=<default>, Label L=<default>, circle c, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, ellipse el, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, parabola parabola, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, hyperbola h, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, explicit conic co, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, Label L=<default>, arc a, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, Label legend=<default>, marker marker=<default>);
void draw(picture pic=<default>, triangle t, pen p=<default>, marker marker=<default>);
void draw(picture pic=<default>, triangle[] ts, pen p=<default>, marker marker=<default>);
coordsys defaultcoordsys;
string defaultmassformat;
line radicalline(circle c1, circle c2);
point radicalcenter(circle c1, circle c2);
point radicalcenter(circle c1, circle c2, circle c3);
ellipse ellipse(point F1, point F2, real a);
ellipse ellipse(point F1, point F2, point M);
ellipse ellipse(point C, real a, real b, real angle=<default>);
ellipse ellipse(bqe bqe);
ellipse ellipse(point M1, point M2, point M3, point M4, point M5);
path arctopath(arc a, int n);
bool inside(ellipse el, point M);
bool inside(parabola p, point M);
int ellipsenodesnumber(real a, real b);
int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir);
int ellipsenodesnumberfactor;
bool byfoci;
transform reflect(line l);
transform reflect(line l1, line l2, bool safe=<default>);
real[] bangles(picture pic=<default>, parabola p);
real[][] bangles(picture pic=<default>, hyperbola h);
abscissa relabscissa(real x);
abscissa relabscissa(int x);
abscissa relabscissa(line l, point M);
abscissa relabscissa(circle c, point M);
abscissa relabscissa(ellipse el, point M);
abscissa relabscissa(conic co, point M);
abscissa relabscissa(arc a, point M);
circle incircle(point A, point B, point C);
circle incircle(triangle t);
mass masscenter(... mass[] M);
vector unit(point M);
vector unit(vector u);
line Ox(coordsys R=<default>);
line Ox;
conic conic(point F, line l, real e);
conic conic(point M1, point M2, point M3, point M4, point M5);
conic conic(bqe bqe);
bool defined(point P);
string conictype(bqe bqe);
triangle antipedal(triangle t, point M);
void clipdraw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, real xmargin=<default>, real ymargin=<default>, Label legend=<default>, marker marker=<default>);
real perpfactor;
int conicnodesfactor;
int conicnodesnumber(conic co, real angle1, real angle2, bool dir=<default>);
line altitude(vertex V);
line altitude(side side);
point isogonalconjugate(triangle t, point M);
point isogonal(side side, point M);
line isogonal(vertex V, point M);
triangle isogonal(triangle t, point M);
line hline(coordsys R=<default>);
line hline;
int[] tricoef(side side);
path arcfromfocus(conic co, real angle1, real angle2, int n=<default>, bool direction=<default>);
line sector(int n=<default>, int p=<default>, line l1, line l2, real angle=<default>, bool sharp=<default>);
path arcfromcenter(ellipse el, real angle1, real angle2, bool direction=<default>, int n=<default>);
path arcfromcenter(hyperbola h, real angle1, real angle2, int n=<default>, bool direction=<default>);
path arcfromcenter(explicit conic co, real angle1, real angle2, int n, bool direction=<default>);
line vline(coordsys R=<default>);
line vline;
vector vector(coordsys R=<default>, pair v);
vector vector(point M);
real[] intersect(path g, explicit pair p, real fuzz=<default>);
real[] intersect(path g, explicit point P, real fuzz=<default>);
int sgnd(real x);
int sgnd(int x);
circle excircle(point A, point B, point C);
circle excircle(side side);
point orthocenter(point A, point B, point C);
point orthocenter(triangle t);
line extend(line l);
point intersectionpoint(line l1, line l2);
pair[] intersectionpoints(pair A, pair B, real a, real b, real c, real d, real f, real g);
pair[] intersectionpoints(pair A, pair B, real[] equation);
point[] intersectionpoints(line l, path g);
point[] intersectionpoints(triangle t, line l, bool extended=<default>);
point[] intersectionpoints(line l, triangle t, bool extended=<default>);
point[] intersectionpoints(line l, circle c);
point[] intersectionpoints(circle c, line l);
point[] intersectionpoints(line l, ellipse el);
point[] intersectionpoints(ellipse el, line l);
point[] intersectionpoints(line l, parabola p);
point[] intersectionpoints(parabola p, line l);
point[] intersectionpoints(line l, hyperbola h);
point[] intersectionpoints(hyperbola h, line l);
point[] intersectionpoints(line l, conic co);
point[] intersectionpoints(conic co, line l);
point[] intersectionpoints(bqe bqe1, bqe bqe2);
point[] intersectionpoints(conic co1, conic co2);
point[] intersectionpoints(triangle t, conic co, bool extended=<default>);
point[] intersectionpoints(conic co, triangle t, bool extended=<default>);
point[] intersectionpoints(ellipse a, ellipse b);
point[] intersectionpoints(ellipse a, circle b);
point[] intersectionpoints(circle a, ellipse b);
point[] intersectionpoints(ellipse a, parabola b);
point[] intersectionpoints(parabola a, ellipse b);
point[] intersectionpoints(ellipse a, hyperbola b);
point[] intersectionpoints(hyperbola a, ellipse b);
point[] intersectionpoints(circle a, parabola b);
point[] intersectionpoints(parabola a, circle b);
point[] intersectionpoints(circle a, hyperbola b);
point[] intersectionpoints(hyperbola a, circle b);
point[] intersectionpoints(parabola a, parabola b);
point[] intersectionpoints(parabola a, hyperbola b);
point[] intersectionpoints(hyperbola a, parabola b);
point[] intersectionpoints(hyperbola a, hyperbola b);
point[] intersectionpoints(circle c1, circle c2);
point[] intersectionpoints(conic co, arc a);
point[] intersectionpoints(arc a, conic co);
point[] intersectionpoints(arc a1, arc a2);
point[] intersectionpoints(line l, arc a);
point[] intersectionpoints(arc a, line l);
point orthocentercenter(point A, point B, point C);
point orthocentercenter(triangle t);
point intouch(side side);
triangle intouch(triangle t);
real rf(real x, real y, real z);
bool concurrent(... line[] l);
real inradius(point A, point B, point C);
real inradius(triangle t);
pen addpenline;
pen addpenline(pen p);
pen addpenarc;
pen addpenarc(pen p);
void label(picture pic=<default>, Label L, explicit mass M, align align=<default>, string format=<default>, pen p=<default>, filltype filltype=<default>);
void label(picture pic=<default>, Label L, vertex V, pair align=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
void label(picture pic=<default>, Label LA=<default>, Label LB=<default>, Label LC=<default>, triangle t, real alignAngle=<default>, real alignFactor=<default>, pen p=<default>, filltype filltype=<default>);
real abs(coordsys R, pair m);
real abs(explicit point M);
point curpoint(line l, real x);
point curpoint(explicit circle c, real x);
point curpoint(explicit ellipse el, real x);
point curpoint(explicit parabola p, real x);
point curpoint(conic co, real x);
point curpoint(arc a, real x);
line bisector(line l1, line l2, real angle=<default>, bool sharp=<default>);
line bisector(point A, point B, point C, point D, real angle=<default>, bool sharp=<default>);
line bisector(segment s, real angle=<default>);
line bisector(point A, point B, real angle=<default>);
line bisector(vertex V, real angle=<default>);
line bisector(side side);
bqe canonical(bqe bqe);
point bisectorpoint(side side);
abscissa angabscissa(real x, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
abscissa angabscissa(int x, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
abscissa angabscissa(circle c, point M);
abscissa angabscissa(ellipse el, point M, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
abscissa angabscissa(hyperbola h, point M, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
abscissa angabscissa(parabola p, point M);
abscissa angabscissa(explicit conic co, point M);
abscissa angabscissa(arc a, point M);
pair locate(point P);
point locate(pair p);
pair locate(explicit vector v);
bool samecoordsys(bool warn=<default> ... point[] M);
bool samecoordsys(bool warn=<default> ... bqe[] bqes);
triangle extouch(triangle t);
triangle extouch(side side);
coordsys canonicalcartesiansystem(ellipse el);
coordsys canonicalcartesiansystem(parabola p);
coordsys canonicalcartesiansystem(hyperbola h);
coordsys canonicalcartesiansystem(explicit conic co);
arc arc(ellipse el, real angle1, real angle2, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>, bool direction=<default>);
arc arc(ellipse el, explicit abscissa x1, explicit abscissa x2, bool direction=<default>);
arc arc(ellipse el, point M, point N, bool direction=<default>);
arc arc(explicit arc a, abscissa x1, abscissa x2);
arc arc(explicit arc a, point M, point N);
path arc(explicit pair B, explicit pair A, explicit pair C, real r);
void markrightangle(picture pic=<default>, point A, point O, point B, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
real epsgeo;
real sharpangle(line l1, line l2);
bool isparabola(bqe bqe);
real sharpdegrees(line l1, line l2);
real exradius(point A, point B, point C);
real exradius(side side);
abscissa nodabscissa(real x);
abscissa nodabscissa(int x);
abscissa nodabscissa(line l, point M);
abscissa nodabscissa(circle c, point M);
abscissa nodabscissa(ellipse el, point M);
abscissa nodabscissa(parabola p, point M);
abscissa nodabscissa(conic co, point M);
abscissa nodabscissa(arc a, point M);
coordsys coordsys(line l);
coordsys coordsys(conic co);
coordsys coordsys(ellipse el);
pair coordinates(point M);
real length(explicit point M);
real length(segment s);
int arcnodesnumber(explicit arc a);
point[] standardizecoordsys(coordsys R=<default>, bool warn=<default> ... point[] M);
int nodesystem;
bool collinear(vector u, vector v);
point centroid(point A, point B, point C);
point centroid(triangle t);
int angularsystem;
path square(pair z1, pair z2);
void filldraw(picture pic=<default>, circle c, pen fillpen=<default>, pen drawpen=<default>);
void filldraw(picture pic=<default>, ellipse el, pen fillpen=<default>, pen drawpen=<default>);
void filldraw(picture pic=<default>, triangle t, pen fillpen=<default>, pen drawpen=<default>);
void filldraw(picture pic=<default>, triangle[] ts, pen fillpen=<default>, pen drawpen=<default>);
point symmedian(triangle t);
point symmedian(side side);
line symmedian(vertex V);
triangle symmedial(triangle t);
int curvilinearsystem;
bqe bqe(coordsys R=<default>, real a, real b, real c, real d, real e, real f);
bqe bqe(point M1, point M2, point M3, point M4, point M5);
arc arccircle(point A, point M, point B);
arc arccircle(point A, point B, real angle, bool direction=<default>);
point relpoint(line l, real x);
point relpoint(explicit circle c, real x);
point relpoint(explicit ellipse el, real x);
point relpoint(explicit parabola p, real x);
point relpoint(explicit hyperbola h, real x);
point relpoint(explicit conic co, explicit real x);
point relpoint(explicit conic co, explicit int x);
point relpoint(arc a, real x);
point changecoordsys(coordsys R, point M);
vector changecoordsys(coordsys R, vector v);
line changecoordsys(coordsys R, line l);
bqe changecoordsys(coordsys R, bqe bqe);
conic changecoordsys(coordsys R, conic co);
real angle(explicit point M, coordsys R=<default>, bool warn=<default>);
real angle(explicit vector v, coordsys R=<default>, bool warn=<default>);
real angle(line l, coordsys R=<default>);
real angle(line l1, line l2);
real angle(arc a);
point[] fermat(triangle t);
real arclength(circle c);
real arclength(ellipse el);
real arclength(ellipse el, real angle1, real angle2, bool direction=<default>, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
real arclength(parabola p, real angle);
real arclength(parabola p, real angle1, real angle2);
real arclength(parabola p);
real arclength(arc a);
line reverse(line l);
arc reverse(arc a);
point gergonne(triangle t);
real focusToCenter(ellipse el, real a);
hyperbola hyperbola(point P1, point P2, real ae, bool byfoci=<default>);
hyperbola hyperbola(point F1, point F2, point M);
hyperbola hyperbola(point C, real a, real b, real angle=<default>);
hyperbola hyperbola(bqe bqe);
hyperbola hyperbola(point M1, point M2, point M3, point M4, point M5);
side opposite(vertex V);
vertex opposite(side side);
int hyperbolanodesnumber(hyperbola h, real angle1, real angle2);
path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)(conic co);
int hyperbolanodesnumberfactor;
line parallel(point M, line l);
line parallel(point M, explicit vector dir);
line parallel(point M, explicit pair dir);
bool parallel(line l1, line l2, bool strictly=<default>);
transform projection(point A, point B);
transform projection(point A, point B, point C, point D, bool safe=<default>);
transform projection(line l);
transform projection(line l1, line l2, bool safe=<default>);
bool degenerate(conic c);
bool degenerate(circle c);
bool degenerate(ellipse el);
line line(point A, bool extendA=<default>, point B, bool extendB=<default>);
line line(segment s);
line line(real a, point A=<default>);
line line(point A=<default>, real a);
line line(int a, point A=<default>);
line line(coordsys R=<default>, real slope, real origin);
line line(coordsys R=<default>, real a, real b, real c);
line line(circle c);
line line(explicit side side);
line complementary(explicit line l);
line[] complementary(explicit segment s);
arc complementary(arc a);
point ppoint(arc a, real x);
path fromFocus(conic co, real angle1, real angle2, int n, bool direction);
bool between(point M, point O, point N);
bool sameside(point M, point N, point O);
bool sameside(point M, point P, line l);
point[] sameside(point M, line l1, line l2);
arc arcsubtended(point A, point B, real angle);
void distance(picture pic=<default>, Label L=<default>, point A, point B, bool rotated=<default>, real offset=<default>, pen p=<default>, pen joinpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
real distance(point M, line l);
real distance(line l, point M);
point incenter(point A, point B, point C);
point incenter(triangle t);
void write(explicit line l);
void write(explicit segment s);
void write(trilinear tri);
triangle incentral(triangle t);
point arcsubtendedcenter(point A, point B, real angle);
real Infinity;
circle circle(explicit point C, real r);
circle circle(point A, point B);
circle circle(segment s);
circle circle(point A, point B, point C);
circle circle(triangle t);
circle circle(inversion i);
segment segment(point A, point B);
segment segment(line l);
segment segment(explicit side side);
point angpoint(conic co, real angle);
point angpoint(explicit circle c, real x);
point angpoint(explicit ellipse el, real x, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
point angpoint(explicit parabola p, real x);
point angpoint(explicit hyperbola h, real x, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
point angpoint(arc a, real angle);
triangle orthic(triangle t);
int circlenodesnumber(real r);
int circlenodesnumber(real r, real angle1, real angle2);
path compassmark(pair O, pair A, real position, real angle=<default>);
bool byvertices;
int circlenodesnumberfactor;
transform xscale(real k, point M);
transform yscale(real k, point M);
transform scale(real k, point M);
transform scale(real k, point A, point B, point C, point D, bool safe=<default>);
transform scale(real k, line l1, line l2, bool safe=<default>);
point operator +(explicit point P1, explicit point P2);
point operator +(explicit point P1, explicit pair p2);
point operator +(explicit pair p1, explicit point p2);
point operator +(point M, explicit vector v);
point operator +(explicit pair m, explicit vector v);
vector operator +(explicit vector v1, explicit vector v2);
line operator +(line l, vector u);
conic operator +(conic c, explicit point M);
conic operator +(conic c, explicit pair m);
conic operator +(conic c, vector v);
circle operator +(explicit circle c, explicit point M);
circle operator +(explicit circle c, pair m);
circle operator +(explicit circle c, vector m);
abscissa operator +(real x, explicit abscissa a);
abscissa operator +(explicit abscissa a, real x);
abscissa operator +(int x, explicit abscissa a);
arc operator +(explicit arc a, point M);
arc operator +(explicit arc a, vector v);
mass operator +(mass M1, mass M2);
mass operator +(explicit mass M, real x);
mass operator +(explicit mass M, int x);
point operator -(explicit point P);
point operator -(explicit point P1, explicit point P2);
point operator -(explicit point P1, explicit pair p2);
point operator -(explicit pair p1, explicit point P2);
point operator -(point M, explicit vector v);
vector operator -(explicit vector v);
point operator -(explicit pair m, explicit vector v);
vector operator -(explicit vector v1, explicit vector v2);
line operator -(line l, vector u);
conic operator -(conic c, explicit point M);
conic operator -(conic c, explicit pair m);
conic operator -(conic c, vector v);
circle operator -(explicit circle c, explicit point M);
circle operator -(explicit circle c, pair m);
circle operator -(explicit circle c, vector m);
abscissa operator -(explicit abscissa a);
abscissa operator -(real x, explicit abscissa a);
abscissa operator -(explicit abscissa a, real x);
abscissa operator -(int x, explicit abscissa a);
arc operator -(explicit arc a, point M);
arc operator -(explicit arc a, vector v);
mass operator -(mass M1, mass M2);
mass operator -(explicit mass M, real x);
mass operator -(explicit mass M, int x);
pair operator *(coordsys R, pair p);
path operator *(coordsys R, path g);
coordsys operator *(transform t, coordsys R);
point operator *(real x, explicit point P);
point operator *(transform t, explicit point P);
point operator *(explicit point P1, explicit point P2);
point operator *(explicit point P1, explicit pair p2);
point operator *(explicit pair p1, explicit point p2);
vector operator *(real x, explicit vector v);
vector operator *(transform t, explicit vector v);
vector operator *(explicit point M, explicit vector v);
line operator *(transform t, line l);
line operator *(real x, line l);
line operator *(int x, line l);
line operator *(point M, line l);
circle operator *(real x, explicit circle c);
circle operator *(int x, explicit circle c);
ellipse operator *(transform t, ellipse el);
parabola operator *(transform t, parabola p);
ellipse operator *(transform t, circle c);
hyperbola operator *(transform t, hyperbola h);
conic operator *(transform t, conic co);
ellipse operator *(real x, ellipse el);
abscissa operator *(real x, explicit abscissa a);
abscissa operator *(explicit abscissa a, real x);
arc operator *(transform t, explicit arc a);
arc operator *(real x, explicit arc a);
arc operator *(int x, explicit arc a);
mass operator *(real x, explicit mass M);
mass operator *(int x, explicit mass M);
mass operator *(transform t, mass M);
triangle operator *(transform T, triangle t);
point operator *(inversion i, point P);
circle operator *(inversion i, line l);
circle operator *(inversion i, circle c);
arc operator *(inversion i, segment s);
path operator *(inversion i, triangle t);
coordsys operator init();
point operator init();
vector operator init();
line operator init();
segment operator init();
bqe operator init();
conic operator init();
circle operator init();
ellipse operator init();
parabola operator init();
hyperbola operator init();
abscissa operator init();
arc operator init();
mass operator init();
triangle operator init();
trilinear operator init();
inversion operator init();
pair operator cast(point P);
pair[] operator cast(point[] P);
point operator cast(pair p);
point[] operator cast(pair[] p);
guide operator cast(point p);
path operator cast(point p);
point operator cast(vector v);
vector operator cast(pair v);
vector operator cast(explicit point v);
pair operator cast(explicit vector v);
align operator cast(vector v);
line operator cast(segment s);
segment operator cast(line l);
ellipse operator cast(circle c);
conic operator cast(parabola p);
conic operator cast(hyperbola h);
conic operator cast(ellipse el);
conic operator cast(circle c);
path operator cast(ellipse el);
path operator cast(circle c);
path operator cast(parabola p);
path operator cast(hyperbola h);
path operator cast(conic co);
abscissa operator cast(explicit position position);
abscissa operator cast(real x);
abscissa operator cast(int x);
path operator cast(explicit arc a);
guide operator cast(explicit arc a);
point operator cast(mass m);
mass operator cast(point M);
point[] operator cast(mass[] m);
mass[] operator cast(point[] P);
mass operator cast(pair m);
path operator cast(mass M);
guide operator cast(mass M);
path operator cast(triangle t);
line operator cast(side side);
point operator cast(vertex V);
point operator cast(trilinear tri);
circle operator cast(inversion i);
inversion operator cast(circle c);
path operator ecast(segment s);
circle operator ecast(ellipse el);
ellipse operator ecast(conic co);
parabola operator ecast(conic co);
hyperbola operator ecast(conic co);
circle operator ecast(conic c);
void lineinversion();
pair operator /(pair p, coordsys R);
point operator /(explicit point P, real x);
point operator /(real x, explicit point P);
vector operator /(explicit vector v, real x);
line operator /(line l, real x);
line operator /(line l, int x);
circle operator /(explicit circle c, real x);
circle operator /(explicit circle c, int x);
ellipse operator /(ellipse el, real x);
abscissa operator /(real x, explicit abscissa a);
abscissa operator /(explicit abscissa a, real x);
abscissa operator /(int x, explicit abscissa a);
arc operator /(explicit arc a, real x);
mass operator /(explicit mass M, real x);
mass operator /(explicit mass M, int x);
real operator ^(point M, explicit circle c);
transform scaleO(real x);
bool operator ==(coordsys c1, coordsys c2);
bool operator ==(explicit point M, explicit point N);
bool operator ==(explicit vector u, explicit vector v);
bool operator ==(line l1, line l2);
bool operator !=(explicit point M, explicit point N);
bool operator !=(line l1, line l2);
transform xscaleO(real x);
transform yscaleO(real x);
line[] operator ^^(line l1, line l2);
line[] operator ^^(line l1, line[] l2);
line[] operator ^^(line[] l2, line l1);
line[] operator ^^(line[] l1, line[] l2);
triangle[] operator ^^(triangle[] t1, triangle t2);
triangle[] operator ^^(... triangle[] t);
real elle(real phi, real k);
point excenter(point A, point B, point C);
point excenter(side side);
mass mass(point M, real m);
mass mass(explicit point P);
mass mass(coordsys R, explicit pair p, real m);
bool operator @(point m, line l);
bool operator @(point M, conic co);
bool operator @(point M, explicit circle c);
bool operator @(point M, arc a);
void fill(picture pic=<default>, circle c, pen p=<default>);
void fill(picture pic=<default>, ellipse el, pen p=<default>);
void fill(picture pic=<default>, triangle t, pen p=<default>);
void fill(picture pic=<default>, triangle[] ts, pen p=<default>);
triangle triangle(line l1, line l2, line l3);
trilinear trilinear(triangle t, real a, real b, real c);
trilinear trilinear(triangle t, point M);
trilinear trilinear(triangle t, real f(real, real, real), real a=<default>, real b=<default>, real c=<default>);
triangle triangleAbc(real alpha, real b, real c, real angle=<default>, point A=<default>);
triangle triangleabc(real a, real b, real c, real angle=<default>, point A=<default>);
triangle anticomplementary(triangle t);
vector dir(vertex V);
real degrees(explicit point M, coordsys R=<default>, bool warn=<default>);
real degrees(vector v, coordsys R=<default>, bool warn=<default>);
real degrees(line l, coordsys R=<default>);
real degrees(line l1, line l2);
real degrees(arc a);
real linemargin;
real linemargin();
line Oy(coordsys R=<default>);
line Oy;
path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
void markarc(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, arc a, pen sectorpen=<default>, pen markpen=<default>, marginT margin(path, pen)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marker marker=<default>);
real approximate(real t);
real[] approximate(real[] T);
void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, explicit line l1, explicit line l2, explicit pair align=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, explicit line l1, explicit line l2, explicit vector align, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
transform hprojection(line l, bool safe=<default>);
point conj(explicit point M);
vector conj(explicit vector u);
hyperbola conj(hyperbola h);
transform vprojection(line l, bool safe=<default>);
parabola parabola(point F, line l);
parabola parabola(point F, point vertex);
parabola parabola(point F, real a, real angle);
parabola parabola(bqe bqe);
parabola parabola(point M1, point M2, point M3, line l);
parabola parabola(point M1, point M2, point M3, point M4, point M5);
bool onpath(picture pic=<default>, path g, point M, pen p=<default>);
int parabolanodesnumber(parabola p, real angle1, real angle2);
int parabolanodesnumberfactor;
path NoModifier(path);
coordsys currentcoordsys;
point foot(vertex V);
point foot(side side);
path currentpolarconicroutine(conic co, real angle1, real angle2, int n, bool direction);
transform rotate(explicit pair dir);
transform rotate(explicit vector dir);
transform rotate(explicit point dir);
real EPS;
transform rotateO(real a);
line perpendicular(point M, line l);
line perpendicular(point M, explicit vector normal);
line perpendicular(point M, explicit pair normal);
bool perpendicular(line l1, line l2);
void perpendicular(picture pic=<default>, pair z, pair align, pair dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
void perpendicular(picture pic=<default>, pair z, pair align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
real binomial(real n, real k);
void perpendicularmark(picture pic=<default>, point z, explicit pair align, explicit pair dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
void perpendicularmark(picture pic=<default>, point z, vector align, vector dir=<default>, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
void perpendicularmark(picture pic=<default>, point z, explicit pair align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
void perpendicularmark(picture pic=<default>, point z, vector align, path g, real size=<default>, pen p=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
void perpendicularmark(picture pic=<default>, line l1, line l2, real size=<default>, pen p=<default>, int quarter=<default>, marginT margin(path, pen)=<default>, filltype filltype=<default>);
pair attract(pair m, path g, real fuzz=<default>);
point attract(point M, path g, real fuzz=<default>);
void Drawline(picture pic=<default>, Label L=<default>, pair P, bool dirP=<default>, pair Q, bool dirQ=<default>, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, Label legend=<default>, marker marker=<default>, path pathModifier(path)=<default>);
bool simeq(point A, point B, real fuzz=<default>);
bool simeq(point a, real b, real fuzz=<default>);
point inverse(real k, point A, point M);
circle inverse(real k, point A, line l);
circle inverse(real k, point A, circle c);
arc inverse(real k, point A, segment s);
inversion inversion(real k, point C);
inversion inversion(point C, real k);
inversion inversion(circle c1, circle c2, real sgn=<default>);
inversion inversion(circle c1, circle c2, circle c3);
inversion inversion(circle c);
coordsys cartesiansystem(pair O=<default>, pair i, pair j);
line tangent(circle c, abscissa x);
line tangent(circle c, point M);
line tangent(circle c, explicit vector v);
line tangent(ellipse el, abscissa x);
line tangent(parabola p, abscissa x);
line tangent(hyperbola h, abscissa x);
line tangent(explicit arc a, abscissa x);
line tangent(explicit arc a, point M);
line[] tangents(circle c, point M);
line[] tangents(ellipse el, point M);
line[] tangents(parabola p, point M);
line[] tangents(hyperbola h, point M);
real centerToFocus(ellipse el, real a);
bqe equation(ellipse el);
bqe equation(parabola p);
bqe equation(hyperbola h);
bqe equation(explicit conic co);
triangle tangential(triangle t);
triangle pedal(triangle t, point M);
line pedal(side side, point M);
string massformat(string format=<default>, string s, mass M);
int relativesystem;
triangle cevian(triangle t, point P);
point cevian(side side, point P);
line cevian(vertex V, point P);
void drawline(picture pic=<default>, triangle t, pen p=<default>);
void addMargins(picture pic=<default>, real lmargin=<default>, real bmargin=<default>, real rmargin=<default>, real tmargin=<default>, bool rigid=<default>, bool allObject=<default>);
triangle medial(triangle t);
line median(vertex V);
line median(side side);
void show(picture pic=<default>, Label lo=<default>, Label li=<default>, Label lj=<default>, coordsys R, pen dotpen=<default>, pen xpen=<default>, pen ypen=<default>, pen ipen=<default>, pen jpen=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
void show(Label L, vector v, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
void show(picture pic=<default>, line l, pen p=<default>);
void show(picture pic=<default>, Label LA=<default>, Label LB=<default>, Label LC=<default>, Label La=<default>, Label Lb=<default>, Label Lc=<default>, triangle t, pen p=<default>, filltype filltype=<default>);
line isotomic(vertex V, point M);
point isotomic(side side, point M);
triangle isotomic(triangle t, point M);
abscissa curabscissa(real x);
abscissa curabscissa(int x);
abscissa curabscissa(line l, point M);
abscissa curabscissa(circle c, point M);
abscissa curabscissa(ellipse el, point M);
abscissa curabscissa(parabola p, point M);
abscissa curabscissa(conic co, point M);
abscissa curabscissa(arc a, point M);
locateT operator init();
void Straight(flatguide3)(... void(flatguide3)[]);
void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
triple polar(real r, real theta, real phi);
void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
bool uperiodic(real[][] a);
bool uperiodic(triple[][] a);
bool vperiodic(real[][] a);
bool vperiodic(triple[][] a);
void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
void Bounds(picture, axisT);
void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
void XZZero(picture, axisT);
void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
void YZZero(picture, axisT);
surface surface(picture pic=<default>, triple[][] f, bool[][] cond=<default>);
surface surface(picture pic=<default>, real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
surface surface(picture pic=<default>, real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
surface surface(picture pic=<default>, real[][] f, pair a, pair b, bool[][] cond=<default>);
surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
surface surface(picture pic=<default>, triple f(pair z), real[] u, real[] v, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
triple Dir(real)(triple dir);
void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
triple tickMin3(picture pic);
triple tickMax3(picture pic);
triple Scale(picture pic=<default>, triple v);
triple[][] Scale(picture pic=<default>, triple[][] P);
real ScaleX(picture pic=<default>, real x);
real ScaleY(picture pic=<default>, real y);
real ScaleZ(picture pic=<default>, real z);
real[][] ScaleZ(picture pic=<default>, real[][] P);
picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
void Spline(flatguide3)(... void(flatguide3)[]);
void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
void autoscale3(picture pic=<default>, void axis(picture, axisT));
void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
real xtrans(real[][] t, real x);
real ytrans(real[][] t, real y);
real ztrans(real[][] t, real z);
ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
triple ticklabelshift(triple align, pen p=<default>);
path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
void limits(picture pic=<default>, triple min, triple max);
void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
void XYZero(picture, axisT);
void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
real[][][] bispline(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n);
void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
string DefaultFormat(real);
string DefaultLogFormat(real)(int base);
string DefaultLogFormat(real);
guide graph(pair f(real), real, real, int)(guide join(... guide[]));
guide[] graph(pair f(real), real, real, int)(guide join(... guide[]), bool3 cond(real));
guide graph(picture pic=<default>, real f(real), real a, real b, int n=<default>, real T(real)=<default>, guide join(... guide[])=<default>);
guide[] graph(picture pic=<default>, real f(real), real a, real b, int n=<default>, real T(real)=<default>, bool3 cond(real), guide join(... guide[])=<default>);
guide graph(picture pic=<default>, real x(real), real y(real), real a, real b, int n=<default>, real T(real)=<default>, guide join(... guide[])=<default>);
guide[] graph(picture pic=<default>, real x(real), real y(real), real a, real b, int n=<default>, real T(real)=<default>, bool3 cond(real), guide join(... guide[])=<default>);
guide graph(picture pic=<default>, pair z(real), real a, real b, int n=<default>, real T(real)=<default>, guide join(... guide[])=<default>);
guide[] graph(picture pic=<default>, pair z(real), real a, real b, int n=<default>, real T(real)=<default>, bool3 cond(real), guide join(... guide[])=<default>);
guide graph(picture pic=<default>, pair[] z, guide join(... guide[])=<default>);
guide[] graph(picture pic=<default>, pair[] z, bool3[] cond, guide join(... guide[])=<default>);
guide graph(picture pic=<default>, real[] x, real[] y, guide join(... guide[])=<default>);
guide[] graph(picture pic=<default>, real[] x, real[] y, bool3[] cond, guide join(... guide[])=<default>);
guide graphwithderiv(pair f(real), pair fprime(real), real a, real b, int n=<default>);
scientific scientific(real x);
void Left(picture, axisT)(bool extend=<default>);
void Left(picture, axisT);
autoscaleT defaultS;
void XEquals(picture, axisT)(real x, bool extend=<default>);
void YEquals(picture, axisT)(real y, bool extend=<default>);
string LogFormat(real)(int base);
string LogFormat(real);
axisT axis;
void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>), ticklocate locate, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, pair[] z, pair[] dp, pair[] dm=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpx, real[] dpy, real[] dmx=<default>, real[] dmy=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpy, bool[] cond=<default>, pen p=<default>, real size=<default>);
void xlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
string conditionlength;
void ylimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
tickvalues None(tickvalues v);
scaleT Logarithmic;
void limits(picture pic=<default>, pair min, pair max, bool crop=<default>);
void crop(picture pic=<default>);
picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
string OmitFormat(real)(string s=<default> ... real[] x);
guide Straight(... guide[]);
int Min;
string trailingzero;
void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
void labelx(picture pic=<default>, Label L=<default>, explicit pair z, align align=<default>, string format=<default>, pen p=<default>);
void labelx(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
void labelx(picture pic=<default>, Label L, string format=<default>, explicit pen p=<default>);
path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=<default>);
path Arc(pair c, real r, real angle1, real angle2, int n=<default>);
path Arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>, int n=<default>);
pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
void labely(picture pic=<default>, Label L=<default>, explicit pair z, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L, string format=<default>, explicit pen p=<default>);
void xtick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, real x, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, real x, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, real y, pair dir=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
void ytick(picture pic=<default>, Label L, real y, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
picture secondaryX(picture primary=<default>, void f(picture));
picture secondaryY(picture primary=<default>, void f(picture));
Label Break;
tickvalues Break(tickvalues)(real, real);
scaleT Linear;
scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
pair tickMin(picture pic);
pair tickMax(picture pic);
string autoformat(string format=<default>, real norm ... real[] a);
tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
tickvalues OmitTickInterval(tickvalues)(real a, real b);
tickvalues OmitTick(tickvalues)(... real[] x);
real linear(real)(real S(real x)=<default>, real Min, real Max);
pair polar(real r, real theta);
string Format(real)(string s=<default>);
guide polargraph(picture pic=<default>, real r(real), real a, real b, int n=<default>, guide join(... guide[])=<default>);
guide polargraph(picture pic=<default>, real[] r, real[] theta, guide join(... guide[])=<default>);
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
guide Hermite(... guide[])(real[] splinetype(real[], real[]));
guide Hermite(... guide[]);
path Circle(pair c, real r, int n=<default>);
bool axiscoverage(int N, transform T, path g, ticklocate locate, real Step, pair side, int sign, real Size, Label F, string ticklabel(real), real norm, real limit);
scaleT Broken(real a, real b, bool automin=<default>, bool automax=<default>);
scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void Ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
string noprimary;
void xequals(picture pic=<default>, Label L=<default>, real x, bool extend=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
void yequals(picture pic=<default>, Label L=<default>, real y, bool extend=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
pair Scale(picture pic=<default>, pair z);
real ScaleX(picture pic=<default>, real x);
real ScaleY(picture pic=<default>, real y);
tickvalues generateticks(int sign, Label F=<default>, string ticklabel(real)=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, real Size=<default>, real size=<default>, transform T, pair side, path g, real limit, pen p, ticklocate locate, int[] divisor, bool opposite);
path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
void checkconditionlength(int x, int y);
real xtrans(transform t, real x);
void Top(picture, axisT)(bool extend=<default>);
void Top(picture, axisT);
real ytrans(transform t, real y);
void scale(picture pic=<default>, scaleT x, scaleT y=<default>, scaleT z=<default>);
void scale(picture pic=<default>, bool xautoscale=<default>, bool yautoscale=<default>, bool zautoscale=<default>);
string NoZeroFormat(real);
int[] divisors(int a, int b);
scientific operator init();
bounds operator init();
ticklocate operator init();
locateT operator init();
tickvalues operator init();
axisT operator init();
tickvalues NoZero(tickvalues);
int Both;
void axes(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, bool extend=<default>, pair min=<default>, pair max=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
string signedtrailingzero;
void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
pair ticklabelshift(pair align, pen p=<default>);
pair zero(real);
void Bottom(picture, axisT)(bool extend=<default>);
void Bottom(picture, axisT);
void BottomTop(picture, axisT)(bool extend=<default>);
void BottomTop(picture, axisT);
real zerotickfuzz;
real upscale(real b, real a);
bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, int sign, real Size, Label F, string ticklabel(real), real limit, int first, int last);
string baselinetemplate;
void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)();
void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
void tick(picture pic=<default>, pair z, pair dir, real size=<default>, pen p=<default>);
void tick(picture pic=<default>, Label L, real value, explicit pair z, pair dir, string format=<default>, real size=<default>, pen p=<default>);
int Value;
scaleT Log;
scaleT Log(bool automin=<default>, bool automax=<default>);
void Right(picture, axisT)(bool extend=<default>);
void Right(picture, axisT);
void RightTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void RightTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void RightTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
int Max;
void XZero(picture, axisT)(bool extend=<default>);
void XZero(picture, axisT);
void YZero(picture, axisT)(bool extend=<default>);
void YZero(picture, axisT);
bounds autoscale(real Min, real Max, scaleT scale=<default>);
void autoscale(picture pic=<default>, void axis(picture, axisT));
guide Spline(... guide[]);
void LeftRight(picture, axisT)(bool extend=<default>);
void LeftRight(picture, axisT);
bool Crop;
int ngraph;
real epsilon;
real axiscoverage;
real Ticksize;
bool NoCrop;
real ticksize;
int nmesh;
int nCircle;
real ylabelwidth;
real axislabelfactor;
real[] clamped(real[], real[])(real slopea, real slopeb);
real[] natural(real[] x, real[] y);
real[] monotonic(real[] x, real[] y);
real[] notaknot(real[] x, real[] y);
real[] linear(real[] x, real[] y);
string morepoints;
guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
void checklengths(int x, int y, string text=<default>);
void checkincreasing(real[] x);
real[] periodic(real[] x, real[] y);
string differentlengths;
real[] Spline(real[] x, real[] y);
real[](real[], real[])[] Spline;
grid3(picture pic)[] YXYgrid(position pos=<default>);
grid3(picture pic)[] YXYgrid;
grid3 operator init();
ticksgridT operator init();
grid3(picture pic)[] operator cast(grid3 gridroutine(picture pic));
grid3(picture pic)[][] operator cast(grid3(picture pic)[] gridroutine);
grid3(picture pic)[][] operator cast(grid3 gridroutine(picture pic));
triple X(picture pic);
triple Y(picture pic);
triple Z(picture pic);
position middle;
grid3(picture pic)[] XYXgrid(position pos=<default>);
grid3(picture pic)[] XYXgrid;
grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] XY_XZgrid;
grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] ZX_ZYgrid;
grid3 XYgrid(picture pic)(position pos=<default>);
grid3 XYgrid(picture pic);
grid3 ZYgrid(picture pic)(position pos=<default>);
grid3 ZYgrid(picture pic);
void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen pGrid=<default>, pen pgrid=<default>, bool above=<default>);
void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
triple YZ(picture pic);
void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
triple ZX(picture pic);
grid3(picture pic)[] ZXZgrid(position pos=<default>);
grid3(picture pic)[] ZXZgrid;
position top;
grid3(picture pic)[] XZXgrid(position pos=<default>);
grid3(picture pic)[] XZXgrid;
ticksgridT InTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
ticksgridT InOutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
grid3(picture pic)[] YX_YZgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] YX_YZgrid;
position bottom;
grid3 YXgrid(picture pic)(position pos=<default>);
grid3 YXgrid(picture pic);
grid3 ZXgrid(picture pic)(position pos=<default>);
grid3 ZXgrid(picture pic);
triple XY(picture pic);
grid3(picture pic)[][] XYZgrid(position pos=<default>);
grid3(picture pic)[][] XYZgrid;
grid3(picture pic)[] ZYZgrid(position pos=<default>);
grid3(picture pic)[] ZYZgrid;
grid3(picture pic)[] YZYgrid(position pos=<default>);
grid3(picture pic)[] YZYgrid;
grid3 XZgrid(picture pic)(position pos=<default>);
grid3 XZgrid(picture pic);
grid3 YZgrid(picture pic)(position pos=<default>);
grid3 YZgrid(picture pic);
real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
real pwhermite(real)(real[] x, real[] y, real[] dy);
horner diffdiv(real[] x, real[] y);
horner hdiffdiv(real[] x, real[] y, real[] dy);
horner operator init();
real fhorner(real)(horner sh);
surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
triple[] firstframe(path3 p, triple optional=<default>);
triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
real eps;
triple nextnormal(triple p, triple q);
void labelpath(frame f, Label L, path g, string justify=<default>, pen p=<default>);
void labelpath(picture pic=<default>, Label L, path g, string justify=<default>, pen p=<default>);
string LeftJustified;
string Centered;
string RightJustified;
string[] lm_infmsg;
void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
void lm_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real[] x, real[] sdiag, real[] wa);
FitControl defaultControl;
real LM_MACHEP;
real LM_SQRT_DWARF;
real LM_SQRT_GIANT;
void lm_lmpar(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real delta, lm_real_type par, real[] x, real[] sdiag, real[] wa1, real[] wa2);
void lm_lmdif(int m, int n, real[] x, real[] fvec, real ftol, real xtol, real gtol, int maxfev, real epsfcn, real[] diag, int mode, real factor, lm_int_type info, lm_int_type nfev, real[] fjac, int[] ipvt, real[] qtf, real[] wa1, real[] wa2, real[] wa3, real[] wa4, void evaluate(real[] par, int m_dat, real[] fvec, lm_data_type data, lm_int_type info), void printout(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev), lm_data_type data);
void lm_minimize(int m_dat, int n_par, real[] par, void evaluate(real[] par, int m_dat, real[] fvec, lm_data_type data, lm_int_type info), void printout(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev), lm_data_type data, lm_control_type control);
FitResult fit(real[] xdata, real[] ydata, real[] errors, real function(real[], real), real[] parameters, FitControl control=<default>);
FitResult fit(real[] xdata, real[] ydata, real function(real[], real), real[] parameters, FitControl control=<default>);
real lm_enorm(int n, real[] x, int offset=<default>);
lm_data_type operator init();
lm_int_type operator init();
lm_real_type operator init();
lm_control_type operator init();
FitControl operator init();
FitResult operator init();
real SQR(real x);
string[] lm_shortmsg;
void lm_evaluate_default(real[] par, int m_dat, real[] fvec, lm_data_type data, lm_int_type info);
string pad(string str, int count, string pad=<default>);
string pad(int num, int digits, string pad=<default>);
string pad(real num, int digits, string pad=<default>);
real LM_USERTOL;
real LM_DWARF;
void lm_print_quiet(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev);
void lm_print_default(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev);
void mapTemplate(string name, string key, string value, string default);
real barmarksize(pen p=<default>);
real barmarksizefactor;
marker CrossIntervalMarker(int i=<default>, int n=<default>, real size=<default>, real space=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, frame uniform=<default>, bool above=<default>);
marker StickIntervalMarker(int i=<default>, int n=<default>, real size=<default>, real space=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, frame uniform=<default>, bool above=<default>);
frame crossframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
real crossmarksize(pen p=<default>);
real crossmarksizefactor;
frame stickframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
frame stickframe;
real stickmarksize(pen p=<default>);
real stickmarkspace(pen p=<default>);
real stickmarksizefactor;
real stickmarkspacefactor;
frame duplicate(path g, int n=<default>, pair space=<default>, pen p=<default>);
marker CircleBarIntervalMarker(int i=<default>, int n=<default>, real barsize=<default>, real radius=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, filltype filltype=<default>, bool circleabove=<default>, frame uniform=<default>, bool above=<default>);
frame circlebarframe(int n=<default>, real barsize=<default>, real radius=<default>, real angle=<default>, pair offset=<default>, pen p=<default>, filltype filltype=<default>, bool above=<default>);
real circlemarkradius(pen p=<default>);
real circlemarkradiusfactor;
marker operator *(transform T, marker m);
marker TildeIntervalMarker(int i=<default>, int n=<default>, real size=<default>, real space=<default>, real angle=<default>, pair offset=<default>, bool rotated=<default>, pen p=<default>, frame uniform=<default>, bool above=<default>);
frame tildeframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
frame tildeframe;
real tildemarksize(pen p=<default>);
real tildemarksizefactor;
void markangle(picture pic=<default>, Label L=<default>, int n=<default>, real radius=<default>, real space=<default>, pair A, pair O, pair B, bool arrow(picture, path, pen, marginT(path, pen))=<default>, pen p=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>, marker marker=<default>);
real markanglespace(pen p=<default>);
real markanglespace;
real markangleradius(pen p=<default>);
real markangleradius;
real markanglespacefactor;
real markangleradiusfactor;
void markinterval(picture pic=<default>, frame f, path g)(int n=<default>, frame f, bool rotated=<default>);
real[] partialsum(real[] a);
real[] partialsum(real[] a, real[] dx);
int[] partialsum(int[] a);
int[] partialsum(int[] a, int[] dx);
real cot(real x);
int unique(real[] a, real x);
int unique(string[] a, string x);
int quadrant(real degrees);
pair exp(explicit pair z);
string nopoint;
real intersect(pair p, pair q, pair z);
real intersect(triple P, triple Q, triple n, triple Z);
real interpolate(real[] x, real[] y, real x0, int i);
real interpolate(real[] x, real[] y, real x0);
triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
pair[] quarticroots(real a, real b, real c, real d, real e);
bool lexorder(pair a, pair b);
bool lexorder(triple a, triple b);
bool square(real[][] m);
real sec(real x);
bool rectangular(real[][] m);
bool rectangular(pair[][] m);
bool rectangular(triple[][] m);
bool polygon(path p);
pair unityroot(int n, int k=<default>);
real acot(real x);
pair[][] fft(pair[][] a, int sign=<default>);
real slope(path g, real x, int n=<default>, real fuzz=<default>);
real slope(path g, explicit pair z, int n=<default>, real fuzz=<default>);
int[][] segmentlimits(bool[] b);
int[][] segment(bool[] b);
picture grid(int Nx, int Ny, pen p=<default>);
rootfinder_settings operator init();
real frac(real x);
real asec(real x);
real time(path g, real x, int n=<default>, real fuzz=<default>);
real time(path g, explicit pair z, int n=<default>, real fuzz=<default>);
real[] leastsquares(real[][] A, real[] b, bool warn=<default>);
bool increasing(real[] a, bool strict=<default>);
real[] zero(int n);
real[][] zero(int n, int m);
real findroot(real f(real), real a, real b, real tolerance=<default>, real fa=<default>, real fb=<default>);
real acsc(real x);
real value(path g, real x, int n=<default>, real fuzz=<default>);
real value(path g, explicit pair z, int n=<default>, real fuzz=<default>);
real csc(real x);
pair log(explicit pair z);
void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
path cutbefore(path p, path q);
path cutafter(path p, path q);
path cuttings;
void draw(picture pic=<default>, obj o, light light=<default>);
obj operator *(real[][] T, obj o);
obj operator init();
real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=<default>);
RKTableau E_Euler;
real error(real error, real initial, real lowOrder, real norm, real diff);
RKTableau RK5;
real stepfactor;
RKTableau RK4;
real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
real phi1(real x);
solution integrate(real y, real c=<default>, real f(real t, real y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>);
RKTableau RK3;
void expfactors(real x, coefficients a);
real phi2(real x);
void report(real old, real h, real t);
real[] solveBVP(real[] f(real, real[]), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>, real[] initial(real[]), real[] discrepancy(real[]), real[] guess, int iterations=<default>);
RKTableau Euler;
RKTableau E_PC;
RKTableau RK2;
real phi3(real x);
void write(solution S);
void write(Solution S);
coefficients operator init();
RKTableau operator init();
solution operator init();
Solution operator init();
RKTableau E_RK2;
RKTableau RK3BS;
RKTableau RK5F;
real phi4(real x);
real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau);
RKTableau RK5DP;
real[] Coeff;
RKTableau PC;
RKTableau E_RK3BS;
pen[] Grayscale(int NColors=<default>);
bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
pen[] Wheel(int NColors=<default>);
void image(frame f, real[][] data, pair initial, pair final, pen[] palette, bool transpose=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
void image(frame f, pen[][] data, pair initial, pair final, bool transpose=<default>, transform t=<default>, bool copy=<default>, bool antialias=<default>);
bounds image(picture pic=<default>, real[][] f, bounds range(picture pic, real min, real max)=<default>, pair initial, pair final, pen[] palette, int divs=<default>, bool transpose=<default>, bool copy=<default>, bool antialias=<default>);
bounds image(picture pic=<default>, real f(real, real), bounds range(picture pic, real min, real max)=<default>, pair initial, pair final, int nx=<default>, int ny=<default>, pen[] palette, int divs=<default>, bool antialias=<default>);
void image(picture pic=<default>, pen[][] data, pair initial, pair final, bool transpose=<default>, bool copy=<default>, bool antialias=<default>);
void image(picture pic=<default>, pen f(int, int), int width, int height, pair initial, pair final, bool transpose=<default>, bool antialias=<default>);
bounds image(picture pic=<default>, pair[] z, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
bounds image(picture pic=<default>, real[] x, real[] y, real[] f, bounds range(picture pic, real min, real max)=<default>, pen[] palette);
pen[] cmyk(pen[] Palette);
pen[] BWRainbow(int NColors, bool two);
pen[] BWRainbow(int NColors=<default>);
pen[] BWRainbow2(int NColors=<default>);
transform swap;
bounds Automatic(picture pic, real min, real max);
real[] sequencereal;
pen[] Rainbow(int NColors=<default>);
pen[] adjust(picture pic, real min, real max, real rmin, real rmax, pen[] palette);
pen[] Gradient(int NColors=<default> ... pen[] p);
pen[] quantize(pen[] Palette, int n);
void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
bounds Full(picture pic, real min, real max);
void PaletteTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, pen pTick=<default>, pen ptick=<default>);
void PaletteTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>);
pen[] palette(real[] f, pen[] palette);
pen[][] palette(real[][] f, pen[] palette);
void palette(picture pic=<default>, Label L=<default>, bounds bounds, pair initial, pair final, void axis(picture, axisT)=<default>, pen[] palette, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(int sign=<default>)=<default>, bool copy=<default>, bool antialias=<default>);
picture brick(real Hx=<default>, real Hy=<default>, pen p=<default>);
picture crosshatch(real H=<default>, pen p=<default>);
picture hatch(real H=<default>, pair dir=<default>, pen p=<default>);
real hatchepsilon;
picture checker(real Hx=<default>, real Hy=<default>, pen p=<default>);
void add(string name, picture pic, pair lb=<default>, pair rt=<default>);
frame tiling(string name, picture pic, pair lb=<default>, pair rt=<default>);
picture tile(real Hx=<default>, real Hy=<default>, pen p=<default>, filltype filltype=<default>);
void grestore(picture pic=<default>);
pen textpen;
void gsave(picture pic=<default>);
pair align;
rational[][] rationalidentity(int n);
int gcd(int m, int n);
int maxDenominator;
rational min(rational a, rational b);
rational abs(rational r);
string texstring(rational r);
bool rectangular(rational[][] m);
string string(rational r);
void write(file fout, string s=<default>, rational r, void suffix(file)=<default>);
void write(string s=<default>, rational r, void suffix(file)=<default>);
void write(file fout=<default>, string s=<default>, rational[] a, void suffix(file)=<default>);
void write(file fout=<default>, string s=<default>, rational[][] a, void suffix(file)=<default>);
rational operator +(rational r, rational s);
rational operator -(rational r);
rational operator -(rational r, rational s);
rational[] operator -(rational[] r);
rational operator *(rational r, rational s);
rational operator init();
rational operator cast(int p);
rational[] operator cast(int[] a);
rational[][] operator cast(int[][] a);
real operator ecast(rational r);
rational operator ecast(real x);
rational operator /(rational r, rational s);
bool operator ==(rational r, rational s);
bool[] operator ==(rational[] r, rational s);
bool operator ==(rational[] r, rational[] s);
bool operator ==(rational[][] r, rational[][] s);
bool operator !=(rational r, rational s);
bool operator <(rational r, rational s);
bool[] operator <(rational[] r, rational s);
bool operator <=(rational r, rational s);
bool[] operator <=(rational[] r, rational s);
bool operator >(rational r, rational s);
bool[] operator >(rational[] r, rational s);
bool operator >=(rational r, rational s);
bool[] operator >=(rational[] r, rational s);
rational sum(rational[] a);
int lcm(int m, int n);
rational max(rational a, rational b);
rational max(rational[] a);
bool optimizeTableau;
simplex operator init();
void simplexInit(rational[] c, rational[][] A, int[] s=<default>, rational[] b, int count);
void simplexPhase1(rational[] c, rational[][] A, rational[] b, int[] Bindices);
void simplexTableau(rational[][] E, int[] Bindices, int I=<default>, int J=<default>, int n=<default>);
void simplexPhase2();
int[] artificialColumn;
void simplexWrite(rational[][] E, int[] Bindices, int, int);
path roundedpath(path A, real R, real S=<default>);
simplex operator init();
void display(frame[] f, real margin=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void display(frame f, real margin=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void display(string[] s, real margin=<default>, string[] captions=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void display(string s, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
void subitem(string s, pen p=<default>);
int page;
pen pagenumberpen;
pair pagenumberalign;
pair pagenumberposition;
void indexedfigure(string prefix, int first, int last, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
string texcolor(pen p);
void color(string name, string color);
pen foregroundcolor;
void bibliography(string name);
void bibliographystyle(string name);
int[] lastnode;
real aboveequationskip;
void nextpage(pen p=<default>);
void asyfigure(string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, filltype filltype=<default>, bool newslide=<default>);
void asyfilecode(bool center=<default>, string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
bool itemstep;
real itemskip;
void remark(bool center=<default>, string s, pair align=<default>, pen p=<default>, real indent=<default>, bool minipage=<default>, real skip=<default>, filltype filltype=<default>, bool step=<default>);
void usersetting();
void filecode(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
bool landscape;
real codeskip;
void newslide(bool stepping=<default>);
pen itempen;
bool reverse;
void reversevideo();
void vbox(string s, pen p=<default>);
void asycode(bool center=<default>, string s, string options=<default>, string caption=<default>, string preamble=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>, bool newslide=<default>);
void exitfunction();
bool havepagenumber;
real pageheight;
real pagewidth;
void item(string s, pen p=<default>, bool step=<default>);
picture background;
void background();
pen backgroundcolor;
void normalvideo();
void title(string s, pair position=<default>, pair align=<default>, pen p=<default>, bool newslide=<default>);
pen titlepen;
real titleskip;
pair dateskip;
pair titlealign;
pen titlepagepen;
void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
pair titlepageposition;
pen codepen;
pen authorpen;
void erasestep(int erasenode);
bool checkposition();
void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
string cropcode(string s);
void code(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
transform tinv;
pair urlskip;
void numberpage(pen p=<default>);
pen urlpen;
bool allowstepping;
pair currentposition;
int[] firstnode;
bool firststep;
string asywrite(string s, string preamble=<default>);
pair startposition;
string oldbulletcolor;
string newbulletcolor;
pen datepen;
void incrementposition(pair z);
pen institutionpen;
void skip(real n=<default>);
bool stepping;
real pagemargin;
pen steppagenumberpen;
bool empty();
void currentexitfunction();
void step();
string[] codefile;
void outline(string s=<default>, pair position=<default>, pair align=<default>, pen p=<default>);
void center(string s, pen p=<default>);
void equation(string s, pen p=<default>);
void equations(string s, pen p=<default>);
void asyinclude(string s, real xsize=<default>, real ysize=<default>);
void figure(string[] s, string options=<default>, real margin=<default>, string[] captions=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
void figure(string s, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool final=<default>);
real figureborder;
pen figuremattpen;
string bullet;
int preamblenodes;
string bulletcolor(string color);
real minipagewidth;
real minipagemargin;
real stepfraction;
path curve(pair c, real f(real, real), pair a, pair b);
path curve(pair c, real f(real), pair a, pair b);
picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>);
picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>);
real B03(real t);
patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
real B23(real t);
path3 pathinface(positionedvector v1, positionedvector v2, triple facenorm, triple edge1normout, triple edge2normout);
path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
path3 bisector(path3 edgecycle, int[] savevertices);
int XHIGH;
int YHIGH;
int ZHIGH;
real(real)[] bernstein;
path3 pathbetween(positionedvector v1, positionedvector v2);
path3 pathbetween(path3 edgecycle, int vertex1, int vertex2);
patch patchwithnormals(path3 external, triple[] u0normals, triple[] u1normals, triple[] v0normals, triple[] v1normals);
patch patchwithnormals(path3 external, triple normalat(triple));
real angledegrees(triple a, triple b);
triple projecttospan(triple toproject, triple v1, triple v2, real mincoeff=<default>);
real[] projecttospan_findcoeffs(triple toproject, triple v1, triple v2, bool warn=<default>);
triple nGrad(triple)(real f(triple));
triple normalout(int face);
patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
int[] makecircle(edge[] edges);
real B13(real t);
bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
bool checkptincube(triple pt, triple a, triple b);
bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b);
int XLOW;
int YLOW;
int ZLOW;
pathwithnormals_settings operator init();
intset operator init();
int_to_intset operator init();
edge operator init();
positionedvector operator init();
evaluatedpoint operator init();
gridwithzeros operator init();
string operator cast(edge e);
string operator cast(edge[] edges);
string operator cast(positionedvector vv);
triple operator cast(evaluatedpoint p);
surface implicitsurface(real f(triple)=<default>, real ff(real, real, real)=<default>, triple a, triple b, int n=<default>, bool keyword overlapedges=<default>, int keyword nx=<default>, int keyword ny=<default>, int keyword nz=<default>, int keyword maxdepth=<default>, bool keyword usetriangles=<default>);
bool operator ==(edge a, edge b);
patch[] triangletoquads(path3 external, real f(triple), triple grad(triple), triple a, triple b);
patch trianglewithnormals(path3 external, triple n1, triple n2, triple n3);
evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
real B33(real t);
evaluatedpoint[][] slice(evaluatedpoint[][] a, int start1, int end1, int start2, int end2);
evaluatedpoint[][][] slice(evaluatedpoint[][][] a, int start1, int end1, int start2, int end2, int start3, int end3);
positionedvector[][] slice(positionedvector[][] a, int start1, int end1, int start2, int end2);
positionedvector[][][] slice(positionedvector[][][] a, int start1, int end1, int start2, int end2, int start3, int end3);
int NULL_VERTEX;
revolution operator *(real[][] t, revolution r);
skeleton operator init();
revolution operator init();
revolution sphere(triple c=<default>, real r, int n=<default>);
path line(path p, path q, real[] t);
surface surface(revolution r, int n=<default>, pen color(int i, real j)=<default>);
void draw(picture pic=<default>, revolution r, int m=<default>, int n=<default>, pen frontpen=<default>, pen backpen=<default>, pen longitudinalpen=<default>, pen longitudinalbackpen=<default>, light light=<default>, string name=<default>, render render=<default>, projection P=<default>);
real[] tangent(path p, path q, bool side);
pen defaultbackpen;
path[] cylinder(path3 base, real h, triple axis=<default>, projection P);
revolution cylinder(triple c=<default>, real r, real h, triple axis=<default>);
revolution cone(triple c=<default>, real r, real h, triple axis=<default>, int n=<default>);
real rms(real[] A);
int[] frequency(real[] data, real[] bins);
int[] frequency(real[] data, real a, real b, int n);
int[][] frequency(real[] x, real[] y, real[] xbins, real[] ybins);
int[][] frequency(real[] x, real[] y, pair a, pair b, int nx, int ny=<default>);
int[][] frequency(pair[] z, pair a, pair b, int nx, int ny=<default>);
real mean(real[] A);
void histogram(picture pic=<default>, real[] bins, real[] count, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
void histogram(picture pic=<default>, real[] data, real a, real b, int n, bool normalize=<default>, real low=<default>, pen fillpen=<default>, pen drawpen=<default>, bool bars=<default>, Label legend=<default>, real markersize=<default>);
int bins(real[] data, int max=<default>);
path topbox(pair a, pair b);
path halfbox(pair a, pair b);
real stdev(real[] A);
real variance(real[] A);
real legendmarkersize;
real variancebiased(real[] A);
linefit operator init();
real Gaussian(real x, real sigma);
real Gaussian(real x);
pair Gaussrandpair();
real Gaussrand();
real skewness(real[] A);
linefit leastsquares(real[] x, real[] y);
linefit leastsquares(real[] x, real[] y, real[] w);
real kurtosis(real[] A);
real kurtosisexcess(real[] A);
real hwratio;
Relation r4a;
pair[] endpoints(guide[] a);
Relation r3;
picture tableau(frame[] cards, bool number=<default>);
pair min(pair[] z);
Component bp;
Component phi;
real gapfactor;
Component bm;
Braid apply(Relation r, Braid b, int step, int place);
Relation operator -(Relation r);
Component operator init();
Braid operator init();
Relation operator init();
Syzygy operator init();
Relation r4b;
Component wye;
pair max(pair[] z);
pen Orchid;
pen WildStrawberry;
pen Magenta;
pen BrickRed;
pen CadetBlue;
pen CarnationPink;
pen SpringGreen;
pen MidnightBlue;
pen OliveGreen;
pen Apricot;
pen Salmon;
pen Cyan;
pen Red;
pen RawSienna;
pen Mahogany;
pen Gray;
pen Plum;
pen BlueGreen;
pen Cerulean;
pen Blue;
pen BlueViolet;
pen RedOrange;
pen Goldenrod;
pen ForestGreen;
pen BurntOrange;
pen Tan;
pen Aquamarine;
pen Brown;
pen RubineRed;
pen Lavender;
pen TealBlue;
pen White;
pen Purple;
pen Bittersweet;
pen Orange;
pen OrangeRed;
pen Fuchsia;
pen Peach;
pen PineGreen;
pen Dandelion;
pen Black;
pen NavyBlue;
pen Rhodamine;
pen ProcessBlue;
pen YellowOrange;
pen Maroon;
pen YellowGreen;
pen LimeGreen;
pen Green;
pen GreenYellow;
pen Emerald;
pen Sepia;
pen Mulberry;
pen RedViolet;
pen SkyBlue;
pen SeaGreen;
pen VioletRed;
pen Periwinkle;
pen Violet;
pen Thistle;
pen Yellow;
pen JungleGreen;
pen CornflowerBlue;
pen DarkOrchid;
pen RoyalBlue;
pen Melon;
pen RoyalPurple;
pen Turquoise;
int lookup(tree t, int key);
tree newtree();
void write(file out=<default>, tree t);
tree operator init();
tree add(tree t, int key, int value);
bool contains(tree t, int key);
real trembleFuzz();
real trembleAngle;
real trembleRandom;
real trembleFrequency;
tremble operator init();
real magneticRadius;
void render(path3 s, real r, void f(path3, real));
real[] sample(path3 g, real r, real relstep=<default>);
path3 roundedpath(path3 A, real r);
real tubegranularity;
int coloredNodes;
int coloredSegments;
surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
coloredpath operator init();
coloredpath operator cast(path p);
coloredpath operator cast(guide p);
real degrees(rmf a, rmf b);
void importv3d(string name);
triangleGroup operator init();
pixel operator init();
CameraInformation operator init();
v3dfile operator init();
real[][] Align(real polar, real azimuth);
v3dheadertypes v3dheadertypes;
v3dheadertypes operator init();
v3dtypes v3dtypes;
v3dtypes operator init();
string VERSION;
pen Orchid;
pen Indigo;
pen Beige;
pen SlateBlue;
pen SlateGray;
pen Magenta;
pen DarkOliveGreen;
pen DarkOrange;
pen CadetBlue;
pen DeepPink;
pen SpringGreen;
pen MidnightBlue;
pen Olive;
pen Silver;
pen OliveDrab;
pen Salmon;
pen Chocolate;
pen Cyan;
pen Gainsboro;
pen Linen;
pen SandyBrown;
pen Ivory;
pen PapayaWhip;
pen Red;
pen Pink;
pen MintCream;
pen DeepSkyBlue;
pen DarkTurquoise;
pen Gray;
pen MediumBlue;
pen MediumOrchid;
pen MediumPurple;
pen MediumSeaGreen;
pen MediumSlateBlue;
pen MediumAquamarine;
pen MediumSpringGreen;
pen MediumTurquoise;
pen MediumVioletRed;
pen Plum;
pen Blue;
pen Gold;
pen BlueViolet;
pen Goldenrod;
pen ForestGreen;
pen Cornsilk;
pen Chartreuse;
pen NavajoWhite;
pen Tan;
pen DarkMagenta;
pen AntiqueWhite;
pen PaleTurquoise;
pen IndianRed;
pen Crimson;
pen Seashell;
pen Aquamarine;
pen Azure;
pen Brown;
pen BurlyWood;
pen Moccasin;
pen DarkBlue;
pen LawnGreen;
pen Lavender;
pen Peru;
pen GhostWhite;
pen White;
pen Purple;
pen WhiteSmoke;
pen DimGray;
pen Orange;
pen OrangeRed;
pen Fuchsia;
pen Bisque;
pen Honeydew;
pen RosyBrown;
pen Black;
pen LavenderBlush;
pen Khaki;
pen Wheat;
pen FireBrick;
pen PeachPuff;
pen Snow;
pen Maroon;
pen YellowGreen;
pen LimeGreen;
pen Lime;
pen SteelBlue;
pen OldLace;
pen Green;
pen GreenYellow;
pen DarkCyan;
pen FloralWhite;
pen DarkRed;
pen LemonChiffon;
pen BlanchedAlmond;
pen PowderBlue;
pen DarkGray;
pen DarkGreen;
pen DarkGoldenrod;
pen SkyBlue;
pen SeaGreen;
pen DarkViolet;
pen Aqua;
pen Teal;
pen AliceBlue;
pen Violet;
pen HotPink;
pen DodgerBlue;
pen SaddleBrown;
pen Tomato;
pen DarkKhaki;
pen Thistle;
pen LightBlue;
pen LightCoral;
pen Yellow;
pen LightCyan;
pen PaleGreen;
pen LightGoldenrodYellow;
pen LightGreen;
pen LightGrey;
pen PaleGoldenrod;
pen LightPink;
pen LightSalmon;
pen LightSeaGreen;
pen LightSkyBlue;
pen Navy;
pen PaleVioletRed;
pen Sienna;
pen CornflowerBlue;
pen LightSlateGray;
pen LightSteelBlue;
pen DarkOrchid;
pen rgbint(int r, int g, int b);
pen LightYellow;
pen Coral;
pen MistyRose;
pen DarkSalmon;
pen DarkSeaGreen;
pen RoyalBlue;
pen DarkSlateBlue;
pen DarkSlateGray;
pen Turquoise;
