texlive[47384] Build/source/utils: asy 2.44 sources

commits+karl at tug.org commits+karl at tug.org
Sun Apr 8 22:08:34 CEST 2018


Revision: 47384
          http://tug.org/svn/texlive?view=revision&revision=47384
Author:   karl
Date:     2018-04-08 22:08:33 +0200 (Sun, 08 Apr 2018)
Log Message:
-----------
asy 2.44 sources

Modified Paths:
--------------
    trunk/Build/source/utils/README
    trunk/Build/source/utils/asymptote/ChangeLog
    trunk/Build/source/utils/asymptote/Makefile.in
    trunk/Build/source/utils/asymptote/ReleaseNotes
    trunk/Build/source/utils/asymptote/asy-keywords.el
    trunk/Build/source/utils/asymptote/asy.list
    trunk/Build/source/utils/asymptote/asymptote.spec
    trunk/Build/source/utils/asymptote/configure
    trunk/Build/source/utils/asymptote/configure.ac
    trunk/Build/source/utils/asymptote/doc/CAD.pdf
    trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
    trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
    trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
    trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
    trunk/Build/source/utils/asymptote/doc/asymptote.pdf
    trunk/Build/source/utils/asymptote/doc/png/asymptote.info
    trunk/Build/source/utils/asymptote/glrender.cc
    trunk/Build/source/utils/asymptote/main.cc
    trunk/Build/source/utils/asymptote/prc/test.cc
    trunk/Build/source/utils/asymptote/revision.cc
    trunk/Build/source/utils/asymptote/runmath.cc
    trunk/Build/source/utils/asymptote/runmath.in
    trunk/Build/source/utils/asymptote/settings.cc
    trunk/Build/source/utils/asymptote/util.cc
    trunk/Build/source/utils/asymptote/util.h
    trunk/Build/source/utils/asymptote/xstream.h

Modified: trunk/Build/source/utils/README
===================================================================
--- trunk/Build/source/utils/README	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/README	2018-04-08 20:08:33 UTC (rev 47384)
@@ -4,8 +4,7 @@
 Extra utilities we (optionally) compile for TeX Live.
 See comments in ../texk/README.
 
-
-asymptote 2.43 - checked 6apr18
+asymptote 2.44 - checked 8apr18
   update to TL from CTAN, to include prebuilt doc.
   see http://tug.org/texlive/build.html#asymptote
   and tlpkg/bin/tl-update-asy

Modified: trunk/Build/source/utils/asymptote/ChangeLog
===================================================================
--- trunk/Build/source/utils/asymptote/ChangeLog	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/ChangeLog	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1,3 +1,51 @@
+commit 878f944b9ee540c77c83f2cc61d6a97c22298553
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Sat Apr 7 20:56:45 2018 -0600
+
+    Fix portability issues.
+
+commit 1879deff46664834bad1a6bce926ce9d58baabbb
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Sat Apr 7 20:49:47 2018 -0600
+
+    Fix CLZ bug on CYGWIN.
+
+commit 2c70c1d965fb0b9fa92f97db2484d3ba4c184f40
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Sat Apr 7 20:23:08 2018 -0600
+
+    Disable trapping of floating point exceptions under CYGWIN due to strtod bug with real x=121645100408832000.0."
+
+commit 994052a59795255dc87882a3d71f4104dd041f70
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Fri Apr 6 17:19:45 2018 -0600
+
+    Improve usleep declaration.
+
+commit 6b974b3df56cd81b2960774441dd2e647bdf52da
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Fri Apr 6 17:18:50 2018 -0600
+
+    Make POSIX definition conditional to CYGWIN.
+
+commit e81df002635e1391bb540fd751cd019041e8e314
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Fri Apr 6 16:53:21 2018 -0600
+
+    Disable unused code. Redirect "make test".
+
+commit 633813249c393938f2a8ca6d3715638f83710d74
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 22:32:04 2018 -0600
+
+    Remove unused code.
+
+commit 052fd69055b077537a0701711387d4005ef6cd3b
+Author: John Bowman <bowman at ualberta.ca>
+Date:   Thu Apr 5 22:27:48 2018 -0600
+
+    Increment version to 2.44.
+
 commit f91ccd81f6f33f927f88724e23afb75988c56692
 Author: John Bowman <bowman at ualberta.ca>
 Date:   Thu Apr 5 21:21:39 2018 -0600

Modified: trunk/Build/source/utils/asymptote/Makefile.in
===================================================================
--- trunk/Build/source/utils/asymptote/Makefile.in	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/Makefile.in	2018-04-08 20:08:33 UTC (rev 47384)
@@ -306,10 +306,12 @@
 	-rm -f configure config.h.in $(DIST)
 	-rm -rf autom4te.cache
 
-check: asy FORCE
+test: asy FORCE
 	./wce
 	$(MAKE) -C tests
 
+check: test
+
 check-all: asy FORCE
 	./wce
 	$(MAKE) -C tests all

