diff options
author | Karl Berry <karl@freefriends.org> | 2021-01-02 16:31:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-01-02 16:31:31 +0000 |
commit | 6457cd3f6e21e23e21db6dafff021d17f5457567 (patch) | |
tree | 08f169333e47c5fc1c50e828cf3a0f50bdf9b508 /Build/source/utils/asymptote/runpair.cc | |
parent | dc2504a4c02af0ec2fff00e6b833c6143a06b4cd (diff) |
asy 2.68 sources
git-svn-id: svn://tug.org/texlive/trunk@57291 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/runpair.cc')
-rw-r--r-- | Build/source/utils/asymptote/runpair.cc | 271 |
1 files changed, 141 insertions, 130 deletions
diff --git a/Build/source/utils/asymptote/runpair.cc b/Build/source/utils/asymptote/runpair.cc index e5c0b4e6a67..7ac0c999086 100644 --- a/Build/source/utils/asymptote/runpair.cc +++ b/Build/source/utils/asymptote/runpair.cc @@ -72,11 +72,11 @@ extern pair zero; pair sin(pair z) { - return pair(sin(z.getx())*cosh(z.gety()),cos(z.getx())*sinh(z.gety())); + return pair(sin(z.getx())*cosh(z.gety()),cos(z.getx())*sinh(z.gety())); } -pair exp(pair z) -{ +pair exp(pair z) +{ return exp(z.getx())*expi(z.gety()); } @@ -168,72 +168,81 @@ void gen_runpair6(stack *Stack) } #line 84 "runpair.in" -// pair sqrt(explicit pair z); +// real abs2(pair z); void gen_runpair7(stack *Stack) { pair z=vm::pop<pair>(Stack); #line 85 "runpair.in" + {Stack->push<real>(z.abs2()); return;} +} + +#line 89 "runpair.in" +// pair sqrt(explicit pair z); +void gen_runpair8(stack *Stack) +{ + pair z=vm::pop<pair>(Stack); +#line 90 "runpair.in" {Stack->push<pair>(Sqrt(z)); return;} } // Return the angle of z in radians. -#line 90 "runpair.in" +#line 95 "runpair.in" // real angle(pair z, bool warn=true); -void gen_runpair8(stack *Stack) +void gen_runpair9(stack *Stack) { bool warn=vm::pop<bool>(Stack,true); pair z=vm::pop<pair>(Stack); -#line 91 "runpair.in" +#line 96 "runpair.in" {Stack->push<real>(z.angle(warn)); return;} } // Return the angle of z in degrees in the interval [0,360). -#line 96 "runpair.in" +#line 101 "runpair.in" // real degrees(pair z, bool warn=true); -void gen_runpair9(stack *Stack) +void gen_runpair10(stack *Stack) { bool warn=vm::pop<bool>(Stack,true); pair z=vm::pop<pair>(Stack); -#line 97 "runpair.in" +#line 102 "runpair.in" {Stack->push<real>(principalBranch(degrees(z.angle(warn)))); return;} } // Convert degrees to radians. -#line 102 "runpair.in" +#line 107 "runpair.in" // real radians(real degrees); -void gen_runpair10(stack *Stack) +void gen_runpair11(stack *Stack) { real degrees=vm::pop<real>(Stack); -#line 103 "runpair.in" +#line 108 "runpair.in" {Stack->push<real>(radians(degrees)); return;} } // Convert radians to degrees. -#line 108 "runpair.in" +#line 113 "runpair.in" // real degrees(real radians); -void gen_runpair11(stack *Stack) +void gen_runpair12(stack *Stack) { real radians=vm::pop<real>(Stack); -#line 109 "runpair.in" +#line 114 "runpair.in" {Stack->push<real>(degrees(radians)); return;} } // Convert radians to degrees in [0,360). -#line 114 "runpair.in" +#line 119 "runpair.in" // real Degrees(real radians); -void gen_runpair12(stack *Stack) +void gen_runpair13(stack *Stack) { real radians=vm::pop<real>(Stack); -#line 115 "runpair.in" +#line 120 "runpair.in" {Stack->push<real>(principalBranch(degrees(radians))); return;} } -#line 119 "runpair.in" +#line 124 "runpair.in" // real Sin(real deg); -void gen_runpair13(stack *Stack) +void gen_runpair14(stack *Stack) { real deg=vm::pop<real>(Stack); -#line 120 "runpair.in" +#line 125 "runpair.in" int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; @@ -245,12 +254,12 @@ void gen_runpair13(stack *Stack) {Stack->push<real>(sin(radians(deg))); return;} } -#line 132 "runpair.in" +#line 137 "runpair.in" // real Cos(real deg); -void gen_runpair14(stack *Stack) +void gen_runpair15(stack *Stack) { real deg=vm::pop<real>(Stack); -#line 133 "runpair.in" +#line 138 "runpair.in" int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; @@ -262,12 +271,12 @@ void gen_runpair14(stack *Stack) {Stack->push<real>(cos(radians(deg))); return;} } -#line 145 "runpair.in" +#line 150 "runpair.in" // real Tan(real deg); -void gen_runpair15(stack *Stack) +void gen_runpair16(stack *Stack) { real deg=vm::pop<real>(Stack); -#line 146 "runpair.in" +#line 151 "runpair.in" int n=(int) (deg/90.0); if(deg == n*90.0) { int m=n % 4; @@ -279,206 +288,206 @@ void gen_runpair15(stack *Stack) {Stack->push<real>(tan(radians(deg))); return;} } -#line 158 "runpair.in" +#line 163 "runpair.in" // real aSin(real x); -void gen_runpair16(stack *Stack) +void gen_runpair17(stack *Stack) { real x=vm::pop<real>(Stack); -#line 159 "runpair.in" +#line 164 "runpair.in" {Stack->push<real>(degrees(asin(x))); return;} } -#line 163 "runpair.in" +#line 168 "runpair.in" // real aCos(real x); -void gen_runpair17(stack *Stack) +void gen_runpair18(stack *Stack) { real x=vm::pop<real>(Stack); -#line 164 "runpair.in" +#line 169 "runpair.in" {Stack->push<real>(degrees(acos(x))); return;} } -#line 168 "runpair.in" +#line 173 "runpair.in" // real aTan(real x); -void gen_runpair18(stack *Stack) +void gen_runpair19(stack *Stack) { real x=vm::pop<real>(Stack); -#line 169 "runpair.in" +#line 174 "runpair.in" {Stack->push<real>(degrees(atan(x))); return;} } -#line 173 "runpair.in" +#line 178 "runpair.in" // pair unit(pair z); -void gen_runpair19(stack *Stack) +void gen_runpair20(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 174 "runpair.in" +#line 179 "runpair.in" {Stack->push<pair>(unit(z)); return;} } -#line 178 "runpair.in" +#line 183 "runpair.in" // pair dir(real degrees); -void gen_runpair20(stack *Stack) +void gen_runpair21(stack *Stack) { real degrees=vm::pop<real>(Stack); -#line 179 "runpair.in" +#line 184 "runpair.in" {Stack->push<pair>(expi(radians(degrees))); return;} } -#line 183 "runpair.in" +#line 188 "runpair.in" // pair dir(explicit pair z); -void gen_runpair21(stack *Stack) +void gen_runpair22(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 184 "runpair.in" +#line 189 "runpair.in" {Stack->push<pair>(unit(z)); return;} } -#line 188 "runpair.in" +#line 193 "runpair.in" // pair expi(real angle); -void gen_runpair22(stack *Stack) +void gen_runpair23(stack *Stack) { real angle=vm::pop<real>(Stack); -#line 189 "runpair.in" +#line 194 "runpair.in" {Stack->push<pair>(expi(angle)); return;} } -#line 193 "runpair.in" +#line 198 "runpair.in" // pair exp(explicit pair z); -void gen_runpair23(stack *Stack) +void gen_runpair24(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 194 "runpair.in" +#line 199 "runpair.in" {Stack->push<pair>(exp(z)); return;} } -#line 198 "runpair.in" +#line 203 "runpair.in" // pair log(explicit pair z); -void gen_runpair24(stack *Stack) +void gen_runpair25(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 199 "runpair.in" +#line 204 "runpair.in" {Stack->push<pair>(pair(log(z.length()),z.angle())); return;} } -#line 203 "runpair.in" +#line 208 "runpair.in" // pair sin(explicit pair z); -void gen_runpair25(stack *Stack) +void gen_runpair26(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 204 "runpair.in" +#line 209 "runpair.in" {Stack->push<pair>(sin(z)); return;} } -#line 208 "runpair.in" +#line 213 "runpair.in" // pair cos(explicit pair z); -void gen_runpair26(stack *Stack) +void gen_runpair27(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 209 "runpair.in" - {Stack->push<pair>(pair(cos(z.getx())*cosh(z.gety()),-sin(z.getx())*sinh(z.gety()))); return;} +#line 214 "runpair.in" + {Stack->push<pair>(pair(cos(z.getx())*cosh(z.gety()),-sin(z.getx())*sinh(z.gety()))); return;} } // Complex Gamma function -#line 214 "runpair.in" +#line 219 "runpair.in" // pair gamma(explicit pair z); -void gen_runpair27(stack *Stack) +void gen_runpair28(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 215 "runpair.in" +#line 220 "runpair.in" {Stack->push<pair>(gamma(z)); return;} } -#line 219 "runpair.in" +#line 224 "runpair.in" // pair conj(pair z); -void gen_runpair28(stack *Stack) +void gen_runpair29(stack *Stack) { pair z=vm::pop<pair>(Stack); -#line 220 "runpair.in" +#line 225 "runpair.in" {Stack->push<pair>(conj(z)); return;} } -#line 224 "runpair.in" +#line 229 "runpair.in" // pair realmult(pair z, pair w); -void gen_runpair29(stack *Stack) +void gen_runpair30(stack *Stack) { pair w=vm::pop<pair>(Stack); pair z=vm::pop<pair>(Stack); -#line 225 "runpair.in" +#line 230 "runpair.in" {Stack->push<pair>(pair(z.getx()*w.getx(),z.gety()*w.gety())); return;} } // To avoid confusion, a dot product requires explicit pair arguments. -#line 230 "runpair.in" +#line 235 "runpair.in" // real dot(explicit pair z, explicit pair w); -void gen_runpair30(stack *Stack) +void gen_runpair31(stack *Stack) { pair w=vm::pop<pair>(Stack); pair z=vm::pop<pair>(Stack); -#line 231 "runpair.in" +#line 236 "runpair.in" {Stack->push<real>(dot(z,w)); return;} } // Return the 2D scalar cross product z.x*w.y-z.y*w.x. -#line 236 "runpair.in" +#line 241 "runpair.in" // real cross(explicit pair z, explicit pair w); -void gen_runpair31(stack *Stack) +void gen_runpair32(stack *Stack) { pair w=vm::pop<pair>(Stack); pair z=vm::pop<pair>(Stack); -#line 237 "runpair.in" +#line 242 "runpair.in" {Stack->push<real>(cross(z,w)); return;} } -#line 241 "runpair.in" +#line 246 "runpair.in" // pair bezier(pair a, pair b, pair c, pair d, real t); -void gen_runpair32(stack *Stack) +void gen_runpair33(stack *Stack) { real t=vm::pop<real>(Stack); pair d=vm::pop<pair>(Stack); pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 242 "runpair.in" +#line 247 "runpair.in" real onemt=1-t; real onemt2=onemt*onemt; {Stack->push<pair>(onemt2*onemt*a+t*(3.0*(onemt2*b+t*onemt*c)+t*t*d)); return;} } -#line 248 "runpair.in" +#line 253 "runpair.in" // pair bezierP(pair a, pair b, pair c, pair d, real t); -void gen_runpair33(stack *Stack) +void gen_runpair34(stack *Stack) { real t=vm::pop<real>(Stack); pair d=vm::pop<pair>(Stack); pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 249 "runpair.in" +#line 254 "runpair.in" {Stack->push<pair>(3.0*(t*t*(d-a+3.0*(b-c))+t*(2.0*(a+c)-4.0*b)+b-a)); return;} } -#line 253 "runpair.in" +#line 258 "runpair.in" // pair bezierPP(pair a, pair b, pair c, pair d, real t); -void gen_runpair34(stack *Stack) +void gen_runpair35(stack *Stack) { real t=vm::pop<real>(Stack); pair d=vm::pop<pair>(Stack); pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 254 "runpair.in" +#line 259 "runpair.in" {Stack->push<pair>(6.0*(t*(d-a+3.0*(b-c))+a+c)-12.0*b); return;} } -#line 258 "runpair.in" +#line 263 "runpair.in" // pair bezierPPP(pair a, pair b, pair c, pair d); -void gen_runpair35(stack *Stack) +void gen_runpair36(stack *Stack) { pair d=vm::pop<pair>(Stack); pair c=vm::pop<pair>(Stack); pair b=vm::pop<pair>(Stack); pair a=vm::pop<pair>(Stack); -#line 259 "runpair.in" +#line 264 "runpair.in" {Stack->push<pair>(6.0*(d-a)+18.0*(b-c)); return;} } @@ -503,63 +512,65 @@ void gen_runpair_venv(venv &ve) #line 79 "runpair.in" addFunc(ve, run::gen_runpair6, primReal(), SYM(abs), formal(primPair(), SYM(z), false, false)); #line 84 "runpair.in" - addFunc(ve, run::gen_runpair7, primPair(), SYM(sqrt), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair7, primReal(), SYM(abs2), formal(primPair(), SYM(z), false, false)); #line 89 "runpair.in" - addFunc(ve, run::gen_runpair8, primReal(), SYM(angle), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 95 "runpair.in" - addFunc(ve, run::gen_runpair9, primReal(), SYM(degrees), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false)); -#line 101 "runpair.in" - addFunc(ve, run::gen_runpair10, primReal(), SYM(radians), formal(primReal(), SYM(degrees), false, false)); -#line 107 "runpair.in" - addFunc(ve, run::gen_runpair11, primReal(), SYM(degrees), formal(primReal(), SYM(radians), false, false)); -#line 113 "runpair.in" - addFunc(ve, run::gen_runpair12, primReal(), SYM(Degrees), formal(primReal(), SYM(radians), false, false)); -#line 119 "runpair.in" - addFunc(ve, run::gen_runpair13, primReal(), SYM(Sin), formal(primReal(), SYM(deg), false, false)); -#line 132 "runpair.in" - addFunc(ve, run::gen_runpair14, primReal(), SYM(Cos), formal(primReal(), SYM(deg), false, false)); -#line 145 "runpair.in" - addFunc(ve, run::gen_runpair15, primReal(), SYM(Tan), formal(primReal(), SYM(deg), false, false)); -#line 158 "runpair.in" - addFunc(ve, run::gen_runpair16, primReal(), SYM(aSin), formal(primReal(), SYM(x), false, false)); + addFunc(ve, run::gen_runpair8, primPair(), SYM(sqrt), formal(primPair(), SYM(z), false, true)); +#line 94 "runpair.in" + addFunc(ve, run::gen_runpair9, primReal(), SYM(angle), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 100 "runpair.in" + addFunc(ve, run::gen_runpair10, primReal(), SYM(degrees), formal(primPair(), SYM(z), false, false), formal(primBoolean(), SYM(warn), true, false)); +#line 106 "runpair.in" + addFunc(ve, run::gen_runpair11, primReal(), SYM(radians), formal(primReal(), SYM(degrees), false, false)); +#line 112 "runpair.in" + addFunc(ve, run::gen_runpair12, primReal(), SYM(degrees), formal(primReal(), SYM(radians), false, false)); +#line 118 "runpair.in" + addFunc(ve, run::gen_runpair13, primReal(), SYM(Degrees), formal(primReal(), SYM(radians), false, false)); +#line 124 "runpair.in" + addFunc(ve, run::gen_runpair14, primReal(), SYM(Sin), formal(primReal(), SYM(deg), false, false)); +#line 137 "runpair.in" + addFunc(ve, run::gen_runpair15, primReal(), SYM(Cos), formal(primReal(), SYM(deg), false, false)); +#line 150 "runpair.in" + addFunc(ve, run::gen_runpair16, primReal(), SYM(Tan), formal(primReal(), SYM(deg), false, false)); #line 163 "runpair.in" - addFunc(ve, run::gen_runpair17, primReal(), SYM(aCos), formal(primReal(), SYM(x), false, false)); + addFunc(ve, run::gen_runpair17, primReal(), SYM(aSin), formal(primReal(), SYM(x), false, false)); #line 168 "runpair.in" - addFunc(ve, run::gen_runpair18, primReal(), SYM(aTan), formal(primReal(), SYM(x), false, false)); + addFunc(ve, run::gen_runpair18, primReal(), SYM(aCos), formal(primReal(), SYM(x), false, false)); #line 173 "runpair.in" - addFunc(ve, run::gen_runpair19, primPair(), SYM(unit), formal(primPair(), SYM(z), false, false)); + addFunc(ve, run::gen_runpair19, primReal(), SYM(aTan), formal(primReal(), SYM(x), false, false)); #line 178 "runpair.in" - addFunc(ve, run::gen_runpair20, primPair(), SYM(dir), formal(primReal(), SYM(degrees), false, false)); + addFunc(ve, run::gen_runpair20, primPair(), SYM(unit), formal(primPair(), SYM(z), false, false)); #line 183 "runpair.in" - addFunc(ve, run::gen_runpair21, primPair(), SYM(dir), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair21, primPair(), SYM(dir), formal(primReal(), SYM(degrees), false, false)); #line 188 "runpair.in" - addFunc(ve, run::gen_runpair22, primPair(), SYM(expi), formal(primReal(), SYM(angle), false, false)); + addFunc(ve, run::gen_runpair22, primPair(), SYM(dir), formal(primPair(), SYM(z), false, true)); #line 193 "runpair.in" - addFunc(ve, run::gen_runpair23, primPair(), SYM(exp), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair23, primPair(), SYM(expi), formal(primReal(), SYM(angle), false, false)); #line 198 "runpair.in" - addFunc(ve, run::gen_runpair24, primPair(), SYM(log), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair24, primPair(), SYM(exp), formal(primPair(), SYM(z), false, true)); #line 203 "runpair.in" - addFunc(ve, run::gen_runpair25, primPair(), SYM(sin), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair25, primPair(), SYM(log), formal(primPair(), SYM(z), false, true)); #line 208 "runpair.in" - addFunc(ve, run::gen_runpair26, primPair(), SYM(cos), formal(primPair(), SYM(z), false, true)); + addFunc(ve, run::gen_runpair26, primPair(), SYM(sin), formal(primPair(), SYM(z), false, true)); #line 213 "runpair.in" - addFunc(ve, run::gen_runpair27, primPair(), SYM(gamma), formal(primPair(), SYM(z), false, true)); -#line 219 "runpair.in" - addFunc(ve, run::gen_runpair28, primPair(), SYM(conj), formal(primPair(), SYM(z), false, false)); + addFunc(ve, run::gen_runpair27, primPair(), SYM(cos), formal(primPair(), SYM(z), false, true)); +#line 218 "runpair.in" + addFunc(ve, run::gen_runpair28, primPair(), SYM(gamma), formal(primPair(), SYM(z), false, true)); #line 224 "runpair.in" - addFunc(ve, run::gen_runpair29, primPair(), SYM(realmult), formal(primPair(), SYM(z), false, false), formal(primPair(), SYM(w), false, false)); + addFunc(ve, run::gen_runpair29, primPair(), SYM(conj), formal(primPair(), SYM(z), false, false)); #line 229 "runpair.in" - addFunc(ve, run::gen_runpair30, primReal(), SYM(dot), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); -#line 235 "runpair.in" - addFunc(ve, run::gen_runpair31, primReal(), SYM(cross), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); -#line 241 "runpair.in" - addFunc(ve, run::gen_runpair32, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); -#line 248 "runpair.in" - addFunc(ve, run::gen_runpair33, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); + addFunc(ve, run::gen_runpair30, primPair(), SYM(realmult), formal(primPair(), SYM(z), false, false), formal(primPair(), SYM(w), false, false)); +#line 234 "runpair.in" + addFunc(ve, run::gen_runpair31, primReal(), SYM(dot), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); +#line 240 "runpair.in" + addFunc(ve, run::gen_runpair32, primReal(), SYM(cross), formal(primPair(), SYM(z), false, true), formal(primPair(), SYM(w), false, true)); +#line 246 "runpair.in" + addFunc(ve, run::gen_runpair33, primPair(), SYM(bezier), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); #line 253 "runpair.in" - addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); + addFunc(ve, run::gen_runpair34, primPair(), SYM(bezierP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); #line 258 "runpair.in" - addFunc(ve, run::gen_runpair35, primPair(), SYM(bezierPPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false)); + addFunc(ve, run::gen_runpair35, primPair(), SYM(bezierPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false), formal(primReal(), SYM(t), false, false)); +#line 263 "runpair.in" + addFunc(ve, run::gen_runpair36, primPair(), SYM(bezierPPP), formal(primPair(), SYM(a), false, false), formal(primPair(), SYM(b), false, false), formal(primPair(), SYM(c), false, false), formal(primPair(), SYM(d), false, false)); } } // namespace trans |