summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/asy.list
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-03 22:35:04 +0000
committerKarl Berry <karl@freefriends.org>2018-04-03 22:35:04 +0000
commit36b8d1341af4a7ab1f5759d75ad1eecfc375c1f4 (patch)
tree12d09b686d2c18f245dc6fd492c09cdcd4c02ebc /Build/source/utils/asymptote/asy.list
parentd73e029b665b866fe734e44508746a2cba513fd7 (diff)
asy 2.42 sources
git-svn-id: svn://tug.org/texlive/trunk@47274 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/asy.list')
-rw-r--r--Build/source/utils/asymptote/asy.list2847
1 files changed, 1440 insertions, 1407 deletions
diff --git a/Build/source/utils/asymptote/asy.list b/Build/source/utils/asymptote/asy.list
index fbeeb675b80..dd53b3df0a5 100644
--- a/Build/source/utils/asymptote/asy.list
+++ b/Build/source/utils/asymptote/asy.list
@@ -6,6 +6,7 @@ light currentlight;
pen royalblue;
real arrowdir;
filltype filltype(int type=<default>, pen fillpen=<default>, pen drawpen=<default>, void fill2(frame f, path[] g, pen fillpen));
+void addArrow(picture pic, arrowhead arrowhead, path g, pen p, real size, real angle, filltype filltype, real position);
int Suppress;
align NoAlign;
filltype RadialShade(pen penc, pen penr);
@@ -33,6 +34,7 @@ frame[] fit2(picture[] pictures, picture all);
void addSaveFunction(void s()());
pen olive;
pen zerowinding;
+frame pack(pair align=<default> ... object[] inset);
pen deepmagenta;
path[] margin(path[] g, real xmargin, real ymargin);
string file(string s);
@@ -42,6 +44,8 @@ slice lastcut(path p, path knife);
pen darkgreen;
string verbatim(string s);
pen heavygray;
+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 darkred;
pair E;
plain_scaling plain_scaling;
@@ -56,71 +60,56 @@ pen Pentype(int n);
triple gettriple(string name=<default>, triple default=<default>, string prompt=<default>, bool store=<default>);
pen Yellow;
real cm;
+bool EndBar(picture, path, pen, marginT(path, pen));
+bool EndBar(picture, path, pen, marginT(path, pen))(real size=<default>);
pen mediumgreen;
pen heavygreen;
pen dashdotted;
bool diagnostics;
+int debuggerlines;
+frame bbox(picture pic=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
pen deepblue;
string graphicscale(real x);
pen mediumblue;
pen heavyblue;
transform invert;
pair NNW;
+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>);
pair SE;
pen thick(pen p=<default>);
pen mediumred;
marginT EndDotMargin(path, pen);
-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));
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>);
filltype RadialShadeDraw(real xmargin=<default>, real ymargin=<default>, pen penc, pen penr, pen drawpen=<default>);
marginT BeginDotMargin(path, pen);
-frame enclose(string prefix=<default>, object F, string format=<default>);
marker[] Mark;
marker Mark(int n);
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));
pen darkolive;
pen Dotted;
pen Dotted(pen p=<default>);
-string math(real x);
string math(string s);
transform fixedscaling(picture pic=<default>, pair min, pair max, pen p=<default>, bool warn=<default>);
pen Symbol(string series=<default>, string shape=<default>);
bool needshipout();
int count;
path circle(pair c, real r);
-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);
void updatefunction();
pen beveljoin;
pen orange;
pen green;
-int getint(string name=<default>, int default=<default>, string prompt=<default>, bool store=<default>);
-bool EndBar(picture, path, pen, marginT(path, pen));
-bool EndBar(picture, path, pen, marginT(path, pen))(real size=<default>);
file stdin;
-int debuggerlines;
-frame bbox(picture pic=<default>, real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
path unitcircle;
arrowhead DefaultHead;
pen white;
-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>);
position EndPoint;
Legend Legend(string label, pen plabel=<default>, pen p=<default>, frame mark=<default>, bool above=<default>);
void exitfunction();
-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>);
string cputimeformat;
pair arcpoint(path p, real L);
bool interior(int windingnumber, pen fillrule);
pen fuchsia;
-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));
pen brown;
void bar(picture pic, pair a, pair d, pen p=<default>);
picture bar(pair a, pair d, pen p=<default>);
@@ -133,20 +122,23 @@ pen palemagenta;
int mantissaBits;
void copyPairOrTriple(pairOrTriple dest, pairOrTriple src);
pen lightolive;
+string outprefix(string prefix=<default>);
+object object(frame f);
+object object(Label L);
+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>);
path arrowbase(path r, pair y, real t, real size);
-frame pack(pair align=<default> ... object[] inset);
pen[] monoPen;
bool CW;
pen Cyan;
marginT EndPenMargin(path, pen);
pair NNE;
pen roundjoin;
-void addArrow(picture pic, arrowhead arrowhead, path g, pen p, real size, real angle, filltype filltype, real position);
pen lightgray;
-picture arrow2(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT margin(path, pen)=<default>);
void startScript();
pair relative(picture pic=<default>, pair z);
position MidPoint;
+bool ArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
+bool ArcArrow(picture, path, pen, marginT(path, pen));
string Embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>);
pen deepgrey;
pen lightyellow;
@@ -156,6 +148,9 @@ side NoSide;
file stdout;
frame Seascape(frame f);
pair up;
+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));
pen ZapfChancery(string series=<default>, string shape=<default>);
pair left;
bool prconly(string format=<default>);
@@ -167,13 +162,17 @@ string getstring(string name=<default>, string default=<default>, string prompt=
marginT DotMargins(path, pen);
path[] MarkPath;
pen deepgray;
+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>);
string defaultformat(int n, string trailingzero=<default>, bool fixed=<default>, bool signed=<default>);
string defaultformat;
pen lightcyan;
pen paleblue;
+real legendmargin;
+bool None(picture, path, pen, marginT(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>);
+object align(object F, pair align);
transform scaleless(transform t);
pen thin();
real arcarrowangle;
@@ -188,15 +187,12 @@ real braceinnerangle;
guide operator ---(... guide[]);
int JOIN_IN;
real barfactor;
-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>);
pen lightgreen;
void endl(file file);
-bool ArcArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
-bool ArcArrow(picture, path, pen, marginT(path, pen));
void usersetting();
bool prc0(string format=<default>);
+bool Bars(picture, path, pen, marginT(path, pen));
+bool Bars(picture, path, pen, marginT(path, pen))(real size=<default>);
pair rectify(pair dir);
arrowhead TeXHead;
void beep();
@@ -205,9 +201,6 @@ real labelmargin(pen p=<default>);
pen lightblue;
real bracemidangle;
path unitsquare;
-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));
pen cyan;
pen grey;
transform rotation(transform t);
@@ -215,6 +208,8 @@ pair W;
pen magenta;
pair WSW;
pen nobasealign;
+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>);
frame Landscape(frame f);
real camerafactor;
pen lightred;
@@ -224,17 +219,13 @@ marginT DotMargin(path, pen);
pen squarepen;
pen deepyellow;
real barsize(pen p=<default>);
-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>);
-real legendmargin;
-bool None(picture, path, pen, marginT(path, pen));
pen AvantGarde(string series=<default>, string shape=<default>);
real circleprecision;
pen Black;
-pen Bookman(string series=<default>, string shape=<default>);
+path box(pair a, pair b);
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);
+pen Bookman(string series=<default>, string shape=<default>);
frame[] fit(string prefix=<default>, picture[] pictures, string format=<default>, bool view=<default>, string options=<default>, string script=<default>, projection P=<default>);
void report(string text);
void report(int i);
@@ -249,12 +240,11 @@ 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);
pair right;
string outformat(string format=<default>);
-string outprefix(string prefix=<default>);
-object object(Label L);
-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);
+marker markthin(path g, pen p=<default>, real thin(real fraction)=<default>, filltype filltype=<default>);
filltype Fill;
filltype Fill(real xmargin=<default>, real ymargin=<default>, pen p=<default>);
+bool EndArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
+bool EndArrow(picture, path, pen, marginT(path, pen));
pen Palatino(string series=<default>, string shape=<default>);
pair[] intersectionpoints(path p, path q, real fuzz=<default>);
pair[] intersectionpoints(explicit path[] p, explicit path[] q, real fuzz=<default>);
@@ -272,8 +262,7 @@ bool finite(pair z);
bool finite(triple v);
filltype UnFill(real xmargin=<default>, real ymargin=<default>);
filltype UnFill;
-bool Bars(picture, path, pen, marginT(path, pen));
-bool Bars(picture, path, pen, marginT(path, pen))(real size=<default>);
+frame enclose(string prefix=<default>, object F, string format=<default>);
pair I;
pair SSW;
transform Slant(transform t);
@@ -295,11 +284,14 @@ pen springgreen;
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>);
-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>);
-real circlescale;
bool ignore;
+real circlescale;
+frame dotframe(pen p=<default>, filltype filltype=<default>);
+frame dotframe;
pen darkblue;
+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);
real reltime(path p, real l);
void marknodes(picture pic=<default>, frame f, path g);
int JOIN_OUT;
@@ -310,20 +302,20 @@ arrowhead HookHead;
arrowhead HookHead(real dir=<default>, real barb=<default>);
real[] concat(... real[][]);
picture[] concat(... picture[][]);
-marker[] concat(... marker[][]);
pair[] concat(... pair[][]);
pen[] concat(... pen[][]);
coord[] concat(... coord[][]);
-coord[] concat(... coord[][]);
+object[] concat(... object[][]);
Legend[] concat(... Legend[][]);
path[] concat(... path[][]);
+coord[] concat(... coord[][]);
+Label[] concat(... Label[][]);
int[] concat(... int[][]);
void()()[] concat(... void()()[][]);
bool3[] concat(... bool3[][]);
string[] concat(... string[][]);
-object[] concat(... object[][]);
+marker[] concat(... marker[][]);
triple[] concat(... triple[][]);
-Label[] concat(... Label[][]);
frame[] concat(... frame[][]);
guide[] concat(... guide[][]);
bool[] concat(... bool[][]);
@@ -336,15 +328,19 @@ real dotfactor;
pen palecyan;
marginT BeginMargin(path, pen);
path buildcycle(... path[] p);
-marker markthin(path g, pen p=<default>, real thin(real fraction)=<default>, filltype filltype=<default>);
+void unitsize(picture pic=<default>, real x, real y=<default>, real z=<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>);
+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));
+bool Arrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
void activatequote(picture pic=<default>);
int undefined;
-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 roundcap;
void buildRestoreThunk()();
void overloadedMessage(file file);
-bool EndArrow(picture, path, pen, marginT(path, pen))(arrowhead arrowhead=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, position position=<default>);
-bool EndArrow(picture, path, pen, marginT(path, pen));
frame currentpatterns;
real arrowfactor;
pen heavyred;
@@ -365,35 +361,38 @@ 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>);
-coord[] array(int n, coord value, int depth=<default>);
+object[] array(int n, object value, int depth=<default>);
picture[] array(int n, picture value, int depth=<default>);
-marker[] array(int n, marker value, int depth=<default>);
Legend[] array(int n, Legend value, int depth=<default>);
-Label[] array(int n, Label 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>);
-object[] array(int n, object value, int depth=<default>);
+coord[] array(int n, coord value, int depth=<default>);
+marker[] array(int n, marker value, int depth=<default>);
+Label[] array(int n, Label 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);
real[] uniform(real a, real b, int n);
pair viewportsize;
+picture arrow2(arrowhead arrowhead=<default>, path g, pen p=<default>, real size=<default>, real angle=<default>, filltype filltype=<default>, marginT margin(path, pen)=<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>);
picture currentpicture;
pen palegreen;
+Label Label(Label L, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
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(explicit pair position, align align=<default>, pen p=<default>, transform embed(transform)=<default>, filltype filltype=<default>);
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>);
hsv hsv(real h, real s, real v);
hsv hsv(pen p);
pair N;
@@ -409,20 +408,21 @@ real arrowangle;
transform Rotate(transform)(pair z);
transform Rotate(transform t);
bool inXasyMode;
-frame dotframe(pen p=<default>, filltype filltype=<default>);
-frame dotframe;
real arcarrowfactor;
real mm;
plain plain;
+int getint(string name=<default>, int default=<default>, string prompt=<default>, bool store=<default>);
+int bitreverse(int a, int bits);
int CTZ(int a);
+int popcount(int a);
int NOT(int a);
int XOR(int a, int b);
int OR(int a, int b);
real[][] scale3(real s);
int AND(int a, int b);
real[] cubicroots(real a, real b, real c, real d);
-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>);
+void attach(picture dest=<default>, frame src, pair position, pair align, 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);
path[] strokepath(path g, pen p=<default>);
@@ -618,8 +618,8 @@ void clear();
void clear(string file, string text);
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 Bar(picture, path, pen, marginT(path, pen))(real size=<default>);
bool eol(file f);
bool eof(file f);
pen paleyellow;
@@ -657,15 +657,18 @@ 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>);
+marker dot;
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>);
pair ESE;
pair project(triple v, real[][] t);
real[][] AtA(real[][] a);
real[] solve(real[][] a, real[] b, bool warn=<default>);
real[][] solve(real[][] a, real[][] b, bool warn=<default>);
+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);
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);
@@ -677,7 +680,9 @@ bool[] operator !(bool[] a);
bool operator !(bool b);
int[] sequence(int n);
pen[][] sequence(pen[] f(int), int n);
-object[] sequence(object f(int), int n);
+coord[] sequence(coord f(int), int n);
+marker[] sequence(marker f(int), int n);
+Label[] sequence(Label 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);
@@ -689,11 +694,9 @@ 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);
-coord[] sequence(coord f(int), int n);
+object[] sequence(object f(int), int n);
picture[] sequence(picture f(int), int n);
-marker[] sequence(marker f(int), int n);
Legend[] sequence(Legend f(int), int n);
-Label[] sequence(Label f(int), int n);
real[][] sequence(real[] f(int), int n);
real[] sequence(real f(int), int n);
int[] sequence(int n, int m);
@@ -749,18 +752,18 @@ 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 prcshininess, pen[] colors);
void draw(frame f, triple[] v, int[][] vi, triple[] n, int[][] ni, pen[] p, real opacity, real shininess, real prcshininess, pen[] c=<default>, int[][] ci=<default>);
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>);
+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, explicit path[] g, pen p=<default>);
+void draw(frame f, path g, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen)));
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, 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>);
+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(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(frame f, path g, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen)));
void deconstruct(frame f, frame preamble=<default>, real magnification=<default>, transform xform());
void deconstruct(picture pic=<default>, real magnification=<default>);
void shipout3(string prefix, frame f, string format=<default>, real width, real height, real angle, real zoom, triple m, triple m, pair shift, real[][] t, real[] background, triple[] lights, real[][] diffuse, real[][] ambient, real[][] specular, bool viewportlighting, bool view=<default>);
@@ -794,23 +797,23 @@ void tex(picture pic=<default>, string s);
void tex(picture pic=<default>, string s, pair min, pair max);
void prepend(frame dest, frame src);
void add(frame dest, frame src);
+void add(picture pic=<default>, void d(frame f, transform t), bool exact=<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(picture pic=<default>, void d(picture, real[][]), bool exact=<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 src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
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(picture, real[][]), bool exact=<default>);
-void add(picture pic=<default>, Label L);
+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, transform), bool exact=<default>);
void add(picture dest, picture src, bool group=<default>, filltype filltype=<default>, bool above=<default>);
+void add(picture pic=<default>, Label L);
void add(frame f, transform t=<default>, Label L);
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(picture pic=<default>, void d(frame f, real[][] t, picture pic, projection P), bool exact=<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>, void d(picture, transform), bool exact=<default>);
-void add(picture src, pair position, bool group=<default>, filltype filltype=<default>, bool above=<default>);
void endgroup3(frame f);
void _begingroup3(frame f, string name, real compression, real granularity, bool closed, bool tessellate, bool dobreak, bool nobreak, triple center, int interaction);
void endgroup(frame f);
@@ -1042,31 +1045,33 @@ pen currentpen;
string VERSION;
bool alias(pair[][] a, pair[][] b);
bool alias(guide[] a, guide[] b);
-bool alias(marginT a, marginT b);
+bool alias(hsv a, hsv b);
+bool alias(coord[] a, coord[] b);
bool alias(scaleT a, scaleT b);
-bool alias(object a, object b);
-bool alias(cputime a, cputime b);
+bool alias(side a, side b);
+bool alias(marker a, marker b);
+bool alias(Label[] a, Label[] b);
bool alias(pair[] a, pair[] b);
-bool alias(coord a, coord b);
+bool alias(scaling a, scaling b);
bool alias(coord a, coord b);
bool alias(Legend a, Legend b);
-bool alias(side a, side b);
-bool alias(framedTransformStack a, framedTransformStack b);
-bool alias(Label[] a, Label[] b);
+bool alias(object a, object b);
+bool alias(cputime a, cputime b);
bool alias(int[] a, int[] b);
bool alias(string[][] a, string[][] b);
-bool alias(slice a, slice b);
+bool alias(filltype a, filltype b);
bool alias(freezableBounds a, freezableBounds b);
bool alias(projection a, projection b);
-bool alias(position a, position b);
-bool alias(arrowhead a, arrowhead b);
+bool alias(framedTransformStack a, framedTransformStack b);
bool alias(real[][] a, real[][] b);
bool alias(bool3 a, bool3 b);
bool alias(bool3[] a, bool3[] b);
bool alias(autoscaleT a, autoscaleT b);
+bool alias(position a, position b);
+bool alias(arrowhead a, arrowhead b);
bool alias(string[] a, string[] b);
bool alias(frame[] a, frame[] b);
-bool alias(scaling a, scaling b);
+bool alias(coords2 a, coords2 b);
bool alias(scaling a, scaling b);
bool alias(bounds a, bounds b);
bool alias(light a, light b);
@@ -1074,29 +1079,27 @@ bool alias(pairOrTriple a, pairOrTriple 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(coord[] a, coord[] b);
+bool alias(marginT a, marginT b);
bool alias(coord[] a, coord[] b);
bool alias(coords3 a, coords3 b);
-bool alias(Label a, Label b);
+bool alias(align a, align b);
+bool alias(object[] a, object[] b);
bool alias(Legend[] a, Legend[] b);
-bool alias(processtime a, processtime b);
bool alias(path[] a, path[] b);
bool alias(triple[] a, triple[] b);
+bool alias(coord a, coord b);
bool alias(ScaleT a, ScaleT b);
-bool alias(align a, align b);
-bool alias(object[] a, object[] b);
-bool alias(indexedTransform a, indexedTransform b);
+bool alias(Label a, Label b);
+bool alias(marker[] a, marker[] b);
+bool alias(processtime a, processtime 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(slice a, slice b);
bool alias(coords2 a, coords2 b);
bool alias(transformation a, transformation b);
bool alias(picture a, picture b);
bool alias(picture[] a, picture[] b);
-bool alias(marker a, marker b);
-bool alias(marker[] a, marker[] b);
+bool alias(indexedTransform a, indexedTransform b);
real pi;
void initXasyMode();
int randMax;
@@ -1118,26 +1121,26 @@ 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);
+Label[] map(Label f(Label), Label[] 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);
-coord[] map(coord f(coord), coord[] a);
+object[] map(object f(object), object[] a);
Legend[] map(Legend f(Legend), Legend[] a);
pair[] map(pair f(pair), pair[] a);
string[] map(string f(string), string[] a);
picture[] map(picture f(picture), picture[] a);
-marker[] map(marker f(marker), marker[] a);
void()()[] map(void f()()(void()()), void()()[] a);
pair[][] map(pair[] f(pair[]), pair[][] a);
real[] map(real f(real), real[] a);
int[] map(int f(int), int[] a);
string[][] map(string[] f(string[]), string[][] a);
-Label[] map(Label f(Label), Label[] a);
bool[] map(bool f(bool), bool[] a);
path[] map(path f(path), path[] a);
real[][] map(real[] f(real[]), real[][] a);
-object[] map(object f(object), object[] a);
+marker[] map(marker f(marker), marker[] a);
guide[] map(guide f(guide), guide[] a);
real identity(real x);
real[] identity(real[] a);
@@ -1153,9 +1156,8 @@ real[] log1p(real[] a);
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, string separator, real x, string locale=<default>);
-string format(string format, real x, string locale=<default>);
-string format(real 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 expm1(real x);
real[] expm1(real[] a);
void label(frame f, string s, string size, transform t, pair position, pair align, pen p);
@@ -1253,21 +1255,21 @@ 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(marker[] a, marker key, bool less(marker, marker));
int search(real[] a, real key, bool less(real, real));
int search(guide[] a, guide key, bool less(guide, guide));
int search(pair[] a, pair key, bool less(pair, pair));
int search(coord[] a, coord key, bool less(coord, coord));
-int search(coord[] a, coord key, bool less(coord, coord));
+int search(object[] a, object key, bool less(object, object));
int search(Legend[] a, Legend key, bool less(Legend, Legend));
int search(frame[] a, frame key, bool less(frame, frame));
+int search(coord[] a, coord key, bool less(coord, coord));
+int search(Label[] a, Label key, bool less(Label, Label));
int search(int[] a, int key, bool less(int, int));
int search(bool3[] a, bool3 key, bool less(bool3, bool3));
-int search(object[] a, object key, bool less(object, object));
+int search(marker[] a, marker key, bool less(marker, marker));
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(Label[] a, Label key, bool less(Label, Label));
int search(bool[] a, bool key, bool less(bool, bool));
int search(triple[] a, triple key, bool less(triple, triple));
int[] sort(int[] a);
@@ -1276,28 +1278,28 @@ real[] sort(real[] a);
real[][] sort(real[][] a);
string[] sort(string[] a);
string[][] sort(string[][] a);
-Label[] sort(Label[] a, bool less(Label, Label));
path[] sort(path[] a, bool less(path, path));
pair[] sort(pair[] a, bool less(pair, pair));
void()()[] sort(void()()[] a, bool less(void()(), void()()));
real[] sort(real[] a, bool less(real, real));
bool[] sort(bool[] a, bool less(bool, bool));
picture[] sort(picture[] a, bool less(picture, picture));
-marker[] sort(marker[] a, bool less(marker, marker));
pen[] sort(pen[] a, bool less(pen, pen));
pen[][] sort(pen[][] a, bool less(pen[], pen[]));
coord[] sort(coord[] a, bool less(coord, coord));
-coord[] sort(coord[] a, bool less(coord, coord));
+object[] sort(object[] a, bool less(object, object));
Legend[] sort(Legend[] a, bool less(Legend, Legend));
guide[] sort(guide[] a, bool less(guide, guide));
real[][] sort(real[][] a, bool less(real[], real[]));
triple[] sort(triple[] a, bool less(triple, triple));
+coord[] sort(coord[] a, bool less(coord, coord));
+Label[] sort(Label[] a, bool less(Label, Label));
string[] sort(string[] a, bool less(string, string));
int[] sort(int[] a, bool less(int, int));
string[][] sort(string[][] a, bool less(string[], string[]));
bool3[] sort(bool3[] a, bool less(bool3, bool3));
pair[][] sort(pair[][] a, bool less(pair[], pair[]));
-object[] sort(object[] a, bool less(object, object));
+marker[] sort(marker[] a, bool less(marker, marker));
frame[] sort(frame[] a, bool less(frame, frame));
pair postcontrol(path p, int t);
pair postcontrol(path p, real t);
@@ -1329,11 +1331,11 @@ 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);
-real max(real M, scaling s, coord[] c);
void restore();
pen basealign(int n);
int basealign(pen p=<default>);
@@ -1434,7 +1436,9 @@ 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>);
-object[] copy(object[] a, int depth=<default>);
+coord[] copy(coord[] a, int depth=<default>);
+marker[] copy(marker[] a, int depth=<default>);
+Label[] copy(Label[] 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>);
@@ -1445,11 +1449,9 @@ 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>);
-coord[] copy(coord[] a, int depth=<default>);
+object[] copy(object[] a, int depth=<default>);
picture[] copy(picture[] a, int depth=<default>);
-marker[] copy(marker[] a, int depth=<default>);
Legend[] copy(Legend[] a, int depth=<default>);
-Label[] copy(Label[] a, int depth=<default>);
pair[][] copy(pair[][] a, int depth=<default>);
real[] abs(pair[] a);
real[] abs(triple[] a);
@@ -1535,15 +1537,15 @@ triple operator *(real[][] t, triple v);
triple operator *(real x, triple v);
triple operator *(triple v, real x);
path3 operator *(real[][] t, path3 g);
-Label operator *(transform t, Label L);
+side operator *(real x, side s);
+Label operator *(real[][] t, Label L);
picture operator *(transform t, picture orig);
bounds operator *(transform t, bounds b);
path[] operator *(transform t, explicit path[] p);
+object operator *(transform t, explicit object F);
pair[] operator *(transform t, pair[] z);
-Label operator *(real[][] t, Label L);
+Label operator *(transform t, Label L);
picture operator *(real[][] t, picture orig);
-side operator *(real x, side s);
-object operator *(transform t, explicit object F);
real latitude(triple v, bool warn=<default>);
int sum(int[] a);
real sum(real[] a);
@@ -1622,13 +1624,13 @@ 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(file file=<default>, Label L, 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 write(file file=<default>, align align, void suffix(file)=<default>);
bool operator !=(bool a, bool b);
bool[] operator !=(bool a, bool[] b);
bool[] operator !=(bool[] a, bool b);
@@ -1667,40 +1669,40 @@ bool operator !=(path a, path b);
bool operator !=(path3 a, path3 b);
bool operator !=(bool3 a, bool3 b);
bool operator !=(autoscaleT a, autoscaleT b);
-bool operator !=(scaling a, scaling b);
+bool operator !=(position a, position b);
+bool operator !=(arrowhead a, arrowhead b);
+bool operator !=(coords2 a, coords2 b);
bool operator !=(scaling a, scaling b);
bool operator !=(bounds a, bounds b);
bool operator !=(light a, light b);
bool operator !=(pairOrTriple a, pairOrTriple b);
-bool operator !=(filltype a, filltype b);
+bool operator !=(marginT a, marginT b);
bool operator !=(coords3 a, coords3 b);
+bool operator !=(align a, align b);
+bool operator !=(coord a, coord b);
+bool operator !=(ScaleT a, ScaleT b);
bool operator !=(Label a, Label b);
bool operator !=(processtime a, processtime b);
-bool operator !=(ScaleT a, ScaleT b);
-bool operator !=(align a, align b);
-bool operator !=(indexedTransform a, indexedTransform b);
-bool operator !=(hsv a, hsv b);
-bool operator !=(coords2 a, coords2 b);
+bool operator !=(slice a, slice b);
bool operator !=(coords2 a, coords2 b);
bool operator !=(transformation a, transformation b);
bool operator !=(picture a, picture b);
-bool operator !=(marker a, marker b);
+bool operator !=(indexedTransform a, indexedTransform b);
bool operator !=(bool3 a, bool b);
-bool operator !=(marginT a, marginT b);
+bool operator !=(hsv a, hsv b);
bool operator !=(scaleT a, scaleT b);
-bool operator !=(object a, object b);
-bool operator !=(cputime a, cputime b);
-bool operator !=(coord a, coord b);
+bool operator !=(side a, side b);
+bool operator !=(marker a, marker b);
+bool operator !=(scaling a, scaling b);
bool operator !=(coord a, coord b);
bool operator !=(Legend a, Legend b);
-bool operator !=(side a, side b);
-bool operator !=(framedTransformStack a, framedTransformStack b);
+bool operator !=(object a, object b);
+bool operator !=(cputime a, cputime b);
bool operator !=(bool a, bool3 b);
-bool operator !=(slice a, slice b);
+bool operator !=(filltype a, filltype b);
bool operator !=(freezableBounds a, freezableBounds b);
bool operator !=(projection a, projection b);
-bool operator !=(position a, position b);
-bool operator !=(arrowhead a, arrowhead b);
+bool operator !=(framedTransformStack a, framedTransformStack b);
bool operator ==(bool a, bool b);
bool[] operator ==(bool a, bool[] b);
bool[] operator ==(bool[] a, bool b);
@@ -1739,40 +1741,40 @@ bool operator ==(path a, path b);
bool operator ==(path3 a, path3 b);
bool operator ==(bool3 a, bool3 b);
bool operator ==(autoscaleT a, autoscaleT b);
-bool operator ==(scaling a, scaling b);
+bool operator ==(position a, position b);
+bool operator ==(arrowhead a, arrowhead b);
+bool operator ==(coords2 a, coords2 b);
bool operator ==(scaling a, scaling b);
bool operator ==(bounds a, bounds b);
bool operator ==(light a, light b);
bool operator ==(pairOrTriple a, pairOrTriple b);
-bool operator ==(filltype a, filltype b);
+bool operator ==(marginT a, marginT b);
bool operator ==(coords3 a, coords3 b);
+bool operator ==(align a, align b);
+bool operator ==(coord a, coord b);
+bool operator ==(ScaleT a, ScaleT b);
bool operator ==(Label a, Label b);
bool operator ==(processtime a, processtime b);
-bool operator ==(ScaleT a, ScaleT b);
-bool operator ==(align a, align b);
-bool operator ==(indexedTransform a, indexedTransform b);
-bool operator ==(hsv a, hsv b);
-bool operator ==(coords2 a, coords2 b);
+bool operator ==(slice a, slice b);
bool operator ==(coords2 a, coords2 b);
bool operator ==(transformation a, transformation b);
bool operator ==(picture a, picture b);
-bool operator ==(marker a, marker b);
+bool operator ==(indexedTransform a, indexedTransform b);
bool operator ==(bool3 a, bool b);
-bool operator ==(marginT a, marginT b);
+bool operator ==(hsv a, hsv b);
bool operator ==(scaleT a, scaleT b);
-bool operator ==(object a, object b);
-bool operator ==(cputime a, cputime b);
-bool operator ==(coord a, coord b);
+bool operator ==(side a, side b);
+bool operator ==(marker a, marker b);
+bool operator ==(scaling a, scaling b);
bool operator ==(coord a, coord b);
bool operator ==(Legend a, Legend b);
-bool operator ==(side a, side b);
-bool operator ==(framedTransformStack a, framedTransformStack b);
+bool operator ==(object a, object b);
+bool operator ==(cputime a, cputime b);
bool operator ==(bool a, bool3 b);
-bool operator ==(slice a, slice b);
+bool operator ==(filltype a, filltype b);
bool operator ==(freezableBounds a, freezableBounds b);
bool operator ==(projection a, projection b);
-bool operator ==(position a, position b);
-bool operator ==(arrowhead a, arrowhead b);
+bool operator ==(framedTransformStack a, framedTransformStack b);
bool operator ^(bool a, bool b);
bool[] operator ^(bool a, bool[] b);
bool[] operator ^(bool[] a, bool b);
@@ -1842,9 +1844,10 @@ triple[] operator +(triple[] a);
pen operator +(pen a, pen b);
transform operator +(transform a, transform b);
pen operator +(pen p, real w);
+marginT operator +(path, pen)(marginT ma(path, pen), marginT mb(path, pen));
pen[] operator +(pen a, pen[] b);
pen operator +(real w, pen p);
-marginT operator +(path, pen)(marginT ma(path, pen), marginT mb(path, pen));
+string operator +(... string[] a);
pen[] operator +(pen[] a, pen b);
real operator cast(int);
pair operator cast(int);
@@ -1890,30 +1893,30 @@ guide operator cast(tensionSpecifier t);
guide[] operator cast(path[] g);
pair operator cast(pairOrTriple a);
triple operator cast(pairOrTriple a);
-hsv operator cast(pen p);
+position operator cast(real x);
+Label operator cast(string s);
+frame operator cast(object F);
bool3[] operator cast(bool[] b);
-align operator cast(pair dir);
-object operator cast(Label L);
-Label operator cast(object F);
-position operator cast(int x);
-object operator cast(string s);
+align operator cast(side side);
+position operator cast(pair x);
guide[] operator cast(pair[] z);
-align operator cast(triple dir);
path[] operator cast(guide[] g);
bool operator cast(bool3 b);
-position operator cast(real x);
-Label operator cast(string s);
+pair operator cast(position P);
+object operator cast(frame f);
path[] operator cast(guide g);
-align operator cast(side side);
-frame operator cast(object F);
+object operator cast(Label L);
+Label operator cast(object F);
+pen operator cast(hsv hsv);
+align operator cast(pair dir);
path[] operator cast(pair[] z);
path[] operator cast(path p);
bool[] operator cast(bool3[] b);
-position operator cast(pair x);
-pair operator cast(position P);
+hsv operator cast(pen p);
+align operator cast(triple dir);
bool3 operator cast(bool b);
-object operator cast(frame f);
-pen operator cast(hsv hsv);
+position operator cast(int x);
+object operator cast(string s);
pen deepred;
bool error(file f);
string operator ecast(int);
@@ -1941,107 +1944,105 @@ path3 operator init();
pen operator init();
frame operator init();
file operator init();
-marginT operator init();
+hsv operator init();
scaleT operator init();
-object operator init();
-cputime operator init();
-filltype operator init();
+side operator init();
+marker operator init();
+marginT operator init();
coords3 operator init();
-Label operator init();
-processtime operator init();
-slice operator init();
+align operator init();
+filltype operator init();
projection operator init();
-position operator init();
-arrowhead operator init();
-hsv operator init();
-coords2 operator init();
+framedTransformStack operator init();
+slice operator init();
coords2 operator init();
transformation operator init();
picture operator init();
-marker operator init();
-scaling operator init();
+indexedTransform operator init();
+coords2 operator init();
scaling operator init();
bounds operator init();
light operator init();
pairOrTriple operator init();
-coord operator init();
+scaling operator init();
coord operator init();
Legend operator init();
-side operator init();
-framedTransformStack operator init();
+object operator init();
+cputime operator init();
+coord operator init();
ScaleT operator init();
-align operator init();
-indexedTransform operator init();
+Label operator init();
+processtime operator init();
bool3 operator init();
autoscaleT operator init();
+position operator init();
+arrowhead operator init();
sCAD operator init();
-frame BBox(frame)(real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
-real animationdelay;
frame NoBox(frame f);
+real animationdelay;
animation operator init();
+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[] bezulate(path[] p);
-path subdivide(path p);
+bool checkSegment(path g, pair p, pair q);
void connect(path[] paths, path[] result, path[] patch);
path uncycle(path p, real t);
-bool isDuplicate(pair a, pair b, real relSize);
-path[][] containmentTree(path[] paths);
+path section(path p, real t1, real t2, bool loop=<default>);
int countIntersections(path[] p, pair start, pair end);
real[][] intersections(pair a, pair b, path p);
real maxrefinements;
+real duplicateFuzz;
+path subdivide(path p);
+path[][] containmentTree(path[] paths);
+bool isDuplicate(pair a, pair b, real relSize);
real fuzz;
path removeDuplicates(path p);
-real duplicateFuzz;
-bool checkSegment(path g, pair p, pair q);
-path section(path p, real t1, real t2, bool loop=<default>);
-key nil;
-binarytreeNode binarytreeNode(int key);
-binarytree searchtree(... int[] keys);
binarytree binarytree(... key[] keys);
+key nil;
key key(int n, bool active=<default>);
+real minDistDefault;
+real nodeMarginDefault;
+binarytreeNode binarytreeNode(int key);
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 minDistDefault;
binarytreeNode operator init();
key operator init();
binarytree operator init();
-real nodeMarginDefault;
key operator cast(int n);
int operator cast(key k);
int[] operator cast(key[] k);
-line intersection(face a, face b);
-splitface split(face a, face cut, projection P);
-void add(picture pic=<default>, face[] faces, projection P=<default>);
+binarytree searchtree(... int[] keys);
real epsilon;
+void add(picture pic=<default>, face[] faces, projection P=<default>);
+picture operator cast(face f);
+face operator cast(path3 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);
+line intersection(face a, face b);
+splitface split(face a, face cut, projection P);
void addseg(pair[][] gds, segment seg);
pen[] extend(pen[] palette, pen below, pen above);
guide[][] connect(pair[][][] points, real[] c, guide join(... guide[]));
void collect(pair[][][] points, real[] c);
+segment case3(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
segment case1(pair p0, pair p1, int edge);
real eps;
-segment case3(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
-void fill(picture pic=<default>, guide[][] g, pen[][] palette);
-pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
-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>);
+segment checktriangle(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
guide[][] contour(pair[][] z, real[][] f, real[][] midpoint=<default>, real[] c, guide join(... guide[])=<default>);
guide[][] contour(real[][] f, real[][] midpoint=<default>, pair a, pair b, real[] c, guide join(... guide[])=<default>);
guide[][] contour(real f(real, real), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(real f(pair), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(pair[] z, real[] f, real[] c, guide join(... guide[])=<default>);
-segment operator init();
-segment checktriangle(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=<default>);
segment case2(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge);
-surface surface(vertex[][] g);
-real eps;
+segment operator init();
+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);
+void fill(picture pic=<default>, guide[][] g, pen[][] palette);
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>);
@@ -2049,420 +2050,141 @@ weighted operator init();
bucket operator init();
vertex operator init();
object operator init();
-void drawAll(TreeNode node, frame f);
-real layout(int level, TreeNode node);
+surface surface(vertex[][] g);
+real eps;
+real treeLevelStep;
real treeMinNodeWidth;
real treeNodeStep;
-void add(TreeNode child, TreeNode parent);
-void draw(TreeNode root, pair pos);
-real treeLevelStep;
TreeNode makeNode(TreeNode parent=<default>, frame f);
TreeNode makeNode(TreeNode parent=<default>, Label label);
TreeNode operator init();
+void add(TreeNode child, TreeNode parent);
+void draw(TreeNode root, pair pos);
+void drawAll(TreeNode node, frame f);
+real layout(int level, TreeNode node);
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 embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>, string image=<default>);
-string hyperlink(string url, string text);
string link(string label, string text=<default>);
-void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
-bool XYAlign;
-void fmdefaults();
+string hyperlink(string url, string text);
+string embed(string name, string text=<default>, string options=<default>, real width=<default>, real height=<default>, string image=<default>);
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 drawVertexX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
+void drawVertexOX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
+void drawVertexBoxO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
void drawVertexBox(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertexTriangle(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
void drawVertex(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
+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 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 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>);
-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>);
-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>);
-path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
-path photon(path p, real amp=<default>, real width=<default>);
-path gluon(path p, real amp=<default>, real width=<default>);
-void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
-bool appendsuffix;
-real momarrowsize(pen p=<default>);
-real momarrowfactor;
real momarrowmargin;
real momarrowoffset;
pen momarrowpen;
-real momarrowlength;
-real bigvertexsize;
+bool currentmomarrow(picture, path, pen, marginT(path, pen));
+real vertexsize;
+real minvertexangle;
real linemargin;
+bool overpaint;
bool currentarrow(picture, path, pen, marginT(path, pen));
-pen vertexpen;
-pen ghostpen;
-pen scalarpen;
-pen fermionpen;
+real doublelinespacing;
+pen doublelinepen;
+real photonamplitude;
+real gluonamplitude;
real photonratio;
-real gluonratio;
-bool YAlign;
+pen gluonpen;
+pen fermionpen;
+real momarrowsize(pen p=<default>);
+void drawVertexX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
+real momarrowfactor;
void drawVertexO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
+void fmdefaults();
+void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
void drawVertexTriangleO(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 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>);
-bool currentmomarrow(picture, path, pen, marginT(path, pen));
-bool overpaint;
-real minvertexangle;
+path photon(path p, real amp=<default>, real width=<default>);
+real momarrowlength;
+path gluon(path p, real amp=<default>, real width=<default>);
+bool XYAlign;
+bool YAlign;
+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>);
+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 appendsuffix;
+pen vertexpen;
+real gluonratio;
+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>);
+path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
pen backgroundpen;
-pen doublelinepen;
+pen ghostpen;
+void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
+pen scalarpen;
void drawVertexBoxX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
-real gluonamplitude;
-pen gluonpen;
+real bigvertexsize;
+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>);
+string includegraphicscommand;
pen photonpen;
-real photonamplitude;
-real doublelinespacing;
-real vertexsize;
-void drawVertexBoxO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
pen bigvertexpen;
-string includegraphicscommand;
-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>);
Dir Down;
-Dir Up;
-path path(pair[] point ... flowdir[] dir);
+Dir Left;
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>);
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>);
-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>);
-real defaultexcursion;
+real mincirclediameter;
real minblockheight;
-flowdir Vertical;
+Dir Up;
Dir Right;
real minblockwidth;
-flowdir Horizontal;
-real mincirclediameter;
-block blockconnector(block, block)(picture pic, transform t, pen p=<default>, marginT margin(path, pen)=<default>);
-Dir Left;
+block circle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dr=<default>, real mindiameter=<default>);
block operator --(block b1, Label label);
block operator --(block b1, Dir dir);
block operator --(block b, bool arrowbar(picture, path, pen, marginT(path, pen)));
-void draw(picture pic=<default>, block block, pen p=<default>);
+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>);
flowdir operator init();
block operator init();
Dir operator init();
+flowdir Vertical;
+path path(pair[] point ... flowdir[] dir);
+void draw(picture pic=<default>, block block, pen p=<default>);
+block blockconnector(block, block)(picture pic, transform t, pen p=<default>, marginT margin(path, pen)=<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 circle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dr=<default>, real mindiameter=<default>);
-path compassmark(pair O, pair A, real position, real angle=<default>);
-arc arcsubtended(point A, point B, real angle);
+flowdir Horizontal;
+real defaultexcursion;
+arc arccircle(point A, point M, point B);
+arc arccircle(point A, point B, real angle, bool direction=<default>);
void lineinversion();
line radicalline(circle c1, circle c2);
+point radicalcenter(circle c1, circle c2);
+point radicalcenter(circle c1, circle c2, circle c3);
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);
triangle anticomplementary(triangle t);
-triangle incentral(triangle t);
+triangle symmedial(triangle t);
+triangle orthic(triangle t);
+triangle medial(triangle t);
+point intouch(side side);
+triangle intouch(triangle t);
triangle extouch(triangle t);
triangle extouch(side side);
+triangle pedal(triangle t, point M);
+line pedal(side side, point M);
+point isogonal(side side, point M);
+line isogonal(vertex V, point M);
+triangle isogonal(triangle t, point M);
+point isogonalconjugate(triangle t, point M);
point isotomicconjugate(triangle t, point M);
point[] fermat(triangle t);
-point gergonne(triangle t);
triangle cevian(triangle t, point P);
point cevian(side side, point P);
line cevian(vertex V, point P);
-line altitude(vertex V);
-line altitude(side side);
-point foot(vertex V);
-point foot(side side);
-triangle triangleabc(real a, real b, real c, real angle=<default>, point A=<default>);
-side opposite(vertex V);
-vertex opposite(side side);
-circle excircle(point A, point B, point C);
-circle excircle(side side);
-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>);
-point ppoint(arc a, real x);
-int arcnodesnumber(explicit arc a);
-path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)(conic co);
-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);
-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);
-int angularsystem;
-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);
-string conictype(bqe bqe);
-point circumcenter(point A, point B, point C);
-point circumcenter(triangle t);
-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);
-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);
-path currentpolarconicroutine(conic co, real angle1, real angle2, int n, bool direction);
-int hyperbolanodesnumber(hyperbola h, real angle1, real angle2);
-int hyperbolanodesnumberfactor;
-int parabolanodesnumber(parabola p, real angle1, real angle2);
-int ellipsenodesnumberfactor;
-int circlenodesnumber(real r);
-int circlenodesnumber(real r, real angle1, real angle2);
-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 degenerate(conic c);
-bool degenerate(circle c);
-bool degenerate(ellipse el);
-real[] realquarticroots(real a, real b, real c, real d, real e);
-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>);
-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);
-real sharpangle(line l1, line l2);
-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>);
-transform vprojection(line l, bool safe=<default>);
-bool concurrent(... line[] l);
-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 reflect(line l);
-transform reflect(line l1, line l2, bool safe=<default>);
-line Ox(coordsys R=<default>);
-line Ox;
-line extend(line l);
-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);
-pair attract(pair m, path g, real fuzz=<default>);
-point attract(point M, path g, real fuzz=<default>);
-bool simeq(point A, point B, real fuzz=<default>);
-bool simeq(point a, real b, real fuzz=<default>);
-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>);
-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>);
-path NoModifier(path);
-bool between(point M, point O, point N);
-int sgnd(real x);
-int sgnd(int x);
-pen addpenline;
-pen addpenline(pen p);
-real linemargin;
-real linemargin();
-point origin;
-point origin(coordsys R=<default>);
-vector unit(point M);
-vector unit(vector u);
-bool collinear(vector u, vector v);
-vector vector(coordsys R=<default>, pair v);
-vector vector(point M);
-transform scaleO(real x);
-transform yscale(real k, point M);
-point conj(explicit point M);
-vector conj(explicit vector u);
-hyperbola conj(hyperbola h);
-real length(explicit point M);
-real length(segment s);
-real abs(coordsys R, pair m);
-real abs(explicit 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);
-pair coordinates(point M);
-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);
-coordsys currentcoordsys;
-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);
-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>);
-coordsys cartesiansystem(pair O=<default>, pair i, pair j);
-real binomial(real n, real k);
-real approximate(real t);
-real[] approximate(real[] T);
-real epsgeo;
-transform rotate(explicit pair dir);
-transform rotate(explicit vector dir);
-transform rotate(explicit point dir);
-bool isparabola(bqe bqe);
-real sharpdegrees(line l1, line l2);
-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>);
-real exradius(point A, point B, point C);
-real exradius(side side);
-triangle orthic(triangle t);
-path square(pair z1, pair z2);
-line Oy(coordsys R=<default>);
-line Oy;
-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);
-void drawline(picture pic=<default>, triangle t, pen p=<default>);
-real operator ^(point M, explicit circle c);
-segment segment(point A, point B);
-segment segment(line l);
-segment segment(explicit side side);
-path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
-circle circumcircle(point A, point B, point C);
-circle circumcircle(triangle t);
-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);
-real focusToCenter(ellipse el, real a);
-point radicalcenter(circle c1, circle c2);
-point radicalcenter(circle c1, circle c2, circle c3);
point symmedian(triangle t);
point symmedian(side side);
line symmedian(vertex V);
-string defaultmassformat;
-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);
-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);
-bqe canonical(bqe bqe);
-point arcsubtendedcenter(point A, point B, real angle);
-transform rotateO(real a);
-point centroid(point A, point B, point C);
-point centroid(triangle t);
-coordsys coordsys(line l);
-coordsys coordsys(conic co);
-coordsys coordsys(ellipse el);
-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>);
-line complementary(explicit line l);
-line[] complementary(explicit segment s);
-arc complementary(arc a);
-triangle triangle(line l1, line l2, line l3);
-int nodesystem;
-bool byvertices;
-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 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);
-real inradius(point A, point B, point C);
-real inradius(triangle t);
-int conicnodesnumber(conic co, real angle1, real angle2, bool dir=<default>);
-int parabolanodesnumberfactor;
-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);
-mass masscenter(... mass[] M);
-bool finite(explicit point p);
-bool defined(point P);
-int conicnodesfactor;
-coordsys canonicalcartesiansystem(ellipse el);
-coordsys canonicalcartesiansystem(parabola p);
-coordsys canonicalcartesiansystem(hyperbola h);
-coordsys canonicalcartesiansystem(explicit conic co);
-int ellipsenodesnumber(real a, real b);
-int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir);
-bool sameside(point M, point N, point O);
-bool sameside(point M, point P, line l);
-point[] sameside(point M, line l1, line l2);
-void addMargins(picture pic=<default>, real lmargin=<default>, real bmargin=<default>, real rmargin=<default>, real tmargin=<default>, bool rigid=<default>, bool allObject=<default>);
-point intersectionpoint(line l1, line l2);
-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);
-point[] standardizecoordsys(coordsys R=<default>, bool warn=<default> ... point[] M);
+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>);
real EPS;
-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);
-real perpfactor;
-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 midpoint(segment s);
-point midpoint(side side);
-transform xscaleO(real x);
+bqe canonical(bqe bqe);
pair operator *(coordsys R, pair p);
path operator *(coordsys R, path g);
coordsys operator *(transform t, coordsys R);
@@ -2500,110 +2222,51 @@ circle operator *(inversion i, line l);
circle operator *(inversion i, circle c);
arc operator *(inversion i, segment s);
path operator *(inversion i, triangle t);
-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);
-circle incircle(point A, point B, point C);
-circle incircle(triangle t);
-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);
-triangle triangleAbc(real alpha, real b, real c, real angle=<default>, point A=<default>);
-real elle(real phi, real k);
-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>);
-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);
+point arcsubtendedcenter(point A, point B, real angle);
+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);
+path compassmark(pair O, pair A, real position, real angle=<default>);
+path square(pair z1, pair z2);
+real[] bangles(picture pic=<default>, parabola p);
+real[][] bangles(picture pic=<default>, hyperbola h);
+vector vector(coordsys R=<default>, pair v);
+vector vector(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>);
line median(vertex V);
line median(side side);
-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);
-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[] t, pen p=<default>, marker marker=<default>);
-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(bqe bqe1, bqe bqe2);
-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(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);
-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);
+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);
+bool degenerate(conic c);
+bool degenerate(circle c);
+bool degenerate(ellipse el);
+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>);
+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>);
+line sector(int n=<default>, int p=<default>, line l1, line l2, real angle=<default>, bool sharp=<default>);
+line hline(coordsys R=<default>);
+line hline;
+circle incircle(point A, point B, point C);
+circle incircle(triangle t);
+real binomial(real n, real k);
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>);
@@ -2634,61 +2297,54 @@ point point(explicit vertex V);
point point(trilinear tri);
point point(circle c, point M);
point point(circle c, explicit vector v);
-line reverse(line l);
-arc reverse(arc a);
-bool operator !=(explicit point M, explicit point N);
-bool operator !=(line l1, line l2);
-int[] numarray;
+point bisectorpoint(side side);
+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 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);
+string conictype(bqe bqe);
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);
+mass masscenter(... mass[] M);
+triangle triangleAbc(real alpha, real b, real c, real angle=<default>, point A=<default>);
+bool operator !=(explicit point M, explicit point N);
+bool operator !=(line l1, line l2);
+arc arcsubtended(point A, point B, real angle);
+vector unit(point M);
+vector unit(vector u);
+transform reflect(line l);
+transform reflect(line l1, line l2, bool safe=<default>);
+real sharpdegrees(line l1, line l2);
+int ellipsenodesnumberfactor;
+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);
+point foot(vertex V);
+point foot(side side);
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);
-transform yscaleO(real x);
-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();
-point isogonal(side side, point M);
-line isogonal(vertex V, point M);
-triangle isogonal(triangle t, point M);
-bqe equation(ellipse el);
-bqe equation(parabola p);
-bqe equation(hyperbola h);
-bqe equation(explicit conic co);
-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>);
-triangle antipedal(triangle t, point M);
-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);
-bool byfoci;
+triangle incentral(triangle t);
+point origin;
+point origin(coordsys R=<default>);
+string massformat(string format=<default>, string s, mass M);
+void write(explicit line l);
+void write(explicit segment s);
+void write(trilinear tri);
+line isotomic(vertex V, point M);
+point isotomic(side side, point M);
+triangle isotomic(triangle t, point M);
+transform hprojection(line l, bool safe=<default>);
+point midpoint(segment s);
+point midpoint(side side);
pair operator cast(point P);
pair[] operator cast(point[] P);
point operator cast(pair p);
@@ -2734,293 +2390,667 @@ point operator cast(vertex V);
point operator cast(trilinear tri);
circle operator cast(inversion i);
inversion operator cast(circle c);
-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;
-line isotomic(vertex V, point M);
-point isotomic(side side, point M);
-triangle isotomic(triangle t, 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);
-point isogonalconjugate(triangle t, point M);
-real centerToFocus(ellipse el, real a);
+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);
+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);
+bool collinear(vector u, vector v);
+bool between(point M, point O, point N);
+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[] t, pen p=<default>, marker marker=<default>);
+int parabolanodesnumber(parabola p, real angle1, real angle2);
+line complementary(explicit line l);
+line[] complementary(explicit segment s);
+arc complementary(arc a);
+pair coordinates(point M);
+int circlenodesnumberfactor;
+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();
+triangle triangle(line l1, line l2, line l3);
+transform vprojection(line l, bool safe=<default>);
+circle circumcircle(point A, point B, point C);
+circle circumcircle(triangle t);
pen addpenarc;
pen addpenarc(pen p);
-int[] tricoef(side side);
-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>);
-real[] intersect(path g, explicit pair p, real fuzz=<default>);
-real[] intersect(path g, explicit point P, real fuzz=<default>);
-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);
-path arctopath(arc a, int n);
+line reverse(line l);
+arc reverse(arc a);
+line vline(coordsys R=<default>);
+line vline;
+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(bqe bqe1, bqe bqe2);
+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(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);
+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);
+void drawline(picture pic=<default>, triangle t, pen p=<default>);
bool inside(ellipse el, point M);
bool inside(parabola p, point M);
+side opposite(vertex V);
+vertex opposite(side side);
+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);
+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 intersectionpoint(line l1, line l2);
+bool concurrent(... line[] l);
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>);
-path fromFocus(conic co, real angle1, real angle2, int n, bool direction);
-line hline(coordsys R=<default>);
-line hline;
-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);
-coordsys defaultcoordsys;
-point intouch(side side);
-triangle intouch(triangle t);
-point orthocentercenter(point A, point B, point C);
-point orthocentercenter(triangle t);
-real rf(real x, real y, real z);
-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);
-int relativesystem;
-real[] bangles(picture pic=<default>, parabola p);
-real[][] bangles(picture pic=<default>, hyperbola h);
-bool onpath(picture pic=<default>, path g, point M, pen p=<default>);
-real rd(real x, real y, real z);
-int circlenodesnumberfactor;
-transform xscale(real k, point M);
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);
+transform yscale(real k, point M);
+int sgnd(real x);
+int sgnd(int x);
+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);
+point ppoint(arc a, real x);
+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);
+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);
+real[] realquarticroots(real a, real b, real c, real d, real e);
+string defaultmassformat;
+coordsys canonicalcartesiansystem(ellipse el);
+coordsys canonicalcartesiansystem(parabola p);
+coordsys canonicalcartesiansystem(hyperbola h);
+coordsys canonicalcartesiansystem(explicit conic co);
+point centroid(point A, point B, point C);
+point centroid(triangle t);
+hyperbola hyperbola(point P1, point P2, real ae, bool byfoci=<default>);
+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);
+transform rotate(explicit pair dir);
+transform rotate(explicit vector dir);
+transform rotate(explicit point dir);
+void addMargins(picture pic=<default>, real lmargin=<default>, real bmargin=<default>, real rmargin=<default>, real tmargin=<default>, bool rigid=<default>, bool allObject=<default>);
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);
-triangle medial(triangle t);
-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>);
-transform hprojection(line l, bool safe=<default>);
+path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
+pen addpenline;
+pen addpenline(pen p);
+path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)(conic co);
+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);
+transform xscale(real k, point M);
+real[] intersect(path g, explicit pair p, real fuzz=<default>);
+real[] intersect(path g, explicit point P, real fuzz=<default>);
+point circumcenter(point A, point B, point C);
+point circumcenter(triangle t);
+line Ox(coordsys R=<default>);
+line Ox;
+real abs(coordsys R, pair m);
+real abs(explicit point M);
+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>);
vector dir(vertex V);
-hyperbola hyperbola(point P1, point P2, real ae, bool byfoci=<default>);
-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);
-path Circle(pair c, real r, int n=<default>);
-real maxlength(pair a, pair b, int nx, int ny);
-void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
+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);
+triangle tangential(triangle t);
+real elle(real phi, real k);
+point conj(explicit point M);
+vector conj(explicit vector u);
+hyperbola conj(hyperbola h);
+mass mass(point M, real m);
+mass mass(explicit point P);
+mass mass(coordsys R, explicit pair p, real 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);
+segment segment(point A, point B);
+segment segment(line l);
+segment segment(explicit side side);
+bool simeq(point A, point B, real fuzz=<default>);
+bool simeq(point a, real b, real fuzz=<default>);
+triangle triangleabc(real a, real b, real c, real angle=<default>, point A=<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 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>);
+bool isparabola(bqe bqe);
+real approximate(real t);
+real[] approximate(real[] T);
+coordsys defaultcoordsys;
+real epsgeo;
+real rf(real x, real y, real z);
+point gergonne(triangle t);
+int angularsystem;
+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);
+real rd(real x, real y, real z);
+coordsys cartesiansystem(pair O=<default>, pair i, pair j);
+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>);
+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);
+coordsys currentcoordsys;
+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);
+bool samecoordsys(bool warn=<default> ... point[] M);
+bool samecoordsys(bool warn=<default> ... bqe[] bqes);
+point[] standardizecoordsys(coordsys R=<default>, bool warn=<default> ... point[] M);
+pair locate(point P);
+point locate(pair p);
+pair locate(explicit vector v);
+real length(explicit point M);
+real length(segment s);
+conic conic(point F, line l, real e);
+conic conic(point M1, point M2, point M3, point M4, point M5);
+conic conic(bqe bqe);
+transform rotateO(real a);
+transform scaleO(real x);
+transform xscaleO(real x);
+line extend(line l);
+transform yscaleO(real x);
+real linemargin;
+real linemargin();
+bool defined(point P);
+triangle antipedal(triangle t, point 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);
+bool finite(explicit point p);
+point orthocentercenter(point A, point B, point C);
+point orthocentercenter(triangle t);
+bool onpath(picture pic=<default>, path g, point M, pen p=<default>);
+bool sameside(point M, point N, point O);
+bool sameside(point M, point P, line l);
+point[] sameside(point M, line l1, line l2);
+path currentpolarconicroutine(conic co, real angle1, real angle2, int n, bool direction);
+int ellipsenodesnumber(real a, real b);
+int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir);
+path NoModifier(path);
+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>);
+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);
+int hyperbolanodesnumberfactor;
+real perpfactor;
+pair attract(pair m, path g, real fuzz=<default>);
+point attract(point M, path g, real fuzz=<default>);
+point incenter(point A, point B, point C);
+point incenter(triangle t);
+coordsys coordsys(line l);
+coordsys coordsys(conic co);
+coordsys coordsys(ellipse el);
+line Oy(coordsys R=<default>);
+line Oy;
+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 centerToFocus(ellipse el, real a);
+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>);
+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 sharpangle(line l1, line l2);
+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 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);
+int conicnodesfactor;
+int conicnodesnumber(conic co, real angle1, real angle2, bool dir=<default>);
+int circlenodesnumber(real r);
+int circlenodesnumber(real r, real angle1, real angle2);
+int parabolanodesnumberfactor;
+int hyperbolanodesnumber(hyperbola h, real angle1, real angle2);
+path arcfromfocus(conic co, real angle1, real angle2, int n=<default>, bool direction=<default>);
+bool byfoci;
+bool byvertices;
+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);
+real operator ^(point M, explicit circle c);
+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>);
+path fromFocus(conic co, real angle1, real angle2, int n, bool direction);
+bqe equation(ellipse el);
+bqe equation(parabola p);
+bqe equation(hyperbola h);
+bqe equation(explicit conic co);
+real focusToCenter(ellipse el, real a);
+int relativesystem;
+int curvilinearsystem;
+int nodesystem;
+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);
+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>);
+int arcnodesnumber(explicit arc a);
+path arctopath(arc a, int n);
+real inradius(point A, point B, point C);
+real inradius(triangle t);
+real exradius(point A, point B, point C);
+real exradius(side side);
+circle excircle(point A, point B, point C);
+circle excircle(side side);
+int[] numarray;
+line altitude(vertex V);
+line altitude(side side);
+int[] tricoef(side side);
+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>);
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 checkconditionlength(int x, int y);
-guide Straight(... guide[]);
+pair polar(real r, real theta);
+string conditionlength;
+guide Hermite(... guide[])(real[] splinetype(real[], real[]));
+guide Hermite(... guide[]);
+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>);
picture secondaryY(picture primary=<default>, void f(picture));
+picture secondaryX(picture primary=<default>, void f(picture));
string noprimary;
-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>);
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 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>);
-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 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>);
-real ScaleX(picture pic=<default>, real x);
-picture secondaryX(picture primary=<default>, void f(picture));
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>);
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 limits(picture pic=<default>, pair min, pair max, bool crop=<default>);
-void crop(picture pic=<default>);
-string conditionlength;
void ylimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<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 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>);
-real ytrans(transform t, real y);
+void YZero(picture, axisT)(bool extend=<default>);
+void YZero(picture, axisT);
void YEquals(picture, axisT)(real y, bool extend=<default>);
-real xtrans(transform t, real x);
-void Top(picture, axisT)(bool extend=<default>);
-void Top(picture, axisT);
-void Bottom(picture, axisT)(bool extend=<default>);
-void Bottom(picture, axisT);
-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>);
-int Max;
-int Value;
+void XEquals(picture, axisT)(real x, bool extend=<default>);
+void Left(picture, axisT)(bool extend=<default>);
+void Left(picture, axisT);
+int Min;
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>);
-tickvalues OmitTick(tickvalues)(... real[] x);
+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 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>);
-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);
-void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
-ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
-autoscaleT defaultS;
-string DefaultLogFormat(real)(int base);
-string DefaultLogFormat(real);
-string NoZeroFormat(real);
+real zerotickfuzz;
+void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
+pair ticklabelshift(pair align, pen p=<default>);
string DefaultFormat(real);
+string Format(real)(string s=<default>);
real upscale(real b, real a);
-scaleT Broken(real a, real b, bool automin=<default>, bool automax=<default>);
+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);
+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>);
+int[] divisors(int a, int b);
+scientific scientific(real x);
+scaleT Linear;
+scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<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);
-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 XEquals(picture, axisT)(real x, bool extend=<default>);
+Label Break;
+tickvalues Break(tickvalues)(real, real);
+void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
+real linear(real)(real S(real x)=<default>, real Min, real Max);
+tickvalues None(tickvalues v);
path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
-pair zero(real);
-tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
+int Max;
+tickvalues NoZero(tickvalues);
+autoscaleT defaultS;
+real ScaleY(picture pic=<default>, real y);
+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>);
+guide Spline(... guide[]);
+bounds autoscale(real Min, real Max, scaleT scale=<default>);
+void autoscale(picture pic=<default>, void axis(picture, axisT));
void Right(picture, axisT)(bool extend=<default>);
void Right(picture, axisT);
-guide Hermite(... guide[])(real[] splinetype(real[], real[]));
-guide Hermite(... guide[]);
-scaleT Logarithmic;
-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>);
-tickvalues None(tickvalues v);
-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>);
-pair polar(real r, real theta);
-void Left(picture, axisT)(bool extend=<default>);
-void Left(picture, axisT);
-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>);
-string OmitFormat(real)(string s=<default> ... real[] x);
-tickvalues OmitTickInterval(tickvalues)(real a, real b);
-void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-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>);
+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 XZero(picture, axisT)(bool extend=<default>);
+void XZero(picture, axisT);
+void LeftRight(picture, axisT)(bool extend=<default>);
+void LeftRight(picture, axisT);
+void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+path Circle(pair c, real r, int n=<default>);
+real ytrans(transform t, real y);
+string LogFormat(real)(int base);
+string LogFormat(real);
+void BottomTop(picture, axisT)(bool extend=<default>);
+void BottomTop(picture, axisT);
+void checkconditionlength(int x, int y);
+pair zero(real);
+void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
+pair tickMin(picture pic);
+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);
+int Both;
+ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
+string NoZeroFormat(real);
+string trailingzero;
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>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
+tickvalues OmitTick(tickvalues)(... real[] x);
+void Top(picture, axisT)(bool extend=<default>);
+void Top(picture, axisT);
+real maxlength(pair a, pair b, int nx, int ny);
+real ScaleX(picture pic=<default>, real x);
pair tickMax(picture pic);
-real linear(real)(real S(real x)=<default>, real Min, real Max);
-int Both;
-pair tickMin(picture pic);
-pair ticklabelshift(pair align, pen p=<default>);
-int Min;
-scaleT Linear;
-scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>, real intercept=<default>);
-string LogFormat(real)(int base);
-string LogFormat(real);
-Label Break;
-tickvalues Break(tickvalues)(real, real);
-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>);
-tickvalues NoZero(tickvalues);
-int[] divisors(int a, int b);
scientific operator init();
bounds operator init();
ticklocate operator init();
locateT operator init();
tickvalues operator init();
axisT operator init();
+scaleT Logarithmic;
+real xtrans(transform t, real x);
+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>);
+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>);
+pair Scale(picture pic=<default>, pair z);
+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>);
+scaleT Log;
+scaleT Log(bool automin=<default>, bool automax=<default>);
string signedtrailingzero;
-void XZero(picture, axisT)(bool extend=<default>);
-void XZero(picture, axisT);
-string trailingzero;
-real ScaleY(picture pic=<default>, real y);
+scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
void xlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<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>);
-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);
+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>);
+int Value;
+void Bottom(picture, axisT)(bool extend=<default>);
+void Bottom(picture, axisT);
+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>);
string autoformat(string format=<default>, real norm ... real[] a);
-pair Scale(picture pic=<default>, pair z);
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>);
-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>);
-scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
-void YZero(picture, axisT)(bool extend=<default>);
-void YZero(picture, axisT);
-scientific scientific(real x);
-guide Spline(... guide[]);
-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>);
-bounds autoscale(real Min, real Max, scaleT scale=<default>);
-void autoscale(picture pic=<default>, void axis(picture, axisT));
-scaleT Log;
-scaleT Log(bool automin=<default>, bool automax=<default>);
-string Format(real)(string s=<default>);
string baselinetemplate;
-void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
-void BottomTop(picture, axisT)(bool extend=<default>);
-void BottomTop(picture, axisT);
-real zerotickfuzz;
-void LeftRight(picture, axisT)(bool extend=<default>);
-void LeftRight(picture, axisT);
-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>);
-void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
+guide Straight(... guide[]);
+scaleT Broken(real a, real b, bool automin=<default>, bool automax=<default>);
+tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
+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>);
+string DefaultLogFormat(real)(int base);
+string DefaultLogFormat(real);
+tickvalues OmitTickInterval(tickvalues)(real a, real b);
+void crop(picture pic=<default>);
+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 OmitFormat(real)(string s=<default> ... real[] x);
void labelz(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 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>);
+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 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 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>);
-real ScaleZ(picture pic=<default>, real z);
-void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<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 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 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 autoscale3(picture pic=<default>, void axis(picture, axisT));
+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 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 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>);
triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
+real ztrans(real[][] t, real z);
+void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT);
void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
void YZZero(picture, axisT);
-void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
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 Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
void Bounds(picture, axisT);
-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 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 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>);
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>);
-triple Dir(real)(triple dir);
surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
-void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT);
-triple tickMax3(picture pic);
+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 zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
+bool vperiodic(triple[][] a);
+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>);
+bool uperiodic(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>);
triple tickMin3(picture pic);
-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>);
-real ztrans(real[][] t, real z);
+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>);
+triple tickMax3(picture pic);
+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 labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<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 Straight(flatguide3)(... void(flatguide3)[]);
+real xtrans(real[][] t, real x);
+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>);
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
+locateT operator init();
+triple Dir(real)(triple dir);
+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>);
+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>);
+void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
+ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
+void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XZZero(picture, axisT);
+real ytrans(real[][] t, real y);
+path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
+void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
+real ScaleZ(picture pic=<default>, real z);
void Spline(flatguide3)(... void(flatguide3)[]);
+void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
+path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
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>);
@@ -3035,30 +3065,24 @@ void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(
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 label(picture pic, Label L, triple v, real x, align align, string format, pen p);
-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 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 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>);
+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 labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
+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>);
+void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
triple ticklabelshift(triple align, 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>);
-triple Scale(picture pic=<default>, triple v);
triple polar(real r, real theta, real phi);
-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>);
-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 labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<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>, 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 labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
-locateT operator init();
-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>);
-bool vperiodic(triple[][] a);
-path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XZZero(picture, axisT);
-void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+triple Scale(picture pic=<default>, triple v);
+void limits(picture pic=<default>, triple min, triple max);
+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>);
surface surface(triple[][] f, bool[][] cond=<default>);
surface surface(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
surface surface(real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
@@ -3067,290 +3091,254 @@ surface surface(triple f(pair z), pair a, pair b, int nu=<default>, int nv=<defa
surface surface(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(real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
surface surface(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>);
-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 labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-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 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 labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<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>);
-void Straight(flatguide3)(... void(flatguide3)[]);
-real xtrans(real[][] t, real x);
-real ytrans(real[][] t, real y);
-ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
-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);
-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>);
-bool uperiodic(triple[][] a);
-path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
-void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void limits(picture pic=<default>, triple min, triple max);
+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>);
real axiscoverage;
-real ylabelwidth;
real Ticksize;
+real ticksize;
int nmesh;
-int ngraph;
-bool Crop;
int nCircle;
-real ticksize;
-bool NoCrop;
real epsilon;
+real ylabelwidth;
+int ngraph;
real axislabelfactor;
+bool Crop;
+bool NoCrop;
+guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
real[] monotonic(real[] x, real[] y);
real[] clamped(real[], real[])(real slopea, real slopeb);
-real[] natural(real[] x, real[] y);
-real[] periodic(real[] x, real[] y);
+real[] linear(real[] x, real[] y);
string differentlengths;
string morepoints;
-void checklengths(int x, int y, string text=<default>);
-real[] notaknot(real[] x, real[] y);
-real[] linear(real[] x, real[] y);
-guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
-void checkincreasing(real[] x);
real[] Spline(real[] x, real[] y);
real[](real[], real[])[] Spline;
-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>);
-grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
-grid3(picture pic)[] ZX_ZYgrid;
+real[] notaknot(real[] x, real[] y);
+real[] periodic(real[] x, real[] y);
+void checklengths(int x, int y, string text=<default>);
+real[] natural(real[] x, real[] y);
+void checkincreasing(real[] x);
grid3(picture pic)[] YX_YZgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] YX_YZgrid;
+grid3(picture pic)[] YZYgrid(position pos=<default>);
+grid3(picture pic)[] YZYgrid;
grid3(picture pic)[] XZXgrid(position pos=<default>);
grid3(picture pic)[] XZXgrid;
grid3(picture pic)[] ZXZgrid(position pos=<default>);
grid3(picture pic)[] ZXZgrid;
-grid3(picture pic)[] YXYgrid(position pos=<default>);
-grid3(picture pic)[] YXYgrid;
-grid3(picture pic)[] XYXgrid(position pos=<default>);
-grid3(picture pic)[] XYXgrid;
grid3 ZYgrid(picture pic)(position pos=<default>);
grid3 ZYgrid(picture pic);
grid3 YZgrid(picture pic)(position pos=<default>);
grid3 YZgrid(picture pic);
+grid3 ZXgrid(picture pic)(position pos=<default>);
+grid3 ZXgrid(picture pic);
grid3 XZgrid(picture pic)(position pos=<default>);
grid3 XZgrid(picture pic);
grid3 YXgrid(picture pic)(position pos=<default>);
grid3 YXgrid(picture pic);
-grid3(picture pic)[] ZYZgrid(position pos=<default>);
-grid3(picture pic)[] ZYZgrid;
-triple YZ(picture pic);
-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));
-grid3(picture pic)[] YZYgrid(position pos=<default>);
-grid3(picture pic)[] YZYgrid;
-triple Y(picture pic);
-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>);
-grid3(picture pic)[][] XYZgrid(position pos=<default>);
-grid3(picture pic)[][] XYZgrid;
-position top;
grid3 XYgrid(picture pic)(position pos=<default>);
grid3 XYgrid(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>);
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>);
-triple X(picture pic);
+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>);
position middle;
-grid3 ZXgrid(picture pic)(position pos=<default>);
-grid3 ZXgrid(picture pic);
-triple XY(picture pic);
-grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
-grid3(picture pic)[] XY_XZgrid;
+grid3(picture pic)[] YXYgrid(position pos=<default>);
+grid3(picture pic)[] YXYgrid;
+grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
+grid3(picture pic)[] ZX_ZYgrid;
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>);
+position top;
+triple ZX(picture pic);
+triple X(picture pic);
grid3 operator init();
ticksgridT operator init();
+triple Y(picture pic);
+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));
+position bottom;
+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>);
+grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
+grid3(picture pic)[] XY_XZgrid;
+grid3(picture pic)[] ZYZgrid(position pos=<default>);
+grid3(picture pic)[] ZYZgrid;
+grid3(picture pic)[] XYXgrid(position pos=<default>);
+grid3(picture pic)[] XYXgrid;
+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>);
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>);
-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>);
-triple ZX(picture pic);
+triple YZ(picture pic);
+triple XY(picture pic);
+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>);
+grid3(picture pic)[][] XYZgrid(position pos=<default>);
+grid3(picture pic)[][] XYZgrid;
triple Z(picture pic);
-position bottom;
-real pwhermite(real)(real[] x, real[] y, real[] dy);
-horner hdiffdiv(real[] x, real[] y, real[] dy);
-horner diffdiv(real[] x, real[] y);
+real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
real fhorner(real)(horner sh);
horner operator init();
-real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
+horner hdiffdiv(real[] x, real[] y, real[] dy);
+real pwhermite(real)(real[] x, real[] y, real[] dy);
+horner diffdiv(real[] x, real[] y);
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 Centered;
string RightJustified;
+string Centered;
string LeftJustified;
surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
-triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
triple nextnormal(triple p, triple q);
-real eps;
triple[] firstframe(path3 p, triple optional=<default>);
+triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
+real eps;
FitControl defaultControl;
-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_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_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real[] x, real[] sdiag, real[] wa);
+void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
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);
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>);
-void lm_evaluate_default(real[] par, int m_dat, real[] fvec, lm_data_type data, lm_int_type info);
-real LM_DWARF;
-real LM_MACHEP;
-void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
-real LM_SQRT_GIANT;
+real lm_enorm(int n, real[] x, int offset=<default>);
real SQR(real x);
+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);
string[] lm_shortmsg;
-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_USERTOL;
+real LM_DWARF;
+real LM_MACHEP;
+string[] lm_infmsg;
+void lm_evaluate_default(real[] par, int m_dat, real[] fvec, lm_data_type data, lm_int_type info);
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();
-string[] lm_infmsg;
-real LM_SQRT_DWARF;
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);
-void lm_print_default(int n_par, real[] par, int m_dat, real[] fvec, lm_data_type data, int iflag, int iter, int nfev);
-real lm_enorm(int n, real[] x, int offset=<default>);
-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>);
-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>);
+void lm_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real[] x, real[] sdiag, real[] wa);
+real LM_SQRT_GIANT;
+real LM_SQRT_DWARF;
+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>);
+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>);
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 markangleradiusfactor;
-real markanglespacefactor;
+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 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 barmarksize(pen p=<default>);
+real barmarksizefactor;
real circlemarkradiusfactor;
-frame stickframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
-frame stickframe;
-real stickmarkspace(pen p=<default>);
-real stickmarksize(pen p=<default>);
-real stickmarksizefactor;
-real stickmarkspacefactor;
frame tildeframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
frame tildeframe;
-real tildemarksizefactor;
+frame duplicate(path g, int n=<default>, pair space=<default>, pen p=<default>);
void markinterval(picture pic=<default>, frame f, path g)(int n=<default>, frame f, bool rotated=<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>);
+real crossmarksizefactor;
+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>);
real tildemarksize(pen p=<default>);
-frame duplicate(path g, int n=<default>, pair space=<default>, pen p=<default>);
+real tildemarksizefactor;
+real markangleradiusfactor;
+real markanglespacefactor;
+real stickmarksizefactor;
+frame stickframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<default>);
+frame stickframe;
+real circlemarkradius(pen p=<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 stickmarksize(pen p=<default>);
+real stickmarkspacefactor;
+real stickmarkspace(pen p=<default>);
+real markangleradius(pen p=<default>);
+real markangleradius;
marker operator *(transform T, marker m);
-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>);
-frame crossframe(int n=<default>, real size=<default>, pair space=<default>, real angle=<default>, pair offset=<default>, pen p=<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>);
-real barmarksizefactor;
-real barmarksize(pen p=<default>);
-real findroot(real f(real), real a, real b, real tolerance=<default>, real fa=<default>, real fb=<default>);
+real[] leastsquares(real[][] A, real[] b, bool warn=<default>);
+pair[][] fft(pair[][] a, int sign=<default>);
+pair[] quarticroots(real a, real b, real c, real d, real e);
+real slope(path g, real x, int n=<default>);
+real slope(path g, explicit pair z, int n=<default>);
real value(path g, real x, int n=<default>);
real value(path g, explicit pair z, int n=<default>);
real time(path g, real x, int n=<default>);
real time(path g, explicit pair z, int n=<default>);
-string nopoint;
real interpolate(real[] x, real[] y, real x0, int i);
real interpolate(real[] x, real[] y, real x0);
-void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
-bool square(real[][] m);
-real[] zero(int n);
-real[][] zero(int n, int m);
+bool rectangular(real[][] m);
+bool rectangular(pair[][] m);
+bool rectangular(triple[][] m);
bool lexorder(pair a, pair b);
bool lexorder(triple a, triple b);
int unique(real[] a, real x);
int unique(string[] a, string x);
-int[][] segment(bool[] b);
-int[][] segmentlimits(bool[] b);
-bool increasing(real[] a, bool strict=<default>);
real[] partialsum(real[] a);
real[] partialsum(real[] a, real[] dx);
int[] partialsum(int[] a);
int[] partialsum(int[] a, int[] dx);
-real acot(real x);
+picture grid(int Nx, int Ny, pen p=<default>);
+real frac(real x);
real asec(real x);
real acsc(real x);
real sec(real x);
real csc(real x);
-pair exp(explicit pair z);
int quadrant(real degrees);
-pair[] quarticroots(real a, real b, real c, real d, real e);
-picture grid(int Nx, int Ny, pen p=<default>);
-real[] leastsquares(real[][] A, real[] b, bool warn=<default>);
+int[][] segment(bool[] b);
+pair exp(explicit pair z);
+string nopoint;
+real cot(real x);
pair log(explicit pair z);
-pair[][] fft(pair[][] a, int sign=<default>);
-real slope(path g, real x, int n=<default>);
-real slope(path g, explicit pair z, int n=<default>);
triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
-pair unityroot(int n, int k=<default>);
-bool rectangular(real[][] m);
-bool rectangular(pair[][] m);
-bool rectangular(triple[][] m);
-real frac(real x);
+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>);
+void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
rootfinder_settings operator init();
-bool polygon(path p);
-real cot(real x);
+real acot(real x);
real intersect(pair p, pair q, pair z);
real intersect(triple P, triple Q, triple n, triple Z);
+pair unityroot(int n, int k=<default>);
+int[][] segmentlimits(bool[] b);
+bool polygon(path p);
+bool increasing(real[] a, bool strict=<default>);
+bool square(real[][] m);
path cuttings;
path cutafter(path p, path q);
path cutbefore(path p, path q);
-void draw(picture pic=<default>, obj o, light light=<default>);
obj operator *(real[][] T, obj o);
obj operator init();
-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>);
+void draw(picture pic=<default>, obj o, light light=<default>);
+real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=<default>);
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>);
real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau);
-RKTableau RK5DP;
+real error(real error, real initial, real lowOrder, real norm, real diff);
+RKTableau RK5;
RKTableau RK4;
-RKTableau E_RK3BS;
-RKTableau E_PC;
+RKTableau RK3BS;
+real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
+RKTableau RK2;
RKTableau E_Euler;
-RKTableau Euler;
-void expfactors(real x, coefficients a);
real phi1(real x);
real[] Coeff;
real stepfactor;
-real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=<default>);
+real phi2(real x);
+RKTableau PC;
+RKTableau RK5DP;
+RKTableau E_PC;
RKTableau E_RK2;
-real error(real error, real initial, real lowOrder, real norm, real diff);
-RKTableau RK5F;
void report(real old, real h, real t);
-RKTableau PC;
-RKTableau RK2;
-real phi2(real x);
-real[] newton(int iterations=<default>, real[] f(real[]), real[][] jacobian(real[]), real[] t);
+RKTableau RK3;
coefficients operator init();
RKTableau operator init();
solution operator init();
Solution operator init();
-RKTableau RK5;
-RKTableau RK3BS;
-real phi3(real x);
void write(solution S);
void write(Solution S);
-RKTableau RK3;
+real phi3(real x);
+void expfactors(real x, coefficients a);
+RKTableau E_RK3BS;
+RKTableau Euler;
+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 RK5F;
pen[] cmyk(pen[] Palette);
-pen[] Gradient(int NColors=<default> ... pen[] p);
-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>);
-pen[] adjust(picture pic, real min, real max, real rmin, real rmax, pen[] palette);
-bounds Automatic(picture pic, real min, real max);
-bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
-pen[] BWRainbow(int NColors, bool two);
-pen[] BWRainbow(int NColors=<default>);
-transform swap;
-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>);
-real[] sequencereal;
pen[] BWRainbow2(int NColors=<default>);
pen[] Wheel(int NColors=<default>);
-pen[] Rainbow(int NColors=<default>);
-pen[] Grayscale(int NColors=<default>);
-bounds Full(picture pic, real min, real max);
+real[] sequencereal;
+pen[] adjust(picture pic, real min, real max, real rmin, real rmax, pen[] palette);
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, bool transpose=<default>, bool copy=<default>, bool antialias=<default>);
@@ -3359,156 +3347,192 @@ void image(picture pic=<default>, pen[][] data, pair initial, pair final, bool t
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);
+bounds Full(picture pic, real min, real max);
+bounds Automatic(picture pic, real min, real max);
+bounds Range(picture pic, real min, real max)(bool automin=<default>, real min=<default>, bool automax=<default>, real max=<default>);
+transform swap;
+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>);
+pen[] Gradient(int NColors=<default> ... pen[] p);
pen[] quantize(pen[] Palette, int n);
+pen[] Grayscale(int NColors=<default>);
+pen[] BWRainbow(int NColors, bool two);
+pen[] BWRainbow(int NColors=<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>);
+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[] Rainbow(int NColors=<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>);
picture tile(real Hx=<default>, real Hy=<default>, pen p=<default>, filltype filltype=<default>);
-frame tiling(string name, picture pic, pair lb=<default>, pair rt=<default>);
-picture crosshatch(real H=<default>, pen p=<default>);
picture brick(real Hx=<default>, real Hy=<default>, pen p=<default>);
+frame tiling(string name, picture pic, pair lb=<default>, pair rt=<default>);
void add(string name, picture pic, pair lb=<default>, pair rt=<default>);
-real hatchepsilon;
-void gsave(picture pic=<default>);
-pen textpen;
void grestore(picture pic=<default>);
+pen textpen;
+void gsave(picture pic=<default>);
pair align;
+rational sum(rational[] a);
+bool rectangular(rational[][] m);
+bool operator >(rational r, rational s);
+bool operator <(rational r, rational s);
+rational operator /(rational r, rational s);
+rational abs(rational r);
+int lcm(int m, int n);
+bool operator >=(rational r, rational s);
+rational operator +(rational r, rational s);
+rational operator init();
+rational min(rational a, rational b);
+rational operator -(rational r);
+rational operator -(rational r, rational s);
+rational max(rational a, rational b);
+rational max(rational[] a);
+rational operator cast(int p);
+rational[] operator cast(int[] a);
+rational[][] operator cast(int[][] a);
+void write(string s=<default>, rational r, void suffix(file)=<default>);
+void write(string s=<default>, rational[] a, void suffix(file)=<default>);
+void write(string s=<default>, rational[][] a, void suffix(file)=<default>);
+int gcd(int m, int n);
+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);
+real operator ecast(rational r);
+rational operator *(rational r, rational s);
path roundedpath(path A, real R, real S=<default>);
real infinity;
problem operator init();
void bibliography(string name);
-void bibliographystyle(string name);
+void subitem(string s, pen p=<default>);
void item(string s, pen p=<default>, bool step=<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>);
+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 filecode(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
-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>);
+void code(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
+string cropcode(string s);
+void asyinclude(string s, real xsize=<default>, real ysize=<default>);
+string[] codefile;
+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>);
+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 equation(string s, pen p=<default>);
+void vbox(string s, pen p=<default>);
+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 outline(string s=<default>, pair position=<default>, pair align=<default>, pen p=<default>);
-void incrementposition(pair z);
+void erasestep(int erasenode);
bool checkposition();
-void newslide(bool stepping=<default>);
-void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
void nextpage(pen p=<default>);
-void numberpage(pen p=<default>);
void reversevideo();
-string texcolor(pen p);
+void color(string name, string color);
+bool empty();
+void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
int preamblenodes;
-bool havepagenumber;
int page;
-int[] lastnode;
-pair startposition;
+int[] firstnode;
pair titlepageposition;
-void color(string name, string color);
pen foregroundcolor;
pen backgroundcolor;
pen figuremattpen;
-real figureborder;
-pen steppagenumberpen;
-pen pagenumberpen;
-real titleskip;
-pen titlepen;
+pair pagenumberposition;
+string newbulletcolor;
+void skip(real n=<default>);
+string oldbulletcolor;
pair titlealign;
-pair urlskip;
pair dateskip;
-real codeskip;
real itemskip;
-pen urlpen;
pen datepen;
-pen authorpen;
+pen institutionpen;
pen titlepagepen;
-pen itempen;
-string bulletcolor(string color);
-real minipagewidth;
-bool landscape;
+pen codepen;
+pair urlskip;
+transform tinv;
+picture background;
+void background();
real pageheight;
real pagewidth;
-real pagemargin;
+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>);
+void equations(string s, pen p=<default>);
+pen titlepen;
+string bulletcolor(string color);
+real minipagemargin;
+void incrementposition(pair z);
bool allowstepping;
-bool itemstep;
-bool empty();
-string[] codefile;
-void subitem(string s, pen p=<default>);
-void setpens(pen red=<default>, pen blue=<default>, pen steppen=<default>);
-bool firststep;
-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();
-pen institutionpen;
-void title(string s, pair position=<default>, pair align=<default>, pen p=<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>);
+void newslide(bool stepping=<default>);
void center(string s, pen p=<default>);
-pair currentposition;
+real titleskip;
+bool stepping;
+pen urlpen;
+pen steppagenumberpen;
void currentexitfunction();
-void skip(real n=<default>);
-void exitfunction();
void step();
-pair pagenumberposition;
-int[] firstnode;
-real minipagemargin;
+pair startposition;
+pair currentposition;
+void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<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>);
+pen itempen;
+string asywrite(string s, string preamble=<default>);
bool reverse;
-void asyinclude(string s, real xsize=<default>, real ysize=<default>);
-void vbox(string s, pen p=<default>);
+void numberpage(pen p=<default>);
+bool firststep;
+bool landscape;
+real figureborder;
string bullet;
-string oldbulletcolor;
-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>);
-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 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 equation(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>);
-picture background;
-void background();
+void normalvideo();
+real codeskip;
void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
-void erasestep(int erasenode);
-void code(bool center=<default>, string s, pen p=<default>, real indent=<default>, real skip=<default>, filltype filltype=<default>);
-transform tinv;
+bool itemstep;
+pen pagenumberpen;
+int[] lastnode;
+void usersetting();
+real aboveequationskip;
+real minipagewidth;
+void bibliographystyle(string name);
+real pagemargin;
+string texcolor(pen p);
+void title(string s, pair position=<default>, pair align=<default>, pen p=<default>, bool newslide=<default>);
+pen authorpen;
pair pagenumberalign;
-pen codepen;
-void equations(string s, pen p=<default>);
-string cropcode(string s);
-string newbulletcolor;
-bool stepping;
-string asywrite(string s, string preamble=<default>);
-void normalvideo();
+bool havepagenumber;
+void exitfunction();
+picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
+picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
path curve(pair c, real f(real, real), pair a, pair b);
path curve(pair c, real f(real), pair a, pair b);
real stepfraction;
-picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
-picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
-evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
+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>);
+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);
triple nGrad(triple)(real f(triple));
patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b);
-patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
+bool checkptincube(triple pt, triple a, triple b);
+bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
patch[] triangletoquads(path3 external, real f(triple), triple grad(triple), triple a, triple b);
triple normalout(int face);
-path3 pathinface(positionedvector v1, positionedvector v2, triple facenorm, triple edge1normout, triple edge2normout);
-path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
-real[] projecttospan_findcoeffs(triple toproject, triple v1, triple v2, bool warn=<default>);
-real angledegrees(triple a, triple b);
-int[] makecircle(edge[] edges);
-int YLOW;
-int XLOW;
-patch trianglewithnormals(path3 external, triple n1, triple n2, triple n3);
-real(real)[] bernstein;
-int ZHIGH;
-int NULL_VERTEX;
path3 bisector(path3 edgecycle, int[] savevertices);
-int XHIGH;
+triple projecttospan(triple toproject, triple v1, triple v2, real mincoeff=<default>);
int YHIGH;
-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);
-real B33(real t);
-bool checkptincube(triple pt, triple a, triple b);
+int XHIGH;
+int NULL_VERTEX;
+patch trianglewithnormals(path3 external, triple n1, triple n2, triple n3);
patch patchwithnormals(path3 external, triple[] u0normals, triple[] u1normals, triple[] v0normals, triple[] v1normals);
patch patchwithnormals(path3 external, triple normalat(triple));
-path3 pathbetween(positionedvector v1, positionedvector v2);
-path3 pathbetween(path3 edgecycle, int vertex1, int vertex2);
-bool check_fpt_zero(triple testpoint, real f(triple), triple grad(triple));
-triple projecttospan(triple toproject, triple v1, triple v2, real mincoeff=<default>);
-int ZLOW;
+real(real)[] bernstein;
+real B23(real t);
+real B13(real t);
+real B03(real t);
bool operator ==(edge a, edge b);
+real B33(real t);
pathwithnormals_settings operator init();
intset operator init();
int_to_intset operator init();
@@ -3516,299 +3540,308 @@ edge operator init();
positionedvector operator init();
evaluatedpoint operator init();
gridwithzeros operator init();
-real B13(real t);
-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>);
string operator cast(edge e);
string operator cast(edge[] edges);
string operator cast(positionedvector vv);
triple operator cast(evaluatedpoint p);
-real B23(real t);
-real B03(real t);
-revolution sphere(triple c=<default>, real r, int n=<default>);
-real[] tangent(path p, path q, bool side);
-pen defaultbackpen;
-revolution cone(triple c=<default>, real r, real h, triple axis=<default>, int n=<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>);
-revolution operator *(real[][] t, revolution r);
+real[] projecttospan_findcoeffs(triple toproject, triple v1, triple v2, bool warn=<default>);
+int YLOW;
+int ZLOW;
+int ZHIGH;
+real angledegrees(triple a, triple b);
+path3 pathbetween(positionedvector v1, positionedvector v2);
+path3 pathbetween(path3 edgecycle, int vertex1, int vertex2);
+patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
+path3 pathinface(positionedvector v1, positionedvector v2, triple facenorm, triple edge1normout, triple edge2normout);
+path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
+evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
+int XLOW;
+int[] makecircle(edge[] edges);
path[] cylinder(path3 base, real h, triple axis=<default>, projection P);
revolution cylinder(triple c=<default>, real r, real h, triple axis=<default>);
path line(path p, path q, real[] t);
+pen defaultbackpen;
+revolution cone(triple c=<default>, real r, real h, triple axis=<default>, int n=<default>);
+revolution operator *(real[][] t, revolution r);
+revolution sphere(triple c=<default>, real r, int n=<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>);
skeleton operator init();
revolution operator init();
+real[] tangent(path p, path q, bool side);
surface surface(revolution r, int n=<default>, pen color(int i, real j)=<default>);
+linefit leastsquares(real[] x, real[] y);
+real Gaussrand();
pair Gaussrandpair();
-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>);
-path topbox(pair a, pair b);
-path halfbox(pair a, pair b);
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 Gaussian(real x, real sigma);
-real Gaussian(real x);
-real kurtosisexcess(real[] A);
real kurtosis(real[] A);
-real rms(real[] A);
-real variancebiased(real[] A);
real stdev(real[] A);
+real variancebiased(real[] A);
real variance(real[] A);
real legendmarkersize;
-real mean(real[] A);
-real skewness(real[] A);
-linefit leastsquares(real[] x, real[] y);
-int bins(real[] data, int max=<default>);
-real Gaussrand();
+real rms(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>);
+real kurtosisexcess(real[] A);
+real Gaussian(real x, real sigma);
+real Gaussian(real x);
linefit operator init();
-Relation r4b;
+int bins(real[] data, int max=<default>);
+real skewness(real[] A);
+path topbox(pair a, pair b);
+path halfbox(pair a, pair b);
+real mean(real[] A);
Relation r4a;
-Relation r3;
picture tableau(frame[] cards, bool number=<default>);
Braid apply(Relation r, Braid b, int step, int place);
-real gapfactor;
-real hwratio;
-Component bp;
-Relation operator -(Relation r);
+Component wye;
Component phi;
-pair max(pair[] z);
+Component bm;
+real gapfactor;
pair[] endpoints(guide[] a);
+Relation r4b;
Component operator init();
Braid operator init();
Relation operator init();
Syzygy operator init();
-Component bm;
-Component wye;
pair min(pair[] z);
+real hwratio;
+Component bp;
+Relation operator -(Relation r);
+pair max(pair[] z);
+Relation r3;
pen Tan;
+pen Brown;
pen OliveGreen;
-pen LimeGreen;
+pen SeaGreen;
+pen JungleGreen;
pen BlueGreen;
-pen Aquamarine;
-pen TealBlue;
-pen Turquoise;
-pen SkyBlue;
pen NavyBlue;
-pen CornflowerBlue;
-pen Periwinkle;
+pen CadetBlue;
+pen BlueViolet;
pen RoyalPurple;
pen Plum;
-pen White;
-pen Purple;
pen DarkOrchid;
pen Lavender;
-pen Mulberry;
+pen Fuchsia;
+pen Rhodamine;
pen CarnationPink;
+pen Gray;
pen Salmon;
+pen RubineRed;
pen OrangeRed;
-pen Red;
pen BrickRed;
-pen YellowOrange;
-pen Apricot;
+pen Maroon;
+pen Mahogany;
+pen BurntOrange;
+pen Melon;
+pen Dandelion;
pen Goldenrod;
pen GreenYellow;
-pen RedViolet;
-pen Bittersweet;
+pen Peach;
pen VioletRed;
-pen Violet;
-pen Sepia;
-pen Mahogany;
-pen RubineRed;
-pen WildStrawberry;
+pen Cerulean;
+pen White;
+pen Yellow;
+pen PineGreen;
+pen RedViolet;
+pen Red;
+pen Magenta;
+pen Turquoise;
+pen MidnightBlue;
+pen ProcessBlue;
pen Black;
+pen Bittersweet;
+pen SkyBlue;
+pen Aquamarine;
+pen Orchid;
pen RawSienna;
pen Thistle;
-pen Blue;
-pen Maroon;
-pen Yellow;
-pen SeaGreen;
-pen Rhodamine;
-pen Fuchsia;
+pen SpringGreen;
+pen Periwinkle;
+pen Sepia;
+pen TealBlue;
+pen LimeGreen;
pen YellowGreen;
-pen Green;
+pen Violet;
pen ForestGreen;
-pen Cerulean;
+pen Mulberry;
pen Cyan;
-pen PineGreen;
-pen Dandelion;
-pen BlueViolet;
-pen RedOrange;
-pen CadetBlue;
-pen Orchid;
-pen Magenta;
-pen Emerald;
-pen JungleGreen;
-pen SpringGreen;
-pen BurntOrange;
-pen Gray;
-pen Brown;
-pen MidnightBlue;
+pen Blue;
pen Orange;
-pen ProcessBlue;
+pen CornflowerBlue;
+pen Emerald;
+pen WildStrawberry;
+pen RedOrange;
pen RoyalBlue;
-pen Melon;
-pen Peach;
+pen Apricot;
+pen Purple;
+pen YellowOrange;
+pen Green;
int lookup(tree t, int key);
bool contains(tree t, int key);
-tree newtree();
tree add(tree t, int key, int value);
tree operator init();
void write(file out=<default>, tree t);
-real trembleRandom;
-real magneticRadius;
-real trembleAngle;
+tree newtree();
real trembleFrequency;
real trembleFuzz();
+real magneticRadius;
tremble operator init();
-int coloredSegments;
-path3 roundedpath(path3 A, real r);
-surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
-surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
-int coloredNodes;
+real trembleRandom;
+real trembleAngle;
real degrees(rmf a, rmf b);
-real[] sample(path3 g, real r, real relstep=<default>);
-coloredpath operator init();
+int coloredNodes;
+path3 roundedpath(path3 A, real r);
coloredpath operator cast(path p);
coloredpath operator cast(guide p);
+surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
+coloredpath operator init();
+real[] sample(path3 g, real r, real relstep=<default>);
+surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
+int coloredSegments;
string VERSION;
-pen Turquoise;
-pen Teal;
+pen Tomato;
pen Tan;
-pen SkyBlue;
-pen Silver;
-pen Seashell;
-pen SaddleBrown;
-pen White;
-pen Purple;
+pen Snow;
+pen Sienna;
+pen SeaGreen;
+pen RosyBrown;
pen PowderBlue;
pen Plum;
-pen Red;
pen Pink;
-pen PeachPuff;
-pen PapayaWhip;
+pen PaleVioletRed;
pen PaleTurquoise;
-pen PaleGreen;
pen OrangeRed;
-pen OliveDrab;
pen OldLace;
-pen Salmon;
+pen Navy;
+pen NavajoWhite;
pen Moccasin;
+pen MistyRose;
pen MintCream;
-pen MediumTurquoise;
-pen MediumSpringGreen;
-pen MediumSlateBlue;
-pen MediumSeaGreen;
-pen MediumPurple;
-pen MediumBlue;
-pen MediumAquamarine;
-pen LimeGreen;
+pen Maroon;
pen LightYellow;
+pen LightSlateGray;
pen LightSkyBlue;
-pen LightSeaGreen;
-pen PaleGoldenrod;
pen LightSalmon;
pen LightPink;
-pen LightGrey;
pen LightGreen;
-pen LightCyan;
-pen LightBlue;
pen LemonChiffon;
+pen LawnGreen;
pen Lavender;
-pen Indigo;
-pen IndianRed;
+pen Khaki;
pen HotPink;
pen Honeydew;
pen GreenYellow;
+pen Salmon;
+pen SaddleBrown;
+pen Gray;
+pen IndianRed;
pen Goldenrod;
-pen Sienna;
-pen Gold;
-pen Gainsboro;
-pen FloralWhite;
-pen FireBrick;
-pen DodgerBlue;
-pen DarkViolet;
-pen DarkTurquoise;
+pen Fuchsia;
+pen DimGray;
+pen DeepSkyBlue;
+pen DeepPink;
pen DarkSlateGray;
-pen DarkSeaGreen;
+pen DarkSalmon;
pen DarkOrchid;
pen DarkOrange;
-pen Navy;
-pen LightSlateGray;
pen DarkOliveGreen;
pen DarkMagenta;
-pen Tomato;
-pen DarkKhaki;
pen DarkGreen;
-pen DarkGray;
-pen DarkCyan;
+pen DarkGoldenrod;
+pen DarkBlue;
pen Crimson;
pen Cornsilk;
-pen LightSteelBlue;
-pen CornflowerBlue;
-pen Chocolate;
-pen Chartreuse;
+pen Coral;
+pen PapayaWhip;
+pen CadetBlue;
pen BurlyWood;
+pen LightCoral;
+pen Brown;
+pen BlueViolet;
+pen Beige;
pen Azure;
-pen Aquamarine;
-pen NavajoWhite;
-pen SlateGray;
-pen Violet;
-pen DarkBlue;
-pen RosyBrown;
-pen Olive;
-pen DeepSkyBlue;
-pen Snow;
-pen BlanchedAlmond;
-pen LavenderBlush;
-pen Black;
-pen Bisque;
-pen DarkGoldenrod;
-pen Thistle;
-pen DarkRed;
-pen Khaki;
-pen Blue;
-pen Maroon;
-pen Yellow;
-pen DeepPink;
-pen Fuchsia;
+pen Indigo;
+pen SlateBlue;
+pen OliveDrab;
+pen DarkKhaki;
+pen Peru;
+pen PeachPuff;
pen Lime;
+pen LightGoldenrodYellow;
+pen DarkSeaGreen;
+pen MidnightBlue;
+pen White;
+pen Yellow;
+pen LightCyan;
+pen GhostWhite;
+pen Ivory;
+pen Red;
+pen Magenta;
+pen LightSeaGreen;
+pen DarkViolet;
+pen Turquoise;
pen AntiqueWhite;
-pen DimGray;
-pen MistyRose;
+pen WhiteSmoke;
+pen Bisque;
+pen PaleGreen;
+pen PaleGoldenrod;
+pen Black;
+pen SkyBlue;
+pen LightBlue;
pen ForestGreen;
-pen Green;
+pen LightGrey;
+pen AliceBlue;
pen Orchid;
+pen SandyBrown;
+pen LavenderBlush;
+pen Thistle;
+pen MediumVioletRed;
+pen FloralWhite;
+pen BlanchedAlmond;
+pen Linen;
+pen Olive;
+pen SpringGreen;
+pen LimeGreen;
+pen FireBrick;
+pen Gold;
+pen YellowGreen;
+pen MediumSpringGreen;
pen SteelBlue;
-pen DarkSalmon;
-pen SeaGreen;
-pen Peru;
-pen AliceBlue;
-pen Cyan;
-pen BlueViolet;
-pen CadetBlue;
-pen Magenta;
pen Aqua;
-pen GhostWhite;
-pen MediumOrchid;
-pen YellowGreen;
-pen WhiteSmoke;
-pen LawnGreen;
-pen Brown;
-pen SpringGreen;
-pen Beige;
-pen Coral;
-pen LightCoral;
-pen PaleVioletRed;
-pen Gray;
-pen MidnightBlue;
+pen Violet;
pen rgbint(int r, int g, int b);
-pen SlateBlue;
-pen Ivory;
-pen Orange;
-pen RoyalBlue;
+pen Cyan;
+pen Blue;
+pen Teal;
+pen MediumBlue;
+pen Chartreuse;
pen DarkSlateBlue;
-pen MediumVioletRed;
+pen SlateGray;
pen Wheat;
-pen SandyBrown;
-pen Linen;
-pen LightGoldenrodYellow;
+pen Orange;
+pen CornflowerBlue;
+pen Seashell;
+pen DarkGray;
+pen MediumOrchid;
+pen Chocolate;
+pen MediumPurple;
+pen DodgerBlue;
+pen DarkRed;
+pen DarkCyan;
+pen MediumSeaGreen;
+pen MediumSlateBlue;
+pen RoyalBlue;
+pen Silver;
+pen MediumAquamarine;
+pen Purple;
+pen MediumTurquoise;
+pen DarkTurquoise;
+pen LightSteelBlue;
+pen Green;
+pen Gainsboro;
+pen Aquamarine;