Modified: trunk/Build/source/utils/asymptote/ReleaseNotes
===================================================================
--- trunk/Build/source/utils/asymptote/ReleaseNotes	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/ReleaseNotes	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1,3 +1,8 @@
+Release Notes for Version 2.44
+
+Floating point exceptions are masked again under CYGWIN, pending strtod bug fix
+(issue #65). Various portability issues were also addressed.
+
 Release Notes for Version 2.43
 
 The real modulo operator was fixed. Vector SVG output is now supported for

Modified: trunk/Build/source/utils/asymptote/asy-keywords.el
===================================================================
--- trunk/Build/source/utils/asymptote/asy-keywords.el	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/asy-keywords.el	2018-04-08 20:08:33 UTC (rev 47384)
@@ -2,7 +2,7 @@
 ;; This file is automatically generated by asy-list.pl.
 ;; Changes will be overwritten.
 ;;
-(defvar asy-keywords-version "2.43")
+(defvar asy-keywords-version "2.44")
 
 (defvar asy-keyword-name '(
 and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))

Modified: trunk/Build/source/utils/asymptote/asy.list
===================================================================
--- trunk/Build/source/utils/asymptote/asy.list	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/asy.list	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1979,8 +1979,8 @@
 arrowhead operator init();
 frame NoBox(frame f);
 real animationdelay;
+frame BBox(frame)(real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
 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);
@@ -1993,22 +1993,22 @@
 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);
-path[][] containmentTree(path[] paths);
 binarytree binarytree(... key[] keys);
 key nil;
 key key(int n, bool active=<default>);
 real minDistDefault;
 real nodeMarginDefault;
+binarytreeNode operator init();
+key operator init();
+binarytree operator init();
+binarytreeNode binarytreeNode(int key);
 key operator cast(int n);
 int operator cast(key k);
 int[] operator cast(key[] k);
-binarytreeNode binarytreeNode(int key);
-binarytreeNode operator init();
-key operator init();
-binarytree operator init();
 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>);
 binarytree searchtree(... int[] keys);
@@ -2047,18 +2047,18 @@
 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>);
+pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
 segment operator init();
-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>);
 void fill(picture pic=<default>, guide[][] g, pen[][] palette);
 real treeMinNodeWidth;
+real treeLevelStep;
 real treeNodeStep;
 TreeNode operator init();
 TreeNode makeNode(TreeNode parent=<default>, frame f);
 TreeNode makeNode(TreeNode parent=<default>, Label label);
 void add(TreeNode child, TreeNode parent);
-real treeLevelStep;
 void draw(TreeNode root, pair pos);
 void drawAll(TreeNode node, frame f);
 real layout(int level, TreeNode node);
@@ -2091,36 +2091,36 @@
 real gluonamplitude;
 real photonratio;
 pen gluonpen;
+pen fermionpen;
+real momarrowsize(pen p=<default>);
 void drawVertexX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>);
 void drawVertexO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
-real momarrowfactor;
-real momarrowlength;
 void drawVertexTriangleO(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<default>);
 path photon(path p, real amp=<default>, real width=<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 gluon(path p, real amp=<default>, real width=<default>);
+pen bigvertexpen;
 bool XYAlign;
-path gluon(path p, real amp=<default>, real width=<default>);
-real momarrowsize(pen p=<default>);
+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 fmdefaults();
-pen fermionpen;
-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>);
+void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
 bool appendsuffix;
+real momarrowfactor;
+void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
 pen vertexpen;
-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>);
+real bigvertexsize;
 path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
-real bigvertexsize;
 real gluonratio;
-void texshipout(string stem, picture pic=<default>, bool xalign=<default>);
+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>);
 pen backgroundpen;
+real momarrowlength;
 pen ghostpen;
 pen scalarpen;
-bool YAlign;
 void drawVertexBoxX(picture pic=<default>, pair xy, real r=<default>, pen fgpen=<default>, bool erasebg=<default>, pen bgpen=<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>);
 string includegraphicscommand;
 pen photonpen;
-void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle);
-pen bigvertexpen;
 Dir Down;
 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>);
@@ -2132,8 +2132,8 @@
 Dir Right;
 real minblockwidth;
 block circle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dr=<default>, real mindiameter=<default>);
-path path(pair[] point ... flowdir[] dir);
-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>);
 block operator --(block b1, Label label);
 block operator --(block b1, Dir dir);
 block operator --(block b, bool arrowbar(picture, path, pen, marginT(path, pen)));
@@ -2141,8 +2141,8 @@
 block operator init();
 Dir operator init();
 flowdir Vertical;
-block rectangle(object header, object body, pair center=<default>, pen headerpen=<default>, pen bodypen=<default>, pen drawpen=<default>, real dx=<default>, real minheaderwidth=<default>, real minheaderheight=<default>, real minbodywidth=<default>, real minbodyheight=<default>);
-block rectangle(object body, pair center=<default>, pen fillpen=<default>, pen drawpen=<default>, real dx=<default>, real minwidth=<default>, real minheight=<default>);
+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>);
 flowdir Horizontal;
@@ -2179,6 +2179,46 @@
 point symmedian(triangle t);
 point symmedian(side side);
 line symmedian(vertex V);
+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);
 transform projection(point A, point B);
 transform projection(point A, point B, point C, point D, bool safe=<default>);
 transform projection(line l);
@@ -2228,12 +2268,14 @@
 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);
+point centroid(point A, point B, point C);
+point centroid(triangle t);
 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);
