From 6457cd3f6e21e23e21db6dafff021d17f5457567 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 2 Jan 2021 16:31:31 +0000 Subject: asy 2.68 sources git-svn-id: svn://tug.org/texlive/trunk@57291 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/utils/asymptote/runtriple.cc | 155 ++++++++++++++++-------------- 1 file changed, 83 insertions(+), 72 deletions(-) (limited to 'Build/source/utils/asymptote/runtriple.cc') diff --git a/Build/source/utils/asymptote/runtriple.cc b/Build/source/utils/asymptote/runtriple.cc index 3e0b71bdf79..eefd6beaae7 100644 --- a/Build/source/utils/asymptote/runtriple.cc +++ b/Build/source/utils/asymptote/runtriple.cc @@ -171,189 +171,198 @@ void gen_runtriple9(stack *Stack) } #line 70 "runtriple.in" -// real polar(triple v, bool warn=true); +// real abs2(triple v); void gen_runtriple10(stack *Stack) { - bool warn=vm::pop(Stack,true); triple v=vm::pop(Stack); #line 71 "runtriple.in" - {Stack->push(v.polar(warn)); return;} + {Stack->push(abs2(v)); return;} } #line 75 "runtriple.in" -// real azimuth(triple v, bool warn=true); +// real polar(triple v, bool warn=true); void gen_runtriple11(stack *Stack) { bool warn=vm::pop(Stack,true); triple v=vm::pop(Stack); #line 76 "runtriple.in" + {Stack->push(v.polar(warn)); return;} +} + +#line 80 "runtriple.in" +// real azimuth(triple v, bool warn=true); +void gen_runtriple12(stack *Stack) +{ + bool warn=vm::pop(Stack,true); + triple v=vm::pop(Stack); +#line 81 "runtriple.in" if(!warn && v.getx() == 0.0 && v.gety() == 0.0) {Stack->push(0.0); return;} {Stack->push(v.azimuth()); return;} } -#line 81 "runtriple.in" +#line 86 "runtriple.in" // real colatitude(triple v, bool warn=true); -void gen_runtriple12(stack *Stack) +void gen_runtriple13(stack *Stack) { bool warn=vm::pop(Stack,true); triple v=vm::pop(Stack); -#line 82 "runtriple.in" +#line 87 "runtriple.in" if(!warn && v.getx() == 0.0 && v.gety() == 0.0 && v.getz() == 0.0) {Stack->push(0.0); return;} {Stack->push(degrees(v.polar())); return;} } -#line 87 "runtriple.in" +#line 92 "runtriple.in" // real latitude(triple v, bool warn=true); -void gen_runtriple13(stack *Stack) +void gen_runtriple14(stack *Stack) { bool warn=vm::pop(Stack,true); triple v=vm::pop(Stack); -#line 88 "runtriple.in" +#line 93 "runtriple.in" if(!warn && v.getx() == 0.0 && v.gety() == 0.0 && v.getz() == 0.0) {Stack->push(0.0); return;} {Stack->push(90.0-degrees(v.polar())); return;} } // Return the longitude of v in [0,360). -#line 94 "runtriple.in" +#line 99 "runtriple.in" // real longitude(triple v, bool warn=true); -void gen_runtriple14(stack *Stack) +void gen_runtriple15(stack *Stack) { bool warn=vm::pop(Stack,true); triple v=vm::pop(Stack); -#line 95 "runtriple.in" +#line 100 "runtriple.in" if(!warn && v.getx() == 0.0 && v.gety() == 0.0) {Stack->push(0.0); return;} {Stack->push(principalBranch(degrees(v.azimuth()))); return;} } -#line 100 "runtriple.in" +#line 105 "runtriple.in" // triple unit(triple v); -void gen_runtriple15(stack *Stack) +void gen_runtriple16(stack *Stack) { triple v=vm::pop(Stack); -#line 101 "runtriple.in" +#line 106 "runtriple.in" {Stack->push(unit(v)); return;} } -#line 105 "runtriple.in" +#line 110 "runtriple.in" // real dot(triple u, triple v); -void gen_runtriple16(stack *Stack) +void gen_runtriple17(stack *Stack) { triple v=vm::pop(Stack); triple u=vm::pop(Stack); -#line 106 "runtriple.in" +#line 111 "runtriple.in" {Stack->push(dot(u,v)); return;} } -#line 110 "runtriple.in" +#line 115 "runtriple.in" // triple cross(triple u, triple v); -void gen_runtriple17(stack *Stack) +void gen_runtriple18(stack *Stack) { triple v=vm::pop(Stack); triple u=vm::pop(Stack); -#line 111 "runtriple.in" +#line 116 "runtriple.in" {Stack->push(cross(u,v)); return;} } -#line 115 "runtriple.in" +#line 120 "runtriple.in" // triple dir(explicit triple z); -void gen_runtriple18(stack *Stack) +void gen_runtriple19(stack *Stack) { triple z=vm::pop(Stack); -#line 116 "runtriple.in" +#line 121 "runtriple.in" {Stack->push(unit(z)); return;} } -#line 120 "runtriple.in" +#line 125 "runtriple.in" // triple expi(real polar, real azimuth); -void gen_runtriple19(stack *Stack) +void gen_runtriple20(stack *Stack) { real azimuth=vm::pop(Stack); real polar=vm::pop(Stack); -#line 121 "runtriple.in" +#line 126 "runtriple.in" {Stack->push(expi(polar,azimuth)); return;} } -#line 125 "runtriple.in" +#line 130 "runtriple.in" // triple dir(real colatitude, real longitude); -void gen_runtriple20(stack *Stack) +void gen_runtriple21(stack *Stack) { real longitude=vm::pop(Stack); real colatitude=vm::pop(Stack); -#line 126 "runtriple.in" +#line 131 "runtriple.in" {Stack->push(expi(radians(colatitude),radians(longitude))); return;} } -#line 130 "runtriple.in" +#line 135 "runtriple.in" // triple realmult(triple u, triple v); -void gen_runtriple21(stack *Stack) +void gen_runtriple22(stack *Stack) { triple v=vm::pop(Stack); triple u=vm::pop(Stack); -#line 131 "runtriple.in" +#line 136 "runtriple.in" {Stack->push(triple (u.getx()*v.getx(),u.gety()*v.gety(),u.getz()*v.getz())); return;} } // Return the component of vector v perpendicular to a unit vector u. -#line 136 "runtriple.in" +#line 141 "runtriple.in" // triple perp(triple v, triple u); -void gen_runtriple22(stack *Stack) +void gen_runtriple23(stack *Stack) { triple u=vm::pop(Stack); triple v=vm::pop(Stack); -#line 137 "runtriple.in" +#line 142 "runtriple.in" {Stack->push(perp(v,u)); return;} } -#line 141 "runtriple.in" +#line 146 "runtriple.in" // triple bezier(triple a, triple b, triple c, triple d, real t); -void gen_runtriple23(stack *Stack) +void gen_runtriple24(stack *Stack) { real t=vm::pop(Stack); triple d=vm::pop(Stack); triple c=vm::pop(Stack); triple b=vm::pop(Stack); triple a=vm::pop(Stack); -#line 142 "runtriple.in" +#line 147 "runtriple.in" real onemt=1-t; real onemt2=onemt*onemt; {Stack->push(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;} } -#line 148 "runtriple.in" +#line 153 "runtriple.in" // triple bezierP(triple a, triple b, triple c, triple d, real t); -void gen_runtriple24(stack *Stack) +void gen_runtriple25(stack *Stack) { real t=vm::pop(Stack); triple d=vm::pop(Stack); triple c=vm::pop(Stack); triple b=vm::pop(Stack); triple a=vm::pop(Stack); -#line 149 "runtriple.in" +#line 154 "runtriple.in" {Stack->push(3.0*(t*t*(d-a+3.0*(b-c))+t*(2.0*(a+c)-4.0*b)+b-a)); return;} } -#line 153 "runtriple.in" +#line 158 "runtriple.in" // triple bezierPP(triple a, triple b, triple c, triple d, real t); -void gen_runtriple25(stack *Stack) +void gen_runtriple26(stack *Stack) { real t=vm::pop(Stack); triple d=vm::pop(Stack); triple c=vm::pop(Stack); triple b=vm::pop(Stack); triple a=vm::pop(Stack); -#line 154 "runtriple.in" +#line 159 "runtriple.in" {Stack->push(6.0*(t*(d-a+3.0*(b-c))+a+c)-12.0*b); return;} } -#line 158 "runtriple.in" +#line 163 "runtriple.in" // triple bezierPPP(triple a, triple b, triple c, triple d); -void gen_runtriple26(stack *Stack) +void gen_runtriple27(stack *Stack) { triple d=vm::pop(Stack); triple c=vm::pop(Stack); triple b=vm::pop(Stack); triple a=vm::pop(Stack); -#line 159 "runtriple.in" +#line 164 "runtriple.in" {Stack->push(6.0*(d-a)+18.0*(b-c)); return;} } @@ -384,39 +393,41 @@ void gen_runtriple_venv(venv &ve) #line 65 "runtriple.in" addFunc(ve, run::gen_runtriple9, primReal(), SYM(abs), formal(primTriple(), SYM(v), false, false)); #line 70 "runtriple.in" - addFunc(ve, run::gen_runtriple10, primReal(), SYM(polar), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); + addFunc(ve, run::gen_runtriple10, primReal(), SYM(abs2), formal(primTriple(), SYM(v), false, false)); #line 75 "runtriple.in" - addFunc(ve, run::gen_runtriple11, primReal(), SYM(azimuth), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 81 "runtriple.in" - addFunc(ve, run::gen_runtriple12, primReal(), SYM(colatitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 87 "runtriple.in" - addFunc(ve, run::gen_runtriple13, primReal(), SYM(latitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 93 "runtriple.in" - addFunc(ve, run::gen_runtriple14, primReal(), SYM(longitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 100 "runtriple.in" - addFunc(ve, run::gen_runtriple15, primTriple(), SYM(unit), formal(primTriple(), SYM(v), false, false)); + addFunc(ve, run::gen_runtriple11, primReal(), SYM(polar), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 80 "runtriple.in" + addFunc(ve, run::gen_runtriple12, primReal(), SYM(azimuth), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 86 "runtriple.in" + addFunc(ve, run::gen_runtriple13, primReal(), SYM(colatitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 92 "runtriple.in" + addFunc(ve, run::gen_runtriple14, primReal(), SYM(latitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 98 "runtriple.in" + addFunc(ve, run::gen_runtriple15, primReal(), SYM(longitude), formal(primTriple(), SYM(v), false, false), formal(primBoolean(), SYM(warn), true, false)); #line 105 "runtriple.in" - addFunc(ve, run::gen_runtriple16, primReal(), SYM(dot), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); + addFunc(ve, run::gen_runtriple16, primTriple(), SYM(unit), formal(primTriple(), SYM(v), false, false)); #line 110 "runtriple.in" - addFunc(ve, run::gen_runtriple17, primTriple(), SYM(cross), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); + addFunc(ve, run::gen_runtriple17, primReal(), SYM(dot), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); #line 115 "runtriple.in" - addFunc(ve, run::gen_runtriple18, primTriple(), SYM(dir), formal(primTriple(), SYM(z), false, true)); + addFunc(ve, run::gen_runtriple18, primTriple(), SYM(cross), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); #line 120 "runtriple.in" - addFunc(ve, run::gen_runtriple19, primTriple(), SYM(expi), formal(primReal(), SYM(polar), false, false), formal(primReal(), SYM(azimuth), false, false)); + addFunc(ve, run::gen_runtriple19, primTriple(), SYM(dir), formal(primTriple(), SYM(z), false, true)); #line 125 "runtriple.in" - addFunc(ve, run::gen_runtriple20, primTriple(), SYM(dir), formal(primReal(), SYM(colatitude), false, false), formal(primReal(), SYM(longitude), false, false)); + addFunc(ve, run::gen_runtriple20, primTriple(), SYM(expi), formal(primReal(), SYM(polar), false, false), formal(primReal(), SYM(azimuth), false, false)); #line 130 "runtriple.in" - addFunc(ve, run::gen_runtriple21, primTriple(), SYM(realmult), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); + addFunc(ve, run::gen_runtriple21, primTriple(), SYM(dir), formal(primReal(), SYM(colatitude), false, false), formal(primReal(), SYM(longitude), false, false)); #line 135 "runtriple.in" - addFunc(ve, run::gen_runtriple22, primTriple(), SYM(perp), formal(primTriple(), SYM(v), false, false), formal(primTriple(), SYM(u), false, false)); -#line 141 "runtriple.in" - addFunc(ve, run::gen_runtriple23, primTriple(), SYM(bezier), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); -#line 148 "runtriple.in" - addFunc(ve, run::gen_runtriple24, primTriple(), SYM(bezierP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); + addFunc(ve, run::gen_runtriple22, primTriple(), SYM(realmult), formal(primTriple(), SYM(u), false, false), formal(primTriple(), SYM(v), false, false)); +#line 140 "runtriple.in" + addFunc(ve, run::gen_runtriple23, primTriple(), SYM(perp), formal(primTriple(), SYM(v), false, false), formal(primTriple(), SYM(u), false, false)); +#line 146 "runtriple.in" + addFunc(ve, run::gen_runtriple24, primTriple(), SYM(bezier), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); #line 153 "runtriple.in" - addFunc(ve, run::gen_runtriple25, primTriple(), SYM(bezierPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); + addFunc(ve, run::gen_runtriple25, primTriple(), SYM(bezierP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); #line 158 "runtriple.in" - addFunc(ve, run::gen_runtriple26, primTriple(), SYM(bezierPPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false)); + addFunc(ve, run::gen_runtriple26, primTriple(), SYM(bezierPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); +#line 163 "runtriple.in" + addFunc(ve, run::gen_runtriple27, primTriple(), SYM(bezierPPP), formal(primTriple(), SYM(a), false, false), formal(primTriple(), SYM(b), false, false), formal(primTriple(), SYM(c), false, false), formal(primTriple(), SYM(d), false, false)); } } // namespace trans -- cgit v1.2.3