 /********************************************************************/
 /****                                                            ****/
 /****                                                            ****/
 /****    Program          : Mathe.c                              ****/
 /****                                                            ****/
 /****    Version          :    01.00                             ****/
 /****                                                            ****/
 /****    Erstversion      : 14.01.1989                           ****/
 /****                                                            ****/
 /****    Letzte Änderung  : 21.10.1989                           ****/
 /****                                                            ****/
 /****    Compiliert mit   : siehe Make                           ****/
 /****                                                            ****/
 /****    Gelinkt mit      : für Tool.Library                     ****/
 /****                                                            ****/
 /********************************************************************/
 /****                                                            ****/
 /****                                                            ****/
 /****               Copyright by Rüdiger Dreier                  ****/
 /****                                                            ****/
 /****                                                            ****/
 /********************************************************************/
 
 #include "ToolLibrary.h"
 #include <proto/mathieeedoubbas.h>
 #include <proto/mathieeedoubtrans.h>
 
 extern struct Library *MathIeeeDoubBasBase;
 extern struct Library *MathIeeeDoubTransBase;
 
 
 DOUBLE *Fak(i)
 LONG i;
  {
   DOUBLE Wert,W2,W3;
   if(i>0)
    {
     W2=*Fak(i-1);
     W3=Flt(i);
     Wert=IEEEDPMul(W2,W3);
     return(&Wert);
    }
   else
    {
     if(i==0)
      {
       Wert=Flt(1);
       return(&Wert);
      }
     else
      {
       Wert=Flt(-1);
       return(&Wert);
      }
    }
  }
 
 
 DOUBLE *NuK(n,k)
 LONG n,k;
  {
   DOUBLE a,b,c,Wert=-1.0;
   a=*Fak(n);
   b=*Fak(k);
   c=*Fak(n-k);
   if(Cmp(a,-1.0)==0)return(&Wert);
   if(Cmp(b,-1.0)==0)return(&Wert);
   if(Cmp(c,-1.0)==0)return(&Wert);
   
   b=IEEEDPMul(b,c);
   a=IEEEDPDiv(a,b);
   return(&a);
  }
 