+point arcsubtendedcenter(point A, point B, real angle);
 segment segment(point A, point B);
 segment segment(line l);
 segment segment(explicit side side);
@@ -2241,10 +2283,9 @@
 path square(pair z1, pair z2);
 real[] bangles(picture pic=<default>, parabola p);
 real[][] bangles(picture pic=<default>, hyperbola h);
-line vline(coordsys R=<default>);
-line vline;
 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);
 real arclength(circle c);
@@ -2313,6 +2354,7 @@
 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>);
 vector unit(point M);
 vector unit(vector u);
@@ -2329,11 +2371,9 @@
 point relpoint(explicit conic co, explicit int x);
 point relpoint(arc a, real x);
 bool collinear(vector u, vector v);
-void clipdraw(picture pic=<default>, Label L=<default>, path g, align align=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, bool bar(picture, path, pen, marginT(path, pen))=<default>, real xmargin=<default>, real ymargin=<default>, Label legend=<default>, marker marker=<default>);
-real sharpdegrees(line l1, line l2);
-mass masscenter(... mass[] M);
-bool inside(ellipse el, point M);
-bool inside(parabola p, point M);
+line complementary(explicit line l);
+line[] complementary(explicit segment s);
+arc complementary(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>);
@@ -2341,22 +2381,19 @@
 real degrees(arc a);
 point foot(vertex V);
 point foot(side side);
+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);
 point excenter(point A, point B, point C);
 point excenter(side side);
 bool operator !=(explicit point M, explicit point N);
 bool operator !=(line l1, line l2);
 arc arcsubtended(point A, point B, real angle);
-real[] intersect(path g, explicit pair p, real fuzz=<default>);
-real[] intersect(path g, explicit point P, real fuzz=<default>);
 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);
 int ellipsenodesnumberfactor;
 pair operator cast(point P);
 pair[] operator cast(point[] P);
@@ -2410,9 +2447,6 @@
 point curpoint(conic co, real x);
 point curpoint(arc a, real x);
 triangle incentral(triangle t);
-line complementary(explicit line l);
-line[] complementary(explicit segment s);
-arc complementary(arc a);
 pair coordinates(point M);
 int circlenodesnumberfactor;
 coordsys operator init();
@@ -2432,12 +2466,16 @@
 triangle operator init();
 trilinear operator init();
 inversion operator init();
-point circumcenter(point A, point B, point C);
-point circumcenter(triangle t);
 point origin;
 point origin(coordsys R=<default>);
 string massformat(string format=<default>, string s, mass M);
 transform xscale(real k, point M);
+int parabolanodesnumber(parabola p, real angle1, real angle2);
+point midpoint(segment s);
+point midpoint(side side);
+bool inside(ellipse el, point M);
+bool inside(parabola p, point M);
+real sharpdegrees(line l1, line l2);
 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>);
@@ -2449,9 +2487,11 @@
 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);
-bool between(point M, point O, point N);
 transform vprojection(line l, bool safe=<default>);
+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>);
 circle circumcircle(point A, point B, point C);
 circle circumcircle(triangle t);
 pen addpenarc;
@@ -2458,46 +2498,6 @@
 pen addpenarc(pen p);
 line reverse(line l);
 arc reverse(arc a);
-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);
@@ -2509,8 +2509,6 @@
 void drawline(picture pic=<default>, triangle t, pen p=<default>);
 circle incircle(point A, point B, point C);
 circle incircle(triangle t);
-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);
@@ -2567,26 +2565,49 @@
 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);
+bool between(point M, point O, point N);
+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);
+real[] intersect(path g, explicit pair p, real fuzz=<default>);
+real[] intersect(path g, explicit point P, real fuzz=<default>);
 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);
+point circumcenter(point A, point B, point C);
+point circumcenter(triangle t);
 triangle triangle(line l1, line l2, line l3);
 path fromCenter(conic co, real angle1, real angle2, int n, bool direction);
 pen addpenline;
@@ -2600,31 +2621,8 @@
 abscissa nodabscissa(parabola p, point M);
 abscissa nodabscissa(conic co, point M);
 abscissa nodabscissa(arc a, point M);
-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);
+side opposite(vertex V);
+vertex opposite(side side);
 line Ox(coordsys R=<default>);
 line Ox;
 real abs(coordsys R, pair m);
@@ -2638,6 +2636,8 @@
 real angle(line l, coordsys R=<default>);
 real angle(line l1, line l2);
 real angle(arc a);
+line vline(coordsys R=<default>);
+line vline;
 triangle tangential(triangle t);
 real elle(real phi, real k);
 point conj(explicit point M);
@@ -2850,6 +2850,7 @@
 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>);
 surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<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>);
 bool vperiodic(triple[][] a);
 bool uperiodic(triple[][] a);
@@ -2862,34 +2863,34 @@
 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 labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void 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>);
-void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void 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>);
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
+locateT operator init();
+triple Dir(real)(triple dir);
 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>);
-triple Dir(real)(triple dir);
-real xtrans(real[][] t, real x);
-real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
-real ytrans(real[][] t, real y);
 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>);
-locateT operator init();
 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 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>);
 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 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 label(picture pic, Label L, triple v, real x, align align, string format, pen p);
 void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
 void XZZero(picture, axisT);
