comparison dmd/constfold.c @ 637:29dc68c949b0

Applied the FreeBSD patch from Ralith, closes ticket #95 , slightly changed but basically the same. Thanx Ralith :)
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Thu, 02 Oct 2008 03:25:46 +0200
parents aaade6ded589
children 50383e476c7e
comparison
equal deleted inserted replaced
636:9fb1f559d9e9 637:29dc68c949b0
485 485
486 #ifdef __DMC__ 486 #ifdef __DMC__
487 c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I; 487 c = fmodl(e1->toReal(), r2) + fmodl(e1->toImaginary(), r2) * I;
488 #elif defined(IN_GCC) 488 #elif defined(IN_GCC)
489 c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2); 489 c = complex_t(e1->toReal() % r2, e1->toImaginary() % r2);
490 #elif defined(__FreeBSD__) && __FreeBSD_version < 800000
491 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
492 c = complex_t(fmod(e1->toReal(), r2), fmod(e1->toImaginary(), r2));
490 #else 493 #else
491 c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2)); 494 c = complex_t(fmodl(e1->toReal(), r2), fmodl(e1->toImaginary(), r2));
492 #endif 495 #endif
493 } 496 }
494 else if (e2->type->isimaginary()) 497 else if (e2->type->isimaginary())
496 499
497 #ifdef __DMC__ 500 #ifdef __DMC__
498 c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I; 501 c = fmodl(e1->toReal(), i2) + fmodl(e1->toImaginary(), i2) * I;
499 #elif defined(IN_GCC) 502 #elif defined(IN_GCC)
500 c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2); 503 c = complex_t(e1->toReal() % i2, e1->toImaginary() % i2);
504 #elif defined(__FreeBSD__) && __FreeBSD_version < 800000
505 // freebsd is kinda messed up. the STABLE branch doesn't support C99's fmodl !?!
506 c = complex_t(fmod(e1->toReal(), i2), fmod(e1->toImaginary(), i2));
501 #else 507 #else
502 c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2)); 508 c = complex_t(fmodl(e1->toReal(), i2), fmodl(e1->toImaginary(), i2));
503 #endif 509 #endif
504 } 510 }
505 else 511 else