diff options
Diffstat (limited to 'Build/source/utils/asymptote/runpair.in')
-rw-r--r-- | Build/source/utils/asymptote/runpair.in | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/runpair.in b/Build/source/utils/asymptote/runpair.in index c7809a3558b..d6604454f5e 100644 --- a/Build/source/utils/asymptote/runpair.in +++ b/Build/source/utils/asymptote/runpair.in @@ -120,16 +120,40 @@ real Degrees(real radians) real Sin(real deg) { + int n=deg/90.0; + if(deg == n*90.0) { + int m=n % 4; + if(m < 0) m += 4; + if(m == 1) return 1; + if(m == 3) return -1; + return 0.0; + } return sin(radians(deg)); } real Cos(real deg) { + int n=deg/90.0; + if(deg == n*90.0) { + int m=n % 4; + if(m < 0) m += 4; + if(m == 0) return 1; + if(m == 2) return -1; + return 0.0; + } return cos(radians(deg)); } real Tan(real deg) { + int n=deg/90.0; + if(deg == n*90.0) { + int m=n % 4; + if(m < 0) m += 4; + if(m == 1) return HUGE_VAL; + if(m == 3) return -HUGE_VAL; + return 0.0; + } return tan(radians(deg)); } |