-void Straight(flatguide3)(... void(flatguide3)[]);
+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 xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
 void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
 void Spline(flatguide3)(... void(flatguide3)[]);
 void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
@@ -2932,7 +2933,6 @@
 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>);
-void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
 path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=<default>);
 path Arc(pair c, real r, real angle1, real angle2, int n=<default>);
 path Arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>, int n=<default>);
@@ -3005,12 +3005,11 @@
 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);
 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>);
-tickvalues None(tickvalues v);
-int Value;
 int Max;
 tickvalues NoZero(tickvalues);
 autoscaleT defaultS;
 real ScaleX(picture pic=<default>, real x);
+int Value;
 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>);
@@ -3020,18 +3019,14 @@
 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>);
-scaleT Logarithmic;
-void XZero(picture, axisT)(bool extend=<default>);
-void XZero(picture, axisT);
+void BottomTop(picture, axisT)(bool extend=<default>);
+void BottomTop(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 tickMin(picture pic);
 tickvalues OmitTickInterval(tickvalues)(real a, real b);
@@ -3040,6 +3035,7 @@
 ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
 pair zero(real);
 void label(picture pic, Label L, pair z, real x, align align, string format, pen p);
+scaleT Logarithmic;
 real ScaleY(picture pic=<default>, real y);
 string NoZeroFormat(real);
 string trailingzero;
@@ -3047,9 +3043,6 @@
 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>);
 void Top(picture, axisT)(bool extend=<default>);
 void Top(picture, axisT);
-pair tickMax(picture pic);
-tickvalues OmitTick(tickvalues)(... real[] x);
-scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
 void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
 scientific operator init();
 bounds operator init();
@@ -3057,20 +3050,26 @@
 locateT operator init();
 tickvalues operator init();
 axisT operator init();
-real maxlength(pair a, pair b, int nx, int ny);
-real xtrans(transform t, real x);
+real ytrans(transform t, real y);
+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>);
 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>);
+real maxlength(pair a, pair b, int nx, int ny);
+void XZero(picture, axisT)(bool extend=<default>);
+void XZero(picture, axisT);
 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>);
+real xtrans(transform t, real x);
 string signedtrailingzero;
-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>);
+scaleT BrokenLog(real a, real b, bool automin=<default>, bool automax=<default>);
+pair tickMax(picture pic);
+tickvalues OmitTick(tickvalues)(... real[] x);
 void xlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
 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>);
@@ -3081,6 +3080,7 @@
 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);
+string baselinetemplate;
 path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
 guide Straight(... guide[]);
 scaleT Broken(real a, real b, bool automin=<default>, bool automax=<default>);
@@ -3089,7 +3089,7 @@
 string DefaultLogFormat(real)(int base);
 string DefaultLogFormat(real);
 void crop(picture pic=<default>);
-string baselinetemplate;
+tickvalues None(tickvalues v);
 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);
 real axiscoverage;
@@ -3099,9 +3099,9 @@
 int nCircle;
 real epsilon;
 real ylabelwidth;
+int ngraph;
 real axislabelfactor;
 bool NoCrop;
-int ngraph;
 bool Crop;
 guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
 real[] monotonic(real[] x, real[] y);
@@ -3113,8 +3113,8 @@
 real[](real[], real[])[] Spline;
 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 checklengths(int x, int y, string text=<default>);
 void checkincreasing(real[] x);
 grid3(picture pic)[] YX_YZgrid(position posa=<default>, position posb=<default>);
 grid3(picture pic)[] YX_YZgrid;
@@ -3136,19 +3136,17 @@
 grid3 YXgrid(picture pic);
 grid3 XYgrid(picture pic)(position pos=<default>);
 grid3 XYgrid(picture pic);
+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>);
 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>);
-grid3(picture pic)[][] XYZgrid(position pos=<default>);
-grid3(picture pic)[][] XYZgrid;
 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;
+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;
-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>);
+triple X(picture pic);
+triple ZX(picture pic);
 position top;
-triple X(picture pic);
 grid3 operator init();
 ticksgridT operator init();
 triple Y(picture pic);
@@ -3155,26 +3153,28 @@
 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));
+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>);
 position bottom;
-triple ZX(picture pic);
+void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen pGrid=<default>, pen pgrid=<default>, bool above=<default>);
+void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
 ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
 grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
 grid3(picture pic)[] XY_XZgrid;
-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>);
 grid3(picture pic)[] ZYZgrid(position pos=<default>);
 grid3(picture pic)[] ZYZgrid;
 grid3(picture pic)[] XYXgrid(position pos=<default>);
 grid3(picture pic)[] XYXgrid;
+grid3(picture pic)[][] XYZgrid(position pos=<default>);
+grid3(picture pic)[][] XYZgrid;
 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 zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
 triple XY(picture pic);
 triple YZ(picture pic);
 triple Z(picture pic);
 real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=<default>);
+real pwhermite(real)(real[] x, real[] y, real[] dy);
 real fhorner(real)(horner sh);
 horner operator init();
 horner hdiffdiv(real[] x, real[] y, real[] dy);
-real pwhermite(real)(real[] x, real[] y, real[] dy);
 horner diffdiv(real[] x, real[] y);
 surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
 triple nextnormal(triple p, triple q);
