summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-08 20:08:33 +0000
committerKarl Berry <karl@freefriends.org>2018-04-08 20:08:33 +0000
commita25e502532f38be5226a95fcfa41be9083d0c508 (patch)
treea7be67c1d8e0c920f84543bb5ebcbe45bbdb4a42
parent6cb924f47ebd6e1c719259e4c6d0fe613968e8fd (diff)
asy 2.44 sources
git-svn-id: svn://tug.org/texlive/trunk@47384 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/utils/README3
-rw-r--r--Build/source/utils/asymptote/ChangeLog48
-rw-r--r--Build/source/utils/asymptote/Makefile.in4
-rw-r--r--Build/source/utils/asymptote/ReleaseNotes5
-rw-r--r--Build/source/utils/asymptote/asy-keywords.el2
-rw-r--r--Build/source/utils/asymptote/asy.list436
-rw-r--r--Build/source/utils/asymptote/asymptote.spec2
-rwxr-xr-xBuild/source/utils/asymptote/configure25
-rw-r--r--Build/source/utils/asymptote/configure.ac7
-rw-r--r--Build/source/utils/asymptote/doc/CAD.pdfbin66745 -> 66745 bytes
-rw-r--r--Build/source/utils/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdfbin32019 -> 31943 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asy-latex.pdfbin194542 -> 194542 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asyRefCard.pdfbin54839 -> 54839 bytes
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.pdfbin1288339 -> 1288356 bytes
-rw-r--r--Build/source/utils/asymptote/doc/png/asymptote.info4
-rw-r--r--Build/source/utils/asymptote/glrender.cc2
-rw-r--r--Build/source/utils/asymptote/main.cc2
-rw-r--r--Build/source/utils/asymptote/prc/test.cc3
-rw-r--r--Build/source/utils/asymptote/revision.cc2
-rw-r--r--Build/source/utils/asymptote/runmath.cc4
-rw-r--r--Build/source/utils/asymptote/runmath.in4
-rw-r--r--Build/source/utils/asymptote/settings.cc5
-rw-r--r--Build/source/utils/asymptote/util.cc2
-rw-r--r--Build/source/utils/asymptote/util.h2
-rw-r--r--Build/source/utils/asymptote/xstream.h2
26 files changed, 312 insertions, 254 deletions
diff --git a/Build/source/utils/README b/Build/source/utils/README
index c1c25081fde..57d380dc859 100644
--- a/Build/source/utils/README
+++ b/Build/source/utils/README
@@ -4,8 +4,7 @@ Public domain. Originally written 2005 by Karl Berry.
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
diff --git a/Build/source/utils/asymptote/ChangeLog b/Build/source/utils/asymptote/ChangeLog
index a4742f4895f..40756b2a7b0 100644
--- a/Build/source/utils/asymptote/ChangeLog
+++ b/Build/source/utils/asymptote/ChangeLog
@@ -1,3 +1,51 @@
+commit 878f944b9ee540c77c83f2cc61d6a97c22298553
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 7 20:56:45 2018 -0600
+
+ Fix portability issues.
+
+commit 1879deff46664834bad1a6bce926ce9d58baabbb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Apr 7 20:49:47 2018 -0600
+
+ Fix CLZ bug on CYGWIN.
+
+commit 2c70c1d965fb0b9fa92f97db2484d3ba4c184f40
+Author: John Bowman <bowman@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@ualberta.ca>
+Date: Fri Apr 6 17:19:45 2018 -0600
+
+ Improve usleep declaration.
+
+commit 6b974b3df56cd81b2960774441dd2e647bdf52da
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 6 17:18:50 2018 -0600
+
+ Make POSIX definition conditional to CYGWIN.
+
+commit e81df002635e1391bb540fd751cd019041e8e314
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Apr 6 16:53:21 2018 -0600
+
+ Disable unused code. Redirect "make test".
+
+commit 633813249c393938f2a8ca6d3715638f83710d74
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Apr 5 22:32:04 2018 -0600
+
+ Remove unused code.
+
+commit 052fd69055b077537a0701711387d4005ef6cd3b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Apr 5 22:27:48 2018 -0600
+
+ Increment version to 2.44.
+
commit f91ccd81f6f33f927f88724e23afb75988c56692
Author: John Bowman <bowman@ualberta.ca>
Date: Thu Apr 5 21:21:39 2018 -0600
diff --git a/Build/source/utils/asymptote/Makefile.in b/Build/source/utils/asymptote/Makefile.in
index 6db876faf62..fb02d79e3eb 100644
--- a/Build/source/utils/asymptote/Makefile.in
+++ b/Build/source/utils/asymptote/Makefile.in
@@ -306,10 +306,12 @@ maintainer-clean: FORCE distclean
-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
diff --git a/Build/source/utils/asymptote/ReleaseNotes b/Build/source/utils/asymptote/ReleaseNotes
index 342e68bbe0b..33983b81a6a 100644
--- a/Build/source/utils/asymptote/ReleaseNotes
+++ b/Build/source/utils/asymptote/ReleaseNotes
@@ -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
diff --git a/Build/source/utils/asymptote/asy-keywords.el b/Build/source/utils/asymptote/asy-keywords.el
index 13babcc2514..b77e5cda967 100644
--- a/Build/source/utils/asymptote/asy-keywords.el
+++ b/Build/source/utils/asymptote/asy-keywords.el
@@ -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 ))
diff --git a/Build/source/utils/asymptote/asy.list b/Build/source/utils/asymptote/asy.list
index f17e46f473f..49e945e0aee 100644
--- a/Build/source/utils/asymptote/asy.list
+++ b/Build/source/utils/asymptote/asy.list
@@ -1979,8 +1979,8 @@ position operator init();
arrowhead operator init();
frame NoBox(frame f);
real animationdelay;
-animation operator init();
frame BBox(frame)(real xmargin=<default>, real ymargin=<default>, pen p=<default>, filltype filltype=<default>);
+animation operator init();
void annotate(picture pic=<default>, string title, string text, pair position);
void babel(string s);
path[] bezulate(path[] p);
@@ -1993,22 +1993,22 @@ 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);
-path[][] containmentTree(path[] paths);
binarytree binarytree(... key[] keys);
key nil;
key key(int n, bool active=<default>);
real minDistDefault;
real nodeMarginDefault;
-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();
+binarytreeNode binarytreeNode(int key);
+key operator cast(int n);
+int operator cast(key k);
+int[] operator cast(key[] k);
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[][] midpoint=<default>, pair a, pair b, real[
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();
pen[][] interior(picture pic=<default>, guide[][] g, pen[] palette);
+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>);
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 photonamplitude;
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>);
-bool XYAlign;
path gluon(path p, real amp=<default>, real width=<default>);
-real momarrowsize(pen p=<default>);
-void fmdefaults();
-pen fermionpen;
+pen bigvertexpen;
+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 fmdefaults();
+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>);
-path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
real bigvertexsize;
+path momArrowPath(path p, align align, position pos, real offset=<default>, real length=<default>);
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 Up;
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 @@ flowdir operator init();
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 @@ line cevian(vertex V, point P);
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(hyperbola h, point M, path polarconicroutine(conic co, real
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 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);
-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 ==(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>);
vector unit(point M);
vector unit(vector u);
@@ -2329,11 +2371,9 @@ 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);
-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(line l1, line l2);
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(explicit parabola p, real x);
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 @@ mass operator init();
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,55 +2487,17 @@ void draw(picture pic=<default>, Label L=<default>, explicit conic co, align ali
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;
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 @@ line tangent(explicit arc a, point M);
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(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);
+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(ellipse el, point M);
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(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);
+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 NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3,
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 @@ triple tickMin3(picture pic);
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(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 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);
+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 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);
-real ytrans(real[][] t, real y);
+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>);
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=<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>);
-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 @@ bool axiscoverage(int N, transform T, path g, ticklocate locate, real Step, pair
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 Right(picture, axisT);
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 @@ 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>);
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(real), path g, int n, bool truesize=<default>, p
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 @@ ticklocate operator init();
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>, real x, pair dir=<default>, real size=<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);
+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 @@ void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, p
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 nmesh;
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[] Spline(real[] x, real[] y);
real[](real[], real[])[] Spline;
real[] notaknot(real[] x, real[] y);
real[] periodic(real[] x, real[] y);
-real[] natural(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;
@@ -3136,45 +3136,45 @@ grid3 YXgrid(picture pic)(position pos=<default>);
grid3 YXgrid(picture pic);
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>);
-grid3(picture pic)[][] XYZgrid(position pos=<default>);
-grid3(picture pic)[][] XYZgrid;
+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>);
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>);
-position top;
triple X(picture pic);
+triple ZX(picture pic);
+position top;
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));
+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_USERTOL;
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 @@ FitControl operator init();
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 @@ 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>);
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 sec(real x);
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_PC;
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 RK5F;
RKTableau Euler;
+RKTableau RK5F;
+RKTableau PC;
pen[] cmyk(pen[] Palette);
pen[] BWRainbow2(int NColors=<default>);
pen[] Wheel(int NColors=<default>);
@@ -3354,10 +3354,10 @@ 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[] 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);
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);
+int lcm(int m, int n);
bool operator <=(rational r, rational s);
+rational 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);
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 @@ pen titlepen;
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(real)[] bernstein;
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 @@ edge operator init();
positionedvector operator init();
evaluatedpoint operator init();
gridwithzeros operator init();
+string operator cast(edge e);
+string operator cast(edge[] edges);
+string operator cast(positionedvector vv);
+triple operator cast(evaluatedpoint p);
+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, triple facenorm, trip
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 variancebiased(real[] A);
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 wye;
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 Melon;
pen Dandelion;
pen Goldenrod;
pen GreenYellow;
-pen Violet;
pen Peach;
pen SkyBlue;
pen VioletRed;
@@ -3649,29 +3648,31 @@ pen Cerulean;
pen White;
pen Yellow;
pen PineGreen;
+pen Violet;
pen RedViolet;
pen Red;
pen Magenta;
-pen MidnightBlue;
-pen Orchid;
+pen TealBlue;
pen Turquoise;
+pen MidnightBlue;
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 Apricot;
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 trembleAngle;
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);
-coloredpath operator cast(path p);
-coloredpath operator cast(guide p);
int coloredNodes;
coloredpath operator init();
+coloredpath operator cast(path p);
+coloredpath operator cast(guide p);
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 PeachPuff;
pen Lime;
pen LightGoldenrodYellow;
pen DarkSeaGreen;
-pen SkyBlue;
pen White;
pen Yellow;
pen LightCyan;
@@ -3782,10 +3781,14 @@ pen Red;
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 SandyBrown;
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;
diff --git a/Build/source/utils/asymptote/asymptote.spec b/Build/source/utils/asymptote/asymptote.spec
index 9d0ec146d44..07a8bf19c44 100644
--- a/Build/source/utils/asymptote/asymptote.spec
+++ b/Build/source/utils/asymptote/asymptote.spec
@@ -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
diff --git a/Build/source/utils/asymptote/configure b/Build/source/utils/asymptote/configure
index 9a40febf365..fa273992199 100755
--- a/Build/source/utils/asymptote/configure
+++ b/Build/source/utils/asymptote/configure
@@ -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 @@ MAKEFLAGS=
# 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 @@ if test "$ac_init_help" = "long"; then
# 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 @@ fi
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 @@ fi
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 @@ cat >config.log <<_ACEOF
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 @@ VERSION=$PACKAGE_VERSION
-test "$CXXFLAGS" || CXXFLAGS=""
+test "$CXXFLAGS" || CXXFLAGS="-std=c++11"
test "$CFLAGS" || CFLAGS="-g -O3"
@@ -5837,11 +5837,6 @@ fi
-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 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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 @@ _ACEOF
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\\"
diff --git a/Build/source/utils/asymptote/configure.ac b/Build/source/utils/asymptote/configure.ac
index 79db3ebc08e..83cb1f949a3 100644
--- a/Build/source/utils/asymptote/configure.ac
+++ b/Build/source/utils/asymptote/configure.ac
@@ -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 @@ AC_CHECK_HEADER(unordered_map,AC_DEFINE(HAVE_UNORDERED_MAP,1,
[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
diff --git a/Build/source/utils/asymptote/doc/CAD.pdf b/Build/source/utils/asymptote/doc/CAD.pdf
index f8e5c47ba57..ea28b168966 100644
--- a/Build/source/utils/asymptote/doc/CAD.pdf
+++ b/Build/source/utils/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
index c04bec3ddbc..b682fabe9a1 100644
--- a/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
+++ b/Build/source/utils/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
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).
diff --git a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
index 61994b71e30..bbf19a4f29e 100644
--- a/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/Build/source/utils/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asy-latex.pdf b/Build/source/utils/asymptote/doc/asy-latex.pdf
index 335a0be9f3a..465b586e173 100644
--- a/Build/source/utils/asymptote/doc/asy-latex.pdf
+++ b/Build/source/utils/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asyRefCard.pdf b/Build/source/utils/asymptote/doc/asyRefCard.pdf
index 8a7d6609281..de1d2999cce 100644
--- a/Build/source/utils/asymptote/doc/asyRefCard.pdf
+++ b/Build/source/utils/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/asymptote.pdf b/Build/source/utils/asymptote/doc/asymptote.pdf
index 27a38e6c33a..2f6f1f45707 100644
--- a/Build/source/utils/asymptote/doc/asymptote.pdf
+++ b/Build/source/utils/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/Build/source/utils/asymptote/doc/png/asymptote.info b/Build/source/utils/asymptote/doc/png/asymptote.info
index 293d1b3c966..d8aead72d26 100644
--- a/Build/source/utils/asymptote/doc/png/asymptote.info
+++ b/Build/source/utils/asymptote/doc/png/asymptote.info
@@ -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 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.43.
+This file documents 'Asymptote', version 2.44.
<http://asymptote.sourceforge.net>
diff --git a/Build/source/utils/asymptote/glrender.cc b/Build/source/utils/asymptote/glrender.cc
index 7698798e951..9214c19a133 100644
--- a/Build/source/utils/asymptote/glrender.cc
+++ b/Build/source/utils/asymptote/glrender.cc
@@ -4,7 +4,9 @@
* Render 3D Bezier paths and surfaces.
*****/
+#ifdef __CYGWIN__
#define _POSIX_C_SOURCE 200809L
+#endif
#include <stdlib.h>
#include <fstream>
diff --git a/Build/source/utils/asymptote/main.cc b/Build/source/utils/asymptote/main.cc
index 7350ab3da42..946dd4d9094 100644
--- a/Build/source/utils/asymptote/main.cc
+++ b/Build/source/utils/asymptote/main.cc
@@ -19,7 +19,9 @@
*
*************/
+#ifdef __CYGWIN__
#define _POSIX_C_SOURCE 200809L
+#endif
#include <iostream>
#include <cstdlib>
diff --git a/Build/source/utils/asymptote/prc/test.cc b/Build/source/utils/asymptote/prc/test.cc
index 6c81baee4a5..baf942fc7df 100644
--- a/Build/source/utils/asymptote/prc/test.cc
+++ b/Build/source/utils/asymptote/prc/test.cc
@@ -32,6 +32,7 @@ extern const double pi;
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 @@ int main()
delete[] picture3;
delete[] picture4;
+#endif
return 0;
}
+
diff --git a/Build/source/utils/asymptote/revision.cc b/Build/source/utils/asymptote/revision.cc
index a7de1211417..d33cc785843 100644
--- a/Build/source/utils/asymptote/revision.cc
+++ b/Build/source/utils/asymptote/revision.cc
@@ -1 +1 @@
-const char *REVISION="2.43";
+const char *REVISION="2.44";
diff --git a/Build/source/utils/asymptote/runmath.cc b/Build/source/utils/asymptote/runmath.cc
index 4461bbd28d2..82a114c55fe 100644
--- a/Build/source/utils/asymptote/runmath.cc
+++ b/Build/source/utils/asymptote/runmath.cc
@@ -90,7 +90,7 @@ extern uint32_t CLZ(uint32_t a);
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 @@ void gen_runmath37(stack *Stack)
{
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();
diff --git a/Build/source/utils/asymptote/runmath.in b/Build/source/utils/asymptote/runmath.in
index f64d3117d4a..acf58629890 100644
--- a/Build/source/utils/asymptote/runmath.in
+++ b/Build/source/utils/asymptote/runmath.in
@@ -37,7 +37,7 @@ extern uint32_t CLZ(uint32_t a);
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 NOT(Int a)
Int CLZ(Int a)
{
- if((unsignedInt) a > 0xFFFFFFFF)
+ if((unsigned long long) a > 0xFFFFFFFF)
return CLZ((uint32_t) (a >> 32));
else {
int bits=intbits();
diff --git a/Build/source/utils/asymptote/settings.cc b/Build/source/utils/asymptote/settings.cc
index 14336e86ded..db3d396394c 100644
--- a/Build/source/utils/asymptote/settings.cc
+++ b/Build/source/utils/asymptote/settings.cc
@@ -1355,10 +1355,15 @@ bool view()
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()
diff --git a/Build/source/utils/asymptote/util.cc b/Build/source/utils/asymptote/util.cc
index 228f7596df6..2d66fb2316f 100644
--- a/Build/source/utils/asymptote/util.cc
+++ b/Build/source/utils/asymptote/util.cc
@@ -5,7 +5,9 @@
* A place for useful utility functions.
*****/
+#ifdef __CYGWIN__
#define _POSIX_C_SOURCE 200809L
+#endif
#include <cassert>
#include <iostream>
diff --git a/Build/source/utils/asymptote/util.h b/Build/source/utils/asymptote/util.h
index aa1cfa13385..4414a6de1b9 100644
--- a/Build/source/utils/asymptote/util.h
+++ b/Build/source/utils/asymptote/util.h
@@ -105,7 +105,7 @@ extern "C" int isnan(double);
#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>
diff --git a/Build/source/utils/asymptote/xstream.h b/Build/source/utils/asymptote/xstream.h
index 3f5e749f9e9..1d7f6e1cd17 100644
--- a/Build/source/utils/asymptote/xstream.h
+++ b/Build/source/utils/asymptote/xstream.h
@@ -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