diff options
Diffstat (limited to 'lib/scalaires.c')
-rw-r--r-- | lib/scalaires.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/scalaires.c b/lib/scalaires.c index f94162a..10c9196 100644 --- a/lib/scalaires.c +++ b/lib/scalaires.c @@ -35,9 +35,15 @@ rationnel rat_constr(int num, int denom) denom = -denom; num = -num; } - - temp.num = num / pgcd(num, denom); - temp.denom = denom / pgcd(num, denom); + if (!num) { + temp.num=0; + temp.denom=1; + } else if (denom) { + temp.num = num / pgcd(num, denom); + temp.denom = denom / pgcd(num, denom); + } else { + exception(1,"rat_constr: division par zero"); + } return temp; } |