@@ -3202,6 +3202,7 @@
 real LM_DWARF;
 real LM_MACHEP;
 string[] lm_infmsg;
+real LM_SQRT_GIANT;
 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();
@@ -3211,7 +3212,6 @@
 FitResult operator init();
 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_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>);
@@ -3234,12 +3234,12 @@
 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>);
 real tildemarksizefactor;
+real circlemarkradius(pen p=<default>);
 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;
@@ -3277,19 +3277,19 @@
 real csc(real x);
 int quadrant(real degrees);
 pair exp(explicit pair z);
-real intersect(pair p, pair q, pair z);
-real intersect(triple P, triple Q, triple n, triple Z);
 real cot(real x);
 pair log(explicit pair z);
-pair unityroot(int n, int k=<default>);
-triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
 real[] zero(int n);
 real[][] zero(int n, int m);
+triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);
 real findroot(real f(real), real a, real b, real tolerance=<default>, real fa=<default>, real fb=<default>);
-string nopoint;
 void drawline(picture pic=<default>, pair P, pair Q, pen p=<default>);
 rootfinder_settings operator init();
 real acot(real x);
+string nopoint;
+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>);
 bool polygon(path p);
 bool increasing(real[] a, bool strict=<default>);
 bool square(real[][] m);
@@ -3321,19 +3321,19 @@
 RKTableau E_RK2;
 void report(real old, real h, real t);
 RKTableau RK3;
+real phi3(real x);
 coefficients operator init();
 RKTableau operator init();
 solution operator init();
 Solution operator init();
-RKTableau PC;
-real phi3(real x);
 void write(solution S);
 void write(Solution S);
 void expfactors(real x, coefficients a);
 RKTableau E_RK3BS;
 real[] solveBVP(real[] f(real, real[]), real a, real b=<default>, real h=<default>, int n=<default>, bool dynamic=<default>, real tolmin=<default>, real tolmax=<default>, real dtmin=<default>, real dtmax=<default>, RKTableau tableau, bool verbose=<default>, real[] initial(real[]), real[] discrepancy(real[]), real[] guess, int iterations=<default>);
+RKTableau Euler;
 RKTableau RK5F;
-RKTableau Euler;
+RKTableau PC;
 pen[] cmyk(pen[] Palette);
 pen[] BWRainbow2(int NColors=<default>);
 pen[] Wheel(int NColors=<default>);
@@ -3354,10 +3354,10 @@
 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[] Rainbow(int NColors=<default>);
 pen[] Grayscale(int NColors=<default>);
 pen[] BWRainbow(int NColors, bool two);
 pen[] BWRainbow(int NColors=<default>);
+pen[] Rainbow(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>);
@@ -3381,16 +3381,20 @@
 bool operator <(rational r, rational s);
 rational operator /(rational r, rational s);
 rational abs(rational r);
+bool operator >=(rational r, rational s);
 int lcm(int m, int n);
-bool operator >=(rational r, rational s);
+bool operator <=(rational r, rational s);
 rational operator +(rational r, rational s);
-bool operator <=(rational r, rational s);
 int gcd(int m, int n);
+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);
-rational operator init();
 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>);
@@ -3398,10 +3402,6 @@
 bool[] operator ==(rational[] r, rational s);
 bool operator ==(rational[] r, rational[] s);
 bool operator ==(rational[][] r, rational[][] s);
-rational operator -(rational r);
-rational operator -(rational r, rational s);
-rational max(rational a, rational b);
-rational max(rational[] a);
 real operator ecast(rational r);
 rational operator *(rational r, rational s);
 path roundedpath(path A, real R, real S=<default>);
@@ -3463,37 +3463,37 @@
 string bulletcolor(string color);
 real minipagemargin;
 void incrementposition(pair z);
+void equations(string s, pen p=<default>);
 void newslide(bool stepping=<default>);
 void center(string s, pen p=<default>);
 real titleskip;
-bool stepping;
-pair currentposition;
+pen steppagenumberpen;
 void step();
+void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
 pair startposition;
+pair currentposition;
 void titlepage(string title, string author, string institution=<default>, string date=<default>, string url=<default>, bool newslide=<default>);
 bool allowstepping;
+void currentexitfunction();
 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 numberpage(pen p=<default>);
-void multifigure(string[] slist, string options=<default>, string caption=<default>, pair align=<default>, pen p=<default>, pen figuremattpen=<default>, bool step=<default>);
 bool firststep;
+bool landscape;
 void normalvideo();
+bool stepping;
 real codeskip;
-bool landscape;
 real figureborder;
 pen urlpen;
 string bullet;
-pen steppagenumberpen;
 bool itemstep;
 pen pagenumberpen;
-void currentexitfunction();
 void usersetting();
 real aboveequationskip;
 real minipagewidth;
 void bibliographystyle(string name);
-void equations(string s, pen p=<default>);
 real pagemargin;
 int[] lastnode;
 string texcolor(pen p);
@@ -3530,13 +3530,7 @@
 real B23(real t);
 real B13(real t);
 real B03(real t);
-evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
 bool operator ==(edge a, edge b);
