summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/runpair.in
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/runpair.in')
-rw-r--r--Build/source/utils/asymptote/runpair.in24
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));
}