-real B33(real t);
-string operator cast(edge e);
-string operator cast(edge[] edges);
-string operator cast(positionedvector vv);
-triple operator cast(evaluatedpoint p);
 pathwithnormals_settings operator init();
 intset operator init();
 int_to_intset operator init();
@@ -3544,11 +3538,16 @@
 positionedvector operator init();
 evaluatedpoint operator init();
 gridwithzeros operator init();
+string operator cast(edge e);
+string operator cast(edge[] edges);
+string operator cast(positionedvector vv);
+triple operator cast(evaluatedpoint p);
+real B33(real t);
 real[] projecttospan_findcoeffs(triple toproject, triple v1, triple v2, bool warn=<default>);
 int ZLOW;
+int YLOW;
 int ZHIGH;
 real angledegrees(triple a, triple b);
-int YLOW;
 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>);
@@ -3556,6 +3555,7 @@
 path3 pathinface(positionedvector v1, positionedvector v2, int face, int edge1face, int edge2face);
 patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles);
 int XLOW;
+evaluatedpoint[][][] make3dgrid(triple a, triple b, int nx, int ny, int nz, real f(triple), bool allowzero=<default>);
 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>);
@@ -3583,11 +3583,11 @@
 real variance(real[] A);
 real legendmarkersize;
 real rms(real[] A);
-int bins(real[] data, int max=<default>);
 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);
 linefit operator init();
+int bins(real[] data, int max=<default>);
 real skewness(real[] A);
 path topbox(pair a, pair b);
 real Gaussian(real x, real sigma);
@@ -3601,17 +3601,17 @@
 Component phi;
 Component bm;
 real gapfactor;
+Component bp;
+pair min(pair[] z);
 pair[] endpoints(guide[] a);
-Relation r4b;
 Component operator init();
 Braid operator init();
 Relation operator init();
 Syzygy operator init();
-pair min(pair[] z);
-real hwratio;
-Component bp;
+Relation r4b;
 Relation operator -(Relation r);
 pair max(pair[] z);
+real hwratio;
 Relation r3;
 pen Tan;
 pen Brown;
@@ -3641,7 +3641,6 @@
 pen Dandelion;
 pen Goldenrod;
 pen GreenYellow;
-pen Violet;
 pen Peach;
 pen SkyBlue;
 pen VioletRed;
@@ -3649,29 +3648,31 @@
 pen White;
 pen Yellow;
 pen PineGreen;
+pen Violet;
 pen RedViolet;
 pen Red;
 pen Magenta;
+pen TealBlue;
+pen Turquoise;
 pen MidnightBlue;
-pen Orchid;
-pen Turquoise;
 pen ProcessBlue;
+pen Emerald;
 pen Black;
 pen Bittersweet;
 pen ForestGreen;
+pen Aquamarine;
 pen RawSienna;
 pen Thistle;
-pen TealBlue;
 pen SpringGreen;
-pen Sepia;
+pen Periwinkle;
 pen LimeGreen;
+pen Orchid;
 pen YellowGreen;
-pen Periwinkle;
+pen Sepia;
 pen Mulberry;
 pen Cyan;
 pen Blue;
 pen Orange;
-pen Emerald;
 pen CornflowerBlue;
 pen WildStrawberry;
 pen RedOrange;
@@ -3680,7 +3681,6 @@
 pen Purple;
 pen YellowOrange;
 pen Green;
-pen Aquamarine;
 int lookup(tree t, int key);
 bool contains(tree t, int key);
 tree operator init();
@@ -3696,10 +3696,10 @@
 real degrees(rmf a, rmf b);
 surface tube(path3 g, coloredpath section, transform T(real)=<default>, real corner=<default>, real relstep=<default>);
 path3 roundedpath(path3 A, real r);
+int coloredNodes;
+coloredpath operator init();
 coloredpath operator cast(path p);
 coloredpath operator cast(guide p);
-int coloredNodes;
-coloredpath operator init();
 surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic);
 int coloredSegments;
 real[] sample(path3 g, real r, real relstep=<default>);
@@ -3773,7 +3773,6 @@
 pen Lime;
 pen LightGoldenrodYellow;
 pen DarkSeaGreen;
-pen SkyBlue;
 pen White;
 pen Yellow;
 pen LightCyan;
@@ -3782,10 +3781,14 @@
 pen Magenta;
 pen LightSeaGreen;
 pen DarkViolet;
+pen Orchid;
 pen Turquoise;
+pen MidnightBlue;
+pen WhiteSmoke;
 pen PaleGreen;
 pen PaleGoldenrod;
 pen Black;
+pen SkyBlue;
 pen LightBlue;
 pen Bisque;
 pen ForestGreen;
@@ -3796,30 +3799,27 @@
 pen LavenderBlush;
 pen Thistle;
 pen MediumVioletRed;
-pen SteelBlue;
+pen FloralWhite;
 pen DarkSlateBlue;
 pen SlateGray;
-pen MediumSpringGreen;
 pen Ivory;
 pen BlanchedAlmond;
 pen Linen;
 pen Olive;
 pen SpringGreen;
-pen FloralWhite;
 pen LimeGreen;
 pen FireBrick;
 pen Gold;
-pen Orchid;
 pen AntiqueWhite;
 pen YellowGreen;
-pen MidnightBlue;
-pen WhiteSmoke;
+pen MediumSpringGreen;
+pen SteelBlue;
+pen Aqua;
+pen Violet;
 pen rgbint(int r, int g, int b);
 pen Cyan;
 pen Teal;
 pen Blue;
-pen Aqua;
-pen Violet;
 pen MediumBlue;
 pen Chartreuse;
 pen Wheat;

Modified: trunk/Build/source/utils/asymptote/asymptote.spec
===================================================================
--- trunk/Build/source/utils/asymptote/asymptote.spec	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/asymptote.spec	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1,7 +1,7 @@
 %{!?_texmf: %global _texmf %(eval "echo `kpsewhich -expand-var '$TEXMFLOCAL'`")}
 
 Name:           asymptote
-Version:        2.43
+Version:        2.44
 Release:        1%{?dist}
 Summary:        Descriptive vector graphics language
 

Modified: trunk/Build/source/utils/asymptote/configure
===================================================================
--- trunk/Build/source/utils/asymptote/configure	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/configure	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.43.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.44.
 #
 # Report bugs to <http://sourceforge.net/projects/asymptote>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='Asymptote'
 PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.43'
-PACKAGE_STRING='Asymptote 2.43'
+PACKAGE_VERSION='2.44'
+PACKAGE_STRING='Asymptote 2.44'
 PACKAGE_BUGREPORT='http://sourceforge.net/projects/asymptote'
 PACKAGE_URL=''
 
@@ -1283,7 +1283,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Asymptote 2.43 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.44 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1348,7 +1348,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Asymptote 2.43:";;
+     short | recursive ) echo "Configuration of Asymptote 2.44:";;
    esac
   cat <<\_ACEOF
 
@@ -1462,7 +1462,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Asymptote configure 2.43
+Asymptote configure 2.44
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2048,7 +2048,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Asymptote $as_me 2.43, which was
+It was created by Asymptote $as_me 2.44, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2505,7 +2505,7 @@
 
 
 
-test "$CXXFLAGS" || CXXFLAGS=""
+test "$CXXFLAGS" || CXXFLAGS="-std=c++11"
 
 test "$CFLAGS" || CFLAGS="-g -O3"
 
@@ -5837,11 +5837,6 @@
 
 
 
-case $host in
-  *mac*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;;
-  *)       HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;;
-esac
-
 case "${host_os}" in
     darwin*)
       GCVERSION=7.6.0
@@ -8552,7 +8547,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Asymptote $as_me 2.43, which was
+This file was extended by Asymptote $as_me 2.44, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8614,7 +8609,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Asymptote config.status 2.43
+Asymptote config.status 2.44
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/utils/asymptote/configure.ac
===================================================================
--- trunk/Build/source/utils/asymptote/configure.ac	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/configure.ac	2018-04-08 20:08:33 UTC (rev 47384)
@@ -3,7 +3,7 @@
 # this file.
 
 AC_PREREQ(2)
-AC_INIT([Asymptote],[2.43],[http://sourceforge.net/projects/asymptote])
+AC_INIT([Asymptote],[2.44],[http://sourceforge.net/projects/asymptote])
 VERSION=$PACKAGE_VERSION
 AC_SUBST(VERSION)
 m4_include([ax_pthread.m4])
@@ -124,11 +124,6 @@
 			      [Define to 1 if you have tr1/unordered_map]),
 	[AC_CHECK_HEADER(ext/hash_map,,OPTIONS=$OPTIONS"-DNOHASH ")])])
 
-case $host in
-  *mac*) HELLO_SYSTEM='hello-linux.$(OBJEXT)' ;;
-  *)       HELLO_SYSTEM='hello-generic.$(OBJEXT)' ;;
-esac
-
 case "${host_os}" in
     darwin*)
       GCVERSION=7.6.0

Modified: trunk/Build/source/utils/asymptote/doc/CAD.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
===================================================================
--- trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/doc/FAQ/asy-faq.info	2018-04-08 20:08:33 UTC (rev 47384)
@@ -10,7 +10,7 @@
 File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
 
             ASYMPTOTE FREQUENTLY ASKED QUESTIONS
-                            05 Apr 2018
+                            07 Apr 2018
                           
 This is the list of Frequently Asked Questions about Asymptote (asy).
 

Modified: trunk/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asy-latex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asyRefCard.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/asymptote.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/utils/asymptote/doc/png/asymptote.info
===================================================================
--- trunk/Build/source/utils/asymptote/doc/png/asymptote.info	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/doc/png/asymptote.info	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1,7 +1,7 @@
 This is asymptote.info, produced by makeinfo version 6.4 from
 asymptote.texi.
 
-This file documents 'Asymptote', version 2.43.
+This file documents 'Asymptote', version 2.44.
 
    <http://asymptote.sourceforge.net>
 
@@ -22,7 +22,7 @@
 Asymptote
 *********
 
-This file documents 'Asymptote', version 2.43.
+This file documents 'Asymptote', version 2.44.
 
    <http://asymptote.sourceforge.net>
 

Modified: trunk/Build/source/utils/asymptote/glrender.cc
===================================================================
--- trunk/Build/source/utils/asymptote/glrender.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/glrender.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -4,7 +4,9 @@
  * Render 3D Bezier paths and surfaces.
  *****/
 
+#ifdef __CYGWIN__
 #define _POSIX_C_SOURCE 200809L
+#endif
 
 #include <stdlib.h>
 #include <fstream>

Modified: trunk/Build/source/utils/asymptote/main.cc
===================================================================
--- trunk/Build/source/utils/asymptote/main.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/main.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -19,7 +19,9 @@
 *
 *************/
 
+#ifdef __CYGWIN__
 #define _POSIX_C_SOURCE 200809L
+#endif
 
 #include <iostream>
 #include <cstdlib>

Modified: trunk/Build/source/utils/asymptote/prc/test.cc
===================================================================
--- trunk/Build/source/utils/asymptote/prc/test.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/prc/test.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -32,6 +32,7 @@
 
 int main()
 {
+  #if 0
   // List of pictures used; keep track of memory allocated to free it in the end
   // shared pointers or garbage collector may be an alternative
   uint8_t *picture1 = NULL;
@@ -947,5 +948,7 @@
   delete[] picture3;
   delete[] picture4;
 
+#endif
   return 0;
 }
+

Modified: trunk/Build/source/utils/asymptote/revision.cc
===================================================================
--- trunk/Build/source/utils/asymptote/revision.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/revision.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1 +1 @@
-const char *REVISION="2.43";
+const char *REVISION="2.44";

Modified: trunk/Build/source/utils/asymptote/runmath.cc
===================================================================
--- trunk/Build/source/utils/asymptote/runmath.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/runmath.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -90,7 +90,7 @@
 inline unsigned intbits() {
   static unsigned count=0;
   if(count > 0) return count;
-  while((1UL << count) < Int_MAX)
+  while((1ULL << count) < Int_MAX)
     ++count;
   ++count;
   return count;
@@ -641,7 +641,7 @@
 {
   Int a=vm::pop<Int>(Stack);
 #line 414 "runmath.in"
-  if((unsignedInt) a > 0xFFFFFFFF)
+  if((unsigned long long) a > 0xFFFFFFFF)
     {Stack->push<Int>(CLZ((uint32_t) (a >> 32))); return;}
   else {
     int bits=intbits();

Modified: trunk/Build/source/utils/asymptote/runmath.in
===================================================================
--- trunk/Build/source/utils/asymptote/runmath.in	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/runmath.in	2018-04-08 20:08:33 UTC (rev 47384)
@@ -37,7 +37,7 @@
 inline unsigned intbits() {
   static unsigned count=0;
   if(count > 0) return count;
-  while((1UL << count) < Int_MAX)
+  while((1ULL << count) < Int_MAX)
     ++count;
   ++count;
   return count;
@@ -412,7 +412,7 @@
 

 Int CLZ(Int a) 
 {
-  if((unsignedInt) a > 0xFFFFFFFF)
+  if((unsigned long long) a > 0xFFFFFFFF)
     return CLZ((uint32_t) (a >> 32));
   else {
     int bits=intbits();

Modified: trunk/Build/source/utils/asymptote/settings.cc
===================================================================
--- trunk/Build/source/utils/asymptote/settings.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/settings.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -1355,10 +1355,15 @@
 
 bool trap()
 {
+#ifdef __CYGWIN__
+// Disable until broken strtod exception is fixed.
+  return false;
+#else
   if (interact::interactive)
     return !getSetting<bool>("interactiveMask");
   else
     return !getSetting<bool>("batchMask");
+#endif  
 }
 
 string outname() 

Modified: trunk/Build/source/utils/asymptote/util.cc
===================================================================
--- trunk/Build/source/utils/asymptote/util.cc	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/util.cc	2018-04-08 20:08:33 UTC (rev 47384)
@@ -5,7 +5,9 @@
  * A place for useful utility functions.
  *****/
 
+#ifdef __CYGWIN__
 #define _POSIX_C_SOURCE 200809L
+#endif
 
 #include <cassert>
 #include <iostream>

Modified: trunk/Build/source/utils/asymptote/util.h
===================================================================
--- trunk/Build/source/utils/asymptote/util.h	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/util.h	2018-04-08 20:08:33 UTC (rev 47384)
@@ -105,7 +105,7 @@
 
 
 #if defined(__DECCXX_LIBCXX_RH70) || defined(__CYGWIN__)
-extern "C" int usleep(int);
+extern "C" int usleep(useconds_t);
 extern "C" int kill(pid_t pid, int sig) throw();
 extern "C" int snprintf(char *str, size_t size, const char *format,...);
 #include <stdio.h>

Modified: trunk/Build/source/utils/asymptote/xstream.h
===================================================================
--- trunk/Build/source/utils/asymptote/xstream.h	2018-04-08 20:06:41 UTC (rev 47383)
+++ trunk/Build/source/utils/asymptote/xstream.h	2018-04-08 20:08:33 UTC (rev 47384)
@@ -31,7 +31,7 @@
 #define quad_t long long
 #define u_quad_t unsigned long long
   
-#ifdef __CYGWIN__  
+#if defined(__CYGWIN__) || defined(__FreeBSD__)
 #include <sys/select.h>
 #define u_char unsigned char
 #define u_int unsigned int



More information about the tex-live-commits